gogs пре 1 година
родитељ
комит
70f25b2095
2 измењених фајлова са 44 додато и 3 уклоњено
  1. 43 3
      app/Http/Controllers/Api/ScreenController.php
  2. 1 0
      routes/api.php

+ 43 - 3
app/Http/Controllers/Api/ScreenController.php

@@ -88,7 +88,7 @@ class ScreenController extends BaseController
 
             $oee = number_format($efficient * $expressive * $quality_index,2);
             if($oee >  $a ) $oee -= $a;
-            $models[$k]['rate'] = $oee;
+            $models[$k]['rate'] = sprintf('%.2f',$oee);
         }
         sort($models);
         return $this->json_return(200,'',$models);
@@ -243,7 +243,7 @@ class ScreenController extends BaseController
 
         //明细
         $request = $request->all();
-        $start = isset($request['start_time']) ? $request['start_time'] : time()-3000;
+        $start = isset($request['start_time']) ? $request['start_time'] : time()-6000;
 //        $end = isset($request['start_time']) ? $request['start_time'] : time();
         $key = DeviceSite::where('site',1)->wherein('title',['温度'])->groupBy('key')->pluck('key')->toArray();
         $list = DeviceData::where('crt_time','>=',$start)->wherein('dev_eui',$key)->select(DB::raw("DATE_FORMAT(FROM_UNIXTIME(crt_time), '%Y-%m-%d %H:%i') as c"),'device_name','happening_data')->get()->toArray();
@@ -300,6 +300,7 @@ class ScreenController extends BaseController
         $list_key = [];
         $device_key = [];
         foreach ($list as $k=>$v){
+            if($v['happening_data'] > 10) $v['happening_data'] = sprintf('%.2f',$v['happening_data']/1000);
             $v['device_name'] = substr(str_replace('广西大王椰','',$v['device_name']),0,19);
             if(!in_array($v['device_name'],$device_key))$device_key[] = $v['device_name'];
             $list_key[$v['device_name']][$v['c']] = sprintf('%.2f',$v['happening_data']*1);
@@ -355,6 +356,45 @@ class ScreenController extends BaseController
         return $this->json_return(200,'',$list);
     }
 
+    public function gzEchart(){
+
+        $start = time()-864000;
+//        $end = isset($request['start_time']) ? $request['start_time'] : time();
+        $key = DeviceSite::where('site',1)->wherein('title',['急停'])->groupBy('key')->pluck('key')->toArray();
+        $list = DeviceData::where('crt_time','>=',$start)->wherein('dev_eui',$key)->where('happening_data',1)->select(DB::raw("DATE_FORMAT(FROM_UNIXTIME(crt_time), '%Y-%m-%d %H') as c") ,DB::raw("count(id) as s"),'device_name','happening_data')->groupBy('dev_eui')->groupBy(DB::raw("DATE_FORMAT(FROM_UNIXTIME(crt_time), '%Y-%m-%d %H')"))->get()->toArray();
+        $list_key = [];
+        $device_key = [];
+        $time_list = [];
+        foreach ($list as $k=>$v){
+            $v['device_name'] = substr(str_replace('广西大王椰','',$v['device_name']),0,19);
+            if(!in_array($v['device_name'],$device_key))$device_key[] = $v['device_name'];
+            $list_key[$v['device_name']][$v['c']] = $v['s'];
+//            $list_key[]
+            $list[$k] = $v;
+            if(!in_array($v['c'],$time_list))$time_list[] = $v['c'];
+        }
+//        die('ss');
+       sort($time_list);
+        $return = [];
+       foreach ($time_list as $v){
+           foreach ($list_key as $k=>$vv){
+              if(!isset($return[$k]))  $return[$k] = [];
+              if(isset($vv[$v])) $return[$k][] =  $vv[$v];
+              else  $return[$k][] = 0;
+           }
+//           $return[] = $detail;
+       }
+       $detail = [];
+       foreach ($return as $k=>$v){
+           $detail[] = [
+               'title' => $k,
+               'list' => $v,
+           ];
+       }
+//       var_dump($return);die;
+        return $this->json_return(200,'',['return'=>$detail,'x'=>$time_list]);
+    }
+
     //机器云明细,机器云折线
     public function deviceAll(Request $request){
 
@@ -384,7 +424,7 @@ class ScreenController extends BaseController
 
         //明细
         $request = $request->all();
-        $start = isset($request['start_time']) ? $request['start_time'] : time()-5000;
+        $start = isset($request['start_time']) ? $request['start_time'] : time()-10000;
 //        $end = isset($request['start_time']) ? $request['start_time'] : time();
         $key = DeviceSite::where('site',1)->wherein('title',['温度'])->groupBy('key')->pluck('key')->toArray();
         $list = DeviceData::where('crt_time','>=',$start)->wherein('dev_eui',$key)->select(DB::raw('count(1) as count'),'device_name')->groupBy('dev_eui')->get()->toArray();

+ 1 - 0
routes/api.php

@@ -30,6 +30,7 @@ Route::any('gz', 'Api\ScreenController@gz');
 Route::any('deviceAll', 'Api\ScreenController@deviceAll');
 Route::any('deviceChart', 'Api\ScreenController@deviceChart');
 Route::any('inout', 'Api\ScreenController@inout');
+Route::any('gzEchart', 'Api\ScreenController@gzEchart');
 
 Route::group(['middleware'=> []],function ($route){
     $route->any('menuAdd', 'Api\SysMenuController@add');