Преглед изворни кода

北向 布撤防状态时间未变更问题处理,
传感器上报新设备时bug处理

jingyuanchao пре 1 година
родитељ
комит
5cf41ddc72

+ 1 - 1
soc-modules/soc-modules-iot/src/main/resources/mapper/IotSensorMapper.xml

@@ -97,7 +97,7 @@
         FROM
         iot_sensor a
         LEFT JOIN sys_org b ON a.org_id = b.id
-        where device_code in
+        where  a.deleted=0 and a.device_code in
         <foreach collection="deviceIds" index="index" item="item" open="(" separator="," close=")">
             #{item}
         </foreach>

+ 3 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmSubSystemServiceImpl.java

@@ -171,6 +171,9 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
         protection.setName(protectionEditDto.getDefenceareaName());
         protection.setUpdateTime(updateTime);
         protection.setStatusUpdateTime(LocalDateTime.now());
+        if (ObjectUtil.notEqual(protection.getStatus(), protectionEditDto.getDefenceStatus())) {
+            protection.setStatusChangeTime(LocalDateTime.parse(protectionEditDto.getUpdateTime(), DateTimeFormatter.ISO_DATE_TIME));
+        }
         switch (protectionEditDto.getDefenceStatus()) {
             case 0:
                 protection.setStatus(ProtectionStatus.REMOVAL.ordinal());

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

@@ -6,6 +6,7 @@ import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.DictConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
@@ -244,39 +245,37 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
         Set<String> uniqueSet = new HashSet<>();
         for (SensorDto sensorDto : sensorDtos) {
             NorthError error = null;
-            IotSensor domain = new IotSensor();
+            IotSensor domain = null;
 
             if (StringUtils.isEmpty(sensorDto.getOrgCode())) {
-                error = new NorthError(msgId, path
-                        , sensorDto, "参数非法:未传orgCode");
+                error = new NorthError(msgId, path, sensorDto, "参数非法:未传orgCode");
                 errors.add(error);
                 continue;
             }
-
             String key = sensorDto.getDeviceCode();
             if (uniqueSet.contains(key)) {
-                errors.add(new NorthError(msgId, path
-                        , sensorDto, "数据来源中,同机构中设备编号重复。"));
+                errors.add(new NorthError(msgId, path, sensorDto, "数据来源中,同机构中设备编号重复。"));
                 continue;
             }
             String deviceType = convertDeviceType(sensorDto.getDeviceType());
             if (ObjectUtil.isNull(deviceType)) {
-                errors.add(new NorthError(msgId, path
-                        , sensorDto, "无法识别的设备类型"));
+                errors.add(new NorthError(msgId, path, sensorDto, "无法识别的设备类型"));
                 continue;
             }
             uniqueSet.add(key);
             List<IotSensor> exists = productDeviceMap.get(key);
-            domain.setId(IDHelper.id());
-            domain.setDeviceType(sensorDto.getDeviceType());
-            domain.setDeleted(0);
-            domain.setCreateTime(LocalDateTime.now());
-            if (ObjectUtil.isNotEmpty(exists)) {
+            if (ObjectUtil.isEmpty(exists)){
+                domain=new IotSensor();
+                domain.setId(IdWorker.getId());
+                domain.setCreateTime(LocalDateTime.now());
+            }else {
                 if (exists.size() > 1) {
                     errors.add(new NorthError(msgId, path, sensorDto, "同机构下设备编号重复,将取第一条"));
                 }
                 domain = exists.get(0);
             }
+            domain.setDeviceType(sensorDto.getDeviceType());
+            domain.setDeleted(0);
             domain.setUpdateTime(LocalDateTime.now());
             domain.setDeviceName(sensorDto.getDeviceName().replace("机房/基站环境", "物联环境"));
             domain.setHostCode(sensorDto.getHostCode());