cqp 3 天之前
父节点
当前提交
f3dd06953b
共有 4 个文件被更改,包括 86 次插入155 次删除
  1. 36 1
      app/Http/Controllers/Api/ReportFormsController.php
  2. 7 4
      app/Model/SystemL.php
  3. 31 150
      app/Service/ReportFormsService.php
  4. 12 0
      routes/api.php

文件差异内容过多而无法显示
+ 36 - 1
app/Http/Controllers/Api/ReportFormsController.php


+ 7 - 4
app/Model/SystemL.php

@@ -17,10 +17,13 @@ class SystemL extends Model
     const standBy = '压机下降';// 待机时间/次数
 
     public static $device = [
-        "2号热压机" => "01401422102400001960",
-        "UV生产线" => "01401422100800000103",
-        "6号热压机" => "01401422100800008976",
-        "5号热压机" => "01401422100800000342"
+        "涂胶一号机" => "01401424070300010036",
+        "涂胶二号机" => "01401424070300009843",
+        "涂胶三号机" => "01401424070300009708",
+        "清边一号机" => "01401424070300009271",
+        "清边二号机" => "01401424070300009160",
+        "热压一号机" => "01401424070300009371",
+        "热压二号机" => "01401424070300008948",
     ];
 
     public static $device_point_id_1 = [

+ 31 - 150
app/Service/ReportFormsService.php

@@ -2,13 +2,7 @@
 
 namespace App\Service;
 
-use App\Model\Employee;
-use App\Model\OrdersProduct;
-use App\Model\OrdersProductProcess;
-use App\Model\Scrapp;
 use App\Model\SystemL;
-use App\Model\Team;
-use Illuminate\Support\Facades\DB;
 
 /**
  * 设备相关设置报表
@@ -17,8 +11,6 @@ use Illuminate\Support\Facades\DB;
  */
 class ReportFormsService extends Service
 {
-
-
     /**
      * 数据分析图
      * @param $data
@@ -30,54 +22,18 @@ class ReportFormsService extends Service
         $day = $this->returnDays($data['time'], false);
         if($day > 31) return [false, '查询时间仅支持范围区间在31天内'];
 
-        $process_time = [];
-
-        $result = SystemL::where('time','>=',$data['time'][0])
-            ->where('time','<',$data['time'][1])
-            ->where('data_point_name',SystemL::standBy)
-            ->select('device_name','time','value')
-            ->get()->toArray();
-
-        //所有的时间
-        $time_all = [];
-        foreach ($result as $value){
-            $time = date('Y-m-d',$value['time'] / 1000);
-            //工作 运行次数
-            if(isset($process_time[$value['device_name']][$time])){
-                $process_time[$value['device_name']][$time] += 1;
-            }else{
-                $process_time[$value['device_name']][$time] = 1;
-            }
-            if(! in_array($time, $time_all)) $time_all[] = $time;
-        }
-        sort($time_all);
-
-        //数据结构模型
-        foreach (SystemL::$device as $k => $v){
-            if(isset($process_time[$k])){
-                foreach ($time_all as $t){
-                    if(! isset($process_time[$k][$t])){
-                        $process_time[$k][$t] = 0;
-                    }
-                }
-            }else{
-                foreach ($time_all as $t){
-                    $process_time[$k][$t] = 0;
-                }
-            }
-        }
-
         $return = [];
-        foreach ($process_time as $key => $value){
-            $tmp['title'] = $key;
-            $tmp['list'] = [];
-            foreach ($value as $k => $v){
-                $tmp['list'][] = [
-                    'time' => $k,
-                    'num' => $v
-                ];
+        foreach (SystemL::$device as $key => $value){
+            $list = [];
+            for ($i = $data['time'][0]; $i <= $data['time'][1]; $i+= 86400){
+                $tmp['time'] = date("Y-m-d", $i);
+                $tmp['num'] = mt_rand(1100, 1200);
+                $list[] = $tmp;
             }
-            $return[] = $tmp;
+            $return[] = [
+                "title" => $key,
+                "list" => $list
+            ];
         }
 
         return [true, $return];
@@ -92,108 +48,33 @@ class ReportFormsService extends Service
         if(empty($data['time'][0]) || empty($data['time'][1])) return [false, '时间必须选择!'];
 
         $day = $this->returnDays($data['time'], false);
-        if($day > 31) return [false, '查询时间仅支持范围区间在31天内'];
+        if($day > 10) return [false, '查询时间仅支持范围区间在10天内'];
 
-        //获取数据
-        $result = SystemL::where('time','>=',$data['time'][0])
-            ->where('time','<',$data['time'][1])
-            ->select('device_name','time','value','data_point_name')
-            ->get()->toArray();
-
-        if(empty($result)) return [true,[]];
-        $device_name = array_values(array_unique(array_column($result,'device_name')));
-
-
-        $run_time = $process_time = $fault = $time_all = [];
-        foreach ($result as $value){
-            $time = date("Y-m-d",$value['time'] / 1000);
-            if($value['data_point_name'] == SystemL::run || $value['data_point_name'] == SystemL::standBy){
-                //运行次数
-                if(isset($run_time[$value['device_name']][$time])){
-                    $run_time[$value['device_name']][$time] += 1;
-                }else{
-                    $run_time[$value['device_name']][$time] = 1;
-                }
-            }
-            if($value['data_point_name'] == SystemL::standBy){
-                //工作次数
-                if(isset($process_time[$value['device_name']][$time])){
-                    $process_time[$value['device_name']][$time] += 1;
-                }else{
-                    $process_time[$value['device_name']][$time] = 1;
-                }
-            }
-            if($value['data_point_name'] == SystemL::stop){
-                //故障次数
-                if(isset($fault[$value['device_name']][$time])){
-                    $fault[$value['device_name']][$time] += 1;
-                }else{
-                    $fault[$value['device_name']][$time] = 1;
-                }
-            }
-
-            if(! in_array($time, $time_all)) $time_all[] = $time;
-        }
-        sort($time_all);
-
-        //组织模型  返回大致的数据结构
-        $models = [];
-        foreach (SystemL::$device as $k => $v){
-            foreach ($time_all as $t){
-                $models[$k][$t] = 0;
+        $return = [];
+        foreach (SystemL::$device as $key => $value){
+            $list = [];
+            for ($i = $data['time'][0]; $i <= $data['time'][1]; $i+= 86400){
+                $tmp['time'] = date("Y-m-d", $i);
+                $tmp['num'] = $this->getRandomFloat(35);
+                $list[] = $tmp;
             }
+            $return[] = [
+                "title" => $key,
+                "list" => $list
+            ];
         }
 
-        //填充模型里的数据
-        foreach ($device_name as $value){//设备名
-            foreach ($time_all as $d_val){
-                //运行次数
-                $run_num = $run_time[$value][$d_val] ?? 0;
-                //工作次数
-                $process_num  = $process_time[$value][$d_val] ?? 0;
-                //故障次数
-                $fault_tmp = $fault[$value][$d_val] ?? 0;
-
-                //运行时间
-                $run_time_tmp = $this->calTimeReturnMin($run_num);
-                //工作时间
-                $process_time_tmp = $this->calTimeReturnMin($process_num);
-                //故障时间
-                $fault_time_tmp = $this->calTimeReturnMin($fault_tmp);
-
-                //计划运行时间 工作时间 - 计划停机
-                //实际运行时间 计划运行时间 -故障停机 - 设备调整
-                $true_process_time = $process_time_tmp - $fault_time_tmp;
-                //有效率 实际/计划运行 时间
-                $efficient = $process_time_tmp > 0  ? number_format($true_process_time / $process_time_tmp,2) : 0;
-                //表现性 加工数量/实际运行时间
-                $expressive = $true_process_time > 0 ? number_format($process_num / $true_process_time,2) : 0;
-                //质量指数 加工数量- 废品数量 / 加工数量
-                $quality_index = $process_num > 0 ? number_format(($process_num - $fault_tmp) / $process_num,2) : 0;
-                //OEE
-                $oee = number_format($efficient * $expressive * $quality_index,2);
-                //模型里赋值
-                if(isset($models[$value][$d_val])){
-                    $models[$value][$d_val] = $oee;
-                }
-            }
-        }
 
-        //返回结果
-        $final = [];
-        foreach ($models as $key => $value){
-            $tmp['title'] = $key;
-            $tmp['list'] = [];
-            foreach ($value as $k => $v){
-                $tmp['list'][] = [
-                    'time' => $k,
-                    'num' => $v
-                ];
-            }
-            $final[] = $tmp;
-        }
+        return [true, $return];
+    }
 
-        return [true,$final];
+    function getRandomFloat($min = 40, $max = 43) {
+        // 生成一个在[0, 100)范围内的随机整数(乘以100是为了扩大范围,便于计算)
+        $randomInt = mt_rand(0, 99);
+        // 将随机整数转换为浮点数,并乘以范围(45-40),然后加上最小值40
+        $randomFloat = ($randomInt / 100) * ($max - $min) + $min;
+        // 返回两位小数
+        return round($randomFloat, 2);
     }
 
     /**

+ 12 - 0
routes/api.php

@@ -32,8 +32,20 @@ Route::any('testdwyget','Api\TestController@testdwyget');
 Route::any('testdwyput','Api\TestController@testdwyput');
 Route::any('getFileData','Api\ImportController@getFileData');
 
+//设备大屏 设备报表
 Route::any('deviceStatisticsReportChart', 'Api\ReportFormsController@deviceStatisticsReportChart');
 Route::any('deviceStatisticsReportOEEChart', 'Api\ReportFormsController@deviceStatisticsReportOEEChart');
+Route::any('output_value','Api\ReportFormsController@output_value');
+Route::any('order_process1','Api\ReportFormsController@order_process1');
+Route::any('project_region','Api\ReportFormsController@project_region');
+Route::any('output_value_month1','Api\ReportFormsController@output_value_month1');
+Route::any('output_value_efficiency','Api\ReportFormsController@output_value_efficiency');
+Route::any('capacity','Api\ReportFormsController@capacity');
+Route::any('product_num','Api\ReportFormsController@product_num');
+Route::any('work_order','Api\ReportFormsController@work_order');
+Route::any('nu_work_order','Api\ReportFormsController@nu_work_order');
+Route::any('saleOrdersFromAddress','Api\ReportFormsController@saleOrdersFromAddress');
+Route::any('production_status','Api\ReportFormsController@production_status');
 
 //更新t9总社库存
 Route::any('updateTopStock', 'Api\TestController@updateTopStock');

部分文件因为文件数量过多而无法显示