Browse Source

北向 动环传感器状态同步代码提交

jingyuanchao 1 năm trước cách đây
mục cha
commit
7d4c6dc630

+ 3 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/dto/SensorStatusDto.java

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 @Data
 public class SensorStatusDto {
@@ -26,5 +28,5 @@ public class SensorStatusDto {
     private Date updateTime;
 
     @ApiModelProperty(value = "属性信息数组")
-    private String infos;
+    private List<Map> infos;
 }

+ 4 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/iot/domain/IotSensorLog.java

@@ -56,6 +56,10 @@ public class IotSensorLog implements Serializable {
     @TableField("device_code")
     private String deviceCode;
 
+    @ApiModelProperty(value = "设备类型编码")
+    @TableField("device_type")
+    private String deviceType;
+
     @ApiModelProperty(value = "传感器类型编码")
     @TableField("category_id")
     private Long categoryId;

+ 1 - 1
soc-modules/soc-modules-gen/src/main/java/com/xunmei/gen/util/CodeGenerators.java

@@ -30,7 +30,7 @@ public class CodeGenerators {
     }*/
 
     public static final String moduleName="com.xunmei.mediator";
-    public static final String tableNames="iot_alarm_defence_area_data_log";
+    public static final String tableNames="iot_sensor_data,iot_sensor_data_log";
 
     public static void main(String[] args) {
         // 代码生成器

+ 21 - 44
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotSensorServiceImpl.java

@@ -1,12 +1,14 @@
 package com.xunmei.mediator.api.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.iot.domain.IotSensor;
 import com.xunmei.common.core.domain.iot.domain.IotSensorLog;
 import com.xunmei.common.core.enums.CategoryDataEnum;
+import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.mediator.api.mapper.IotSensorMapper;
 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.domain.SysOrg;
 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.dto.DataPageDto;
 import com.xunmei.system.api.dto.SensorDto;
@@ -76,7 +79,6 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
         String path = "/api/{branchId}/status/sensorCommon";
         List<NorthError> errors = new ArrayList<>();
         Map<String, List<IotSensor>> productDeviceMap = getAllDevice();
-        List<MediatorDeviceData> deviceDataList = new ArrayList<>();
         List<IotSensor> sensorList = new ArrayList<>();
         List<IotSensorLog> sensorLogList = new ArrayList<>();
         for (SensorStatusDto status : request.getData()) {
@@ -98,51 +100,26 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
                         , status, "对应设备不存在:" + status.getDeviceCode()));
                 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);
         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
@@ -246,7 +223,7 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
         return baseMapper.selectList(new LambdaQueryWrapper<IotSensor>()
                         .eq(IotSensor::getSource, 1))
                 .stream()
-                .collect(Collectors.groupingBy(c -> c.getOrgId()+c.getDeviceCode()));
+                .collect(Collectors.groupingBy(c -> String.valueOf(c.getOrgId())));
     }
 
     private Long convertDeviceType(String deviceCode) {