|
@@ -7,6 +7,7 @@ use App\Model\DeviceData;
|
|
|
use App\Model\DeviceSite;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
+use Illuminate\Support\Facades\Redis;
|
|
|
|
|
|
|
|
|
class ScreenController extends BaseController
|
|
@@ -188,8 +189,8 @@ class ScreenController extends BaseController
|
|
|
$models[$k]['w_week_num'] = $run_month_key[$k]??0;
|
|
|
|
|
|
|
|
|
- $models[$k]['rate_w'] = $now_w_key[$k]??0;
|
|
|
- $models[$k]['rate_y'] = $now_y_key[$k]??0;
|
|
|
+ $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;
|
|
|
}
|
|
|
sort($models);
|
|
|
return $this->json_return(200,'',$models);
|
|
@@ -237,4 +238,186 @@ class ScreenController extends BaseController
|
|
|
return number_format($minute * 1.5 / 60,2);
|
|
|
}
|
|
|
|
|
|
+ //温度明细、折线
|
|
|
+ public function wd(Request $request){
|
|
|
+
|
|
|
+ //明细
|
|
|
+ $request = $request->all();
|
|
|
+ $start = isset($request['start_time']) ? $request['start_time'] : time()-3000;
|
|
|
+// $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();
|
|
|
+
|
|
|
+ $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[]
|
|
|
+ $list[$k] = $v;
|
|
|
+ }
|
|
|
+// die('ss');
|
|
|
+ $time_list = [];
|
|
|
+ $data_key = [];
|
|
|
+ for ($i=$start;$i<time();$i= $i+60){
|
|
|
+ $time_key = date('Y-m-d H:i',$i);
|
|
|
+ $time_list[] = $time_key;
|
|
|
+ foreach ($device_key as $v){
|
|
|
+ if(isset($list_key[$v][$time_key])) $data_key[$v][] = $list_key[$v][$time_key];
|
|
|
+ else $data_key[$v][] = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $return = [];
|
|
|
+ $return[0][] = '设备名称';
|
|
|
+ foreach ($time_list as $v){
|
|
|
+ $return[0][] = $v;
|
|
|
+ }
|
|
|
+ $n = 0;
|
|
|
+ foreach ($data_key as $k=>$v){
|
|
|
+ $n++;
|
|
|
+ $return[$n][] = $k;
|
|
|
+ foreach ($v as $vv){
|
|
|
+ $return[$n][] = $vv;
|
|
|
+ }
|
|
|
+ }
|
|
|
+// var_dump($time_list);
|
|
|
+// var_dump($data_key);die;
|
|
|
+ //折线
|
|
|
+// $list = DeviceData::where('crt_time','>=',$start)->wherein('dev_eui',$key)->select('crt_time','device_name','happening_data')->get()->toArray();
|
|
|
+ return $this->json_return(200,'',['return'=>$return,'list'=>$list]);
|
|
|
+ }
|
|
|
+ //压力明细、折线
|
|
|
+ public function yl(Request $request){
|
|
|
+
|
|
|
+ //明细
|
|
|
+ $request = $request->all();
|
|
|
+ $start = isset($request['start_time']) ? $request['start_time'] : time()-3000;
|
|
|
+// $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();
|
|
|
+
|
|
|
+ $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[]
|
|
|
+ $list[$k] = $v;
|
|
|
+ }
|
|
|
+// die('ss');
|
|
|
+ $time_list = [];
|
|
|
+ $data_key = [];
|
|
|
+ for ($i=$start;$i<time();$i= $i+60){
|
|
|
+ $time_key = date('Y-m-d H:i',$i);
|
|
|
+ $time_list[] = $time_key;
|
|
|
+ foreach ($device_key as $v){
|
|
|
+ if(isset($list_key[$v][$time_key])) $data_key[$v][] = $list_key[$v][$time_key];
|
|
|
+ else $data_key[$v][] = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $return = [];
|
|
|
+ $return[0][] = '设备名称';
|
|
|
+ foreach ($time_list as $v){
|
|
|
+ $return[0][] = $v;
|
|
|
+ }
|
|
|
+ $n = 0;
|
|
|
+ foreach ($data_key as $k=>$v){
|
|
|
+ $n++;
|
|
|
+ $return[$n][] = $k;
|
|
|
+ foreach ($v as $vv){
|
|
|
+ $return[$n][] = $vv;
|
|
|
+ }
|
|
|
+ }
|
|
|
+// var_dump($time_list);
|
|
|
+// var_dump($data_key);die;
|
|
|
+ //折线
|
|
|
+// $list = DeviceData::where('crt_time','>=',$start)->wherein('dev_eui',$key)->select('crt_time','device_name','happening_data')->get()->toArray();
|
|
|
+ return $this->json_return(200,'',['return'=>$return,'list'=>$list]);
|
|
|
+ }
|
|
|
+
|
|
|
+ //故障明细、折线
|
|
|
+ public function gz(Request $request){
|
|
|
+
|
|
|
+ //明细
|
|
|
+ $request = $request->all();
|
|
|
+ $start = isset($request['start_time']) ? $request['start_time'] : 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('crt_time','device_name','happening_data')->get()->toArray();
|
|
|
+ foreach ($list as &$v){
|
|
|
+ $v['device_name'] = substr(str_replace('广西大王椰','',$v['device_name']),0,19);
|
|
|
+ $v['crt_time'] = date('Y-m-d H:i:s',$v['crt_time']);
|
|
|
+ }
|
|
|
+ //折线
|
|
|
+// $list = DeviceData::where('crt_time','>=',$start)->wherein('dev_eui',$key)->select('crt_time','device_name','happening_data')->get()->toArray();
|
|
|
+ return $this->json_return(200,'',$list);
|
|
|
+ }
|
|
|
+
|
|
|
+ //机器云明细,机器云折线
|
|
|
+ public function deviceAll(Request $request){
|
|
|
+
|
|
|
+ //明细
|
|
|
+ $request = $request->all();
|
|
|
+ $start = isset($request['start_time']) ? $request['start_time'] : time()-300;
|
|
|
+// $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();
|
|
|
+ $list = $list['data'];
|
|
|
+ foreach ($list as &$v){
|
|
|
+ $v['device_name'] = substr(str_replace('广西大王椰','',$v['device_name']),0,19);
|
|
|
+ $v['crt_time'] = date('Y-m-d H:i:s',$v['crt_time']);
|
|
|
+ $v['title'] = $key[$v['dev_eui']];
|
|
|
+ }
|
|
|
+ //折线
|
|
|
+// $list = DeviceData::where('crt_time','>=',$start)->wherein('dev_eui',$key)->select('crt_time','device_name','happening_data')->get()->toArray();
|
|
|
+ return $this->json_return(200,'',$list);
|
|
|
+ }
|
|
|
+
|
|
|
+ //机器云明细,机器云折线
|
|
|
+ public function deviceChart(Request $request){
|
|
|
+
|
|
|
+ //明细
|
|
|
+ $request = $request->all();
|
|
|
+ $start = isset($request['start_time']) ? $request['start_time'] : time()-5000;
|
|
|
+// $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();
|
|
|
+ foreach ($list as &$v){
|
|
|
+ $v['device_name'] = substr(str_replace('广西大王椰','',$v['device_name']),0,19);
|
|
|
+ }
|
|
|
+ //折线
|
|
|
+// $list = DeviceData::where('crt_time','>=',$start)->wherein('dev_eui',$key)->select('crt_time','device_name','happening_data')->get()->toArray();
|
|
|
+ return $this->json_return(200,'',$list);
|
|
|
+ }
|
|
|
+
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
}
|