|
@@ -109,6 +109,8 @@ class DeviceService extends Service
|
|
|
}
|
|
|
|
|
|
public function equipmentList($data){
|
|
|
+ $device_map = SystemlService::getLastData();
|
|
|
+
|
|
|
$model = Device::where('del_time',0)
|
|
|
->select('*')
|
|
|
->orderBy('id','DESC');
|
|
@@ -128,14 +130,48 @@ class DeviceService extends Service
|
|
|
$model->whereNotIn('id',array_column($id,'device_id'));
|
|
|
}
|
|
|
}
|
|
|
+ if(isset($data['is_online'])){
|
|
|
+ $search = [];
|
|
|
+ foreach ($device_map as $device_no => $value){
|
|
|
+ if($data['is_online'] && ! empty($value)){
|
|
|
+ $search[] = $device_no;
|
|
|
+ }elseif(! $data['is_online'] && empty($value)){
|
|
|
+ $search[] = $device_no;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $model->whereIn('code',$search);
|
|
|
+ }
|
|
|
+ if(isset($data['is_exception'])){
|
|
|
+ $search = [];
|
|
|
+ foreach ($device_map as $device_no => $value){
|
|
|
+ if($data['is_exception'] && ! empty($value)){
|
|
|
+ if(in_array($value['device_type_id'],DeviceType::$node_two)){
|
|
|
+ //传感器类
|
|
|
+ if(in_array($value['data_point_name'],DeviceType::$normal)) $search[] = $device_no;
|
|
|
+ }else{
|
|
|
+ $search[] = $device_no;
|
|
|
+ }
|
|
|
+ }elseif(! $data['is_exception']){
|
|
|
+ if(empty($value)){
|
|
|
+ $search[] = $device_no;
|
|
|
+ }else{
|
|
|
+ if(in_array($value['device_type_id'],DeviceType::$node_two)){
|
|
|
+ //传感器类
|
|
|
+ if(in_array($value['data_point_name'],DeviceType::$abnormal)) $search[] = $device_no;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $model->whereIn('code',$search);
|
|
|
+ }
|
|
|
|
|
|
$list = $this->limit($model,'',$data);
|
|
|
- $list = $this->fillData($list);
|
|
|
+ $list = $this->fillData($list,$device_map);
|
|
|
|
|
|
return [true,$list];
|
|
|
}
|
|
|
|
|
|
- public function fillData($data){
|
|
|
+ public function fillData($data,$device_map){
|
|
|
if(empty($data['data'])) return $data;
|
|
|
$gatewayMap = Gateway::whereIn('id',array_unique(array_column($data['data'],'gateway_id')))
|
|
|
->pluck('code','id')
|
|
@@ -144,12 +180,12 @@ class DeviceService extends Service
|
|
|
->pluck('title','id')
|
|
|
->toArray();
|
|
|
|
|
|
- $message = SystemlService::getLastData(array_column($data['data'],'code'));
|
|
|
+ $message = $device_map;
|
|
|
foreach ($data['data'] as $key => $value){
|
|
|
$data['data'][$key]['gateway'] = $gatewayMap[$value['gateway_id']] ?? '';
|
|
|
$data['data'][$key]['device_type'] = $deviceTypeMap[$value['device_type_id']] ?? '';
|
|
|
$is_online = $is_exception = 0;
|
|
|
- if(isset($message[$value['code']])){
|
|
|
+ if(! empty($message[$value['code']])){
|
|
|
$is_online = 1;
|
|
|
$tmp = $message[$value['code']];
|
|
|
if(in_array($value['device_type_id'],DeviceType::$node_two)){
|