gogs 1 рік тому
батько
коміт
179383e8ed
2 змінених файлів з 62 додано та 29 видалено
  1. 60 29
      app/Http/Controllers/Api/ScreenController.php
  2. 2 0
      routes/api.php

+ 60 - 29
app/Http/Controllers/Api/ScreenController.php

@@ -191,6 +191,7 @@ class ScreenController extends BaseController
 
             $models[$k]['rate_w'] = isset($now_w_key[$k]) ?sprintf('%.2f',$now_w_key[$k]):0;
             $models[$k]['rate_y'] =  isset($now_y_key[$k]) ? sprintf('%.2f',$now_y_key[$k]):0;
+            if( $models[$k]['rate_y']>10) $models[$k]['rate_y'] =  sprintf('%.2f',($models[$k]['rate_y']/100));
         }
         sort($models);
         return $this->json_return(200,'',$models);
@@ -243,24 +244,27 @@ class ScreenController extends BaseController
 
         //明细
         $request = $request->all();
-        $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();
-
+        $max_time = DeviceData::wherein('dev_eui',$key)->max('crt_time');
+        $start = $max_time-1800;
+        $list = DeviceData::wherein('dev_eui',$key)->where('crt_time','>=',$start)->select(DB::raw("DATE_FORMAT(FROM_UNIXTIME(crt_time), '%Y-%m-%d %H:%i') as c"),'device_name','happening_data')->get()->toArray();
+//        $list = $list['data'];
+//        $start = strtotime($list[0]['c']);
         $list_key = [];
         $device_key = [];
         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']] = sprintf('%.2f',$v['happening_data']*1);
+//            $list_key[$v['device_name']][$v['c']] = rand(0,100);
 //            $list_key[]
             $list[$k] = $v;
         }
 //        die('ss');
         $time_list = [];
         $data_key = [];
-        for ($i=$start;$i<time();$i= $i+60){
+        for ($i=$start;$i<$max_time;$i= $i+60){
             $time_key = date('Y-m-d H:i',$i);
             $time_list[] = $time_key;
             foreach ($device_key as $v){
@@ -292,7 +296,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()-8000;
 //        $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();
@@ -400,14 +404,15 @@ class ScreenController extends BaseController
 
         //明细
         $request = $request->all();
-        $start = isset($request['start_time']) ? $request['start_time'] : time()-300;
+//        $start = isset($request['start_time']) ? $request['start_time'] : time()-200;
 //        $end = isset($request['start_time']) ? $request['start_time'] : time();
         $key = DeviceSite::where('site',1)->groupBy('key')->pluck('title','key')->toArray();
         $key_list = [];
         foreach ($key as $k=>$v){
             $key_list[] = $k;
         }
-        $list = DeviceData::where('crt_time','>=',$start)->wherein('dev_eui',$key_list)->select('crt_time','device_name','happening_data','dev_eui')->paginate(100, '', 'page', 1)->toArray();
+        $id = DeviceData::wherein('dev_eui',$key_list)->max('id');
+        $list = DeviceData::where('id','>=',($id-100))->wherein('dev_eui',$key_list)->select('crt_time','device_name','happening_data','dev_eui')->paginate(100, '', 'page', 1)->toArray();
         $list = $list['data'];
         foreach ($list as &$v){
             $v['device_name'] = substr(str_replace('广西大王椰','',$v['device_name']),0,19);
@@ -424,7 +429,7 @@ class ScreenController extends BaseController
 
         //明细
         $request = $request->all();
-        $start = isset($request['start_time']) ? $request['start_time'] : time()-10000;
+        $start = isset($request['start_time']) ? $request['start_time'] : time()-100000;
 //        $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();
@@ -437,27 +442,53 @@ class ScreenController extends BaseController
     }
 
     public function inout(){
-        $key = 'inout_key';
-        $a = Redis::get($key);
-        if(empty($a)){
-            $a = 1;
-        } else{
-            if($a == 1) $a = 2;
-            else $a = 1;
-        }
-        Redis::set($key,$a);
-
-        if($a = 1) $type = '出库';
-        else $type = '入库';
-
-        $detail = [
-            'project'=>'四川省北圆建材有限责任公司',
-            'type'=>$type,
-            'num'=>'100',
-            'order_no'=>'CK2023100901736',
-            $type.'时间'=>date('Y-m-d H:i:s'),
-        ];
-        return $this->json_return(200,'',$detail);
+        $i = 'inout_key_state';
+        $s = Redis::get($i);
+        if($s){
+            $key = 'inout_key';
+            $a = Redis::get($key);
+            if(empty($a)){
+                $a = 1;
+            } else{
+                if($a == 1) $a = 2;
+                else $a = 1;
+            }
+            Redis::set($key,$a);
+
+            if($a == 1) $type = '出库';
+            else $type = '入库';
+
+            $detail = [
+                'project'=>'南京福猴建材有限公司',
+                'type'=>$type,
+                'num'=>'2',
+                'order_no'=>'PG2023101900818',
+                '时间'=>date('Y-m-d H:i:s'),
+            ];
+            Redis::del($i);
+            return $this->json_return(200,'',$detail);
+        }
+
+        return $this->json_return(200,'',[]);
+
+    }
+
+    public function upInout(){
+        $i = 'inout_key_state';
+        $s = Redis::set($i,1);
+    }
+
+    public function t(){
+        $a = bin2hex('PG2023103000182');
+        echo             '00'.$a;
     }
+//
+//    public function endDb($db,$start_time){
+//
+//        $end_time = $start_time-86400;
+//        $start_time =
+//        $db = $db->where('crt_time','>=',$start_time)->
+//        return $db;
+//    }
 
 }

+ 2 - 0
routes/api.php

@@ -30,7 +30,9 @@ 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('upInout', 'Api\ScreenController@upInout');
 Route::any('gzEchart', 'Api\ScreenController@gzEchart');
+Route::any('t', 'Api\ScreenController@t');
 
 Route::group(['middleware'=> []],function ($route){
     $route->any('menuAdd', 'Api\SysMenuController@add');