|
@@ -1,12 +1,14 @@
|
|
|
package com.xunmei.mediator.api.service.impl;
|
|
package com.xunmei.mediator.api.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
+import com.alibaba.fastjson2.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xunmei.common.core.constant.SecurityConstants;
|
|
import com.xunmei.common.core.constant.SecurityConstants;
|
|
|
import com.xunmei.common.core.domain.iot.domain.IotSensor;
|
|
import com.xunmei.common.core.domain.iot.domain.IotSensor;
|
|
|
import com.xunmei.common.core.domain.iot.domain.IotSensorLog;
|
|
import com.xunmei.common.core.domain.iot.domain.IotSensorLog;
|
|
|
import com.xunmei.common.core.enums.CategoryDataEnum;
|
|
import com.xunmei.common.core.enums.CategoryDataEnum;
|
|
|
|
|
+import com.xunmei.common.core.util.BeanHelper;
|
|
|
import com.xunmei.common.core.utils.IDHelper;
|
|
import com.xunmei.common.core.utils.IDHelper;
|
|
|
import com.xunmei.mediator.api.mapper.IotSensorMapper;
|
|
import com.xunmei.mediator.api.mapper.IotSensorMapper;
|
|
|
import com.xunmei.mediator.api.service.EquipmentSyncService;
|
|
import com.xunmei.mediator.api.service.EquipmentSyncService;
|
|
@@ -18,6 +20,7 @@ import com.xunmei.mediator.util.RedisCheckRepeatDataUtil;
|
|
|
import com.xunmei.system.api.RemoteOrgService;
|
|
import com.xunmei.system.api.RemoteOrgService;
|
|
|
import com.xunmei.system.api.domain.SysOrg;
|
|
import com.xunmei.system.api.domain.SysOrg;
|
|
|
import com.xunmei.system.api.domain.north.MediatorDeviceData;
|
|
import com.xunmei.system.api.domain.north.MediatorDeviceData;
|
|
|
|
|
+import com.xunmei.system.api.domain.north.MediatorDeviceDataLog;
|
|
|
import com.xunmei.system.api.domain.north.NorthError;
|
|
import com.xunmei.system.api.domain.north.NorthError;
|
|
|
import com.xunmei.system.api.dto.DataPageDto;
|
|
import com.xunmei.system.api.dto.DataPageDto;
|
|
|
import com.xunmei.system.api.dto.SensorDto;
|
|
import com.xunmei.system.api.dto.SensorDto;
|
|
@@ -76,7 +79,6 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
|
|
|
String path = "/api/{branchId}/status/sensorCommon";
|
|
String path = "/api/{branchId}/status/sensorCommon";
|
|
|
List<NorthError> errors = new ArrayList<>();
|
|
List<NorthError> errors = new ArrayList<>();
|
|
|
Map<String, List<IotSensor>> productDeviceMap = getAllDevice();
|
|
Map<String, List<IotSensor>> productDeviceMap = getAllDevice();
|
|
|
- List<MediatorDeviceData> deviceDataList = new ArrayList<>();
|
|
|
|
|
List<IotSensor> sensorList = new ArrayList<>();
|
|
List<IotSensor> sensorList = new ArrayList<>();
|
|
|
List<IotSensorLog> sensorLogList = new ArrayList<>();
|
|
List<IotSensorLog> sensorLogList = new ArrayList<>();
|
|
|
for (SensorStatusDto status : request.getData()) {
|
|
for (SensorStatusDto status : request.getData()) {
|
|
@@ -98,51 +100,26 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
|
|
|
, status, "对应设备不存在:" + status.getDeviceCode()));
|
|
, status, "对应设备不存在:" + status.getDeviceCode()));
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
- buildSensorAndLog(sensorList, sensorLogList, optional.get());
|
|
|
|
|
- /* MediatorDeviceData deviceData = new MediatorDeviceData();
|
|
|
|
|
- deviceData.setDeviceName(status.getDeviceName());
|
|
|
|
|
- deviceData.setOrgId(org.getId());
|
|
|
|
|
- deviceData.setOrgPath(org.getPath());
|
|
|
|
|
- deviceData.setOrgCode(org.getGuid());
|
|
|
|
|
- deviceData.setOrgName(org.getName());
|
|
|
|
|
- deviceData.setUpdateTime(status.getUpdateTime());
|
|
|
|
|
- deviceData.setMulti(0);
|
|
|
|
|
- deviceData.setItems(status.getInfos());
|
|
|
|
|
-
|
|
|
|
|
- MediatorDeviceDataLog deviceDataLog = new MediatorDeviceDataLog();
|
|
|
|
|
- BeanHelper.copyProperties(deviceDataLog, deviceData, "id");
|
|
|
|
|
- deviceDataLog.setCreateTime(new Date());
|
|
|
|
|
- deviceDataLogList.add(deviceDataLog);
|
|
|
|
|
- deviceDataList.add(deviceData);*/
|
|
|
|
|
- }
|
|
|
|
|
- if (errors.size() > 0) {
|
|
|
|
|
- northErrorService.saveErrorData(errors);
|
|
|
|
|
|
|
+ final String infoStr = JSON.toJSONString(status.getInfos());
|
|
|
|
|
+ final IotSensor iotSensor = optional.get();
|
|
|
|
|
+ iotSensor.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
+ iotSensor.setDeviceName(status.getDeviceName());
|
|
|
|
|
+ iotSensor.setDeviceType(status.getDeviceType());
|
|
|
|
|
+ if (ObjectUtil.notEqual(iotSensor.getInfos(), infoStr)) {
|
|
|
|
|
+ iotSensor.setStateUpdateTime(LocalDateTime.now());
|
|
|
|
|
+ }
|
|
|
|
|
+ iotSensor.setInfos(infoStr);
|
|
|
|
|
+ final IotSensorLog iotSensorLog = new IotSensorLog();
|
|
|
|
|
+ BeanUtils.copyProperties(iotSensor, iotSensorLog,"id");
|
|
|
|
|
+ iotSensorLog.setIotSensorId(iotSensor.getId());
|
|
|
|
|
+ iotSensorLog.setSource(1);
|
|
|
|
|
+ iotSensorLog.setDeviceType(iotSensor.getDeviceType());
|
|
|
|
|
+ sensorList.add(iotSensor);
|
|
|
|
|
+ sensorLogList.add(iotSensorLog);
|
|
|
}
|
|
}
|
|
|
|
|
+ northErrorService.saveErrorData(errors);
|
|
|
updateBatchById(sensorList);
|
|
updateBatchById(sensorList);
|
|
|
iotSensorLogService.saveBatch(sensorLogList);
|
|
iotSensorLogService.saveBatch(sensorLogList);
|
|
|
- /* remoteMediatorService.saveOrUpdateDeviceData(deviceDataList, SecurityConstants.INNER);
|
|
|
|
|
- remoteMediatorService.saveOrUpdateDeviceDataLog(deviceDataLogList, SecurityConstants.INNER);
|
|
|
|
|
-
|
|
|
|
|
- for (MediatorDeviceData deviceData : deviceDataList) {
|
|
|
|
|
- equipmentSyncService.analysisItem(deviceData);
|
|
|
|
|
- }*/
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private void buildSensorAndLog(List<IotSensor> sensorList, List<IotSensorLog> sensorLogList, IotSensor iotSensor) {
|
|
|
|
|
- iotSensor.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
- iotSensor.setInfos(iotSensor.getInfos());
|
|
|
|
|
- iotSensor.setDeviceName(iotSensor.getDeviceName());
|
|
|
|
|
- iotSensor.setDeviceType(iotSensor.getDeviceType());
|
|
|
|
|
- iotSensor.setStateUpdateTime(LocalDateTime.now());
|
|
|
|
|
- final IotSensorLog iotSensorLog = new IotSensorLog();
|
|
|
|
|
- BeanUtils.copyProperties(iotSensor, iotSensorLog);
|
|
|
|
|
- iotSensorLog.setIotSensorId(iotSensor.getId());
|
|
|
|
|
- iotSensorLog.setCreateTime(LocalDateTime.now());
|
|
|
|
|
- iotSensorLog.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
- iotSensorLog.setStateUpdateTime(LocalDateTime.now());
|
|
|
|
|
- iotSensorLog.setSource(1);
|
|
|
|
|
- sensorList.add(iotSensor);
|
|
|
|
|
- sensorLogList.add(iotSensorLog);
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -246,7 +223,7 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
|
|
|
return baseMapper.selectList(new LambdaQueryWrapper<IotSensor>()
|
|
return baseMapper.selectList(new LambdaQueryWrapper<IotSensor>()
|
|
|
.eq(IotSensor::getSource, 1))
|
|
.eq(IotSensor::getSource, 1))
|
|
|
.stream()
|
|
.stream()
|
|
|
- .collect(Collectors.groupingBy(c -> c.getOrgId()+c.getDeviceCode()));
|
|
|
|
|
|
|
+ .collect(Collectors.groupingBy(c -> String.valueOf(c.getOrgId())));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private Long convertDeviceType(String deviceCode) {
|
|
private Long convertDeviceType(String deviceCode) {
|