Эх сурвалжийг харах

联调 代码修改提交

jingyuanchao 1 жил өмнө
parent
commit
f6f1ca894f

+ 5 - 3
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/DataController.java

@@ -2,7 +2,6 @@ package com.xunmei.mediator.api.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.mediator.api.service.*;
 import com.xunmei.system.api.RemoteDeviceService;
@@ -14,7 +13,10 @@ import com.xunmei.system.api.dto.protection.NetworkDeviceDetectionEditDto;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.api.util.LogUtils;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -135,7 +137,7 @@ public class DataController {
     }
 
 
-    @ApiOperation("传感器通用设备实时状态")
+    @ApiOperation(value = "传感器通用设备状态同步",notes = "十分钟定时全量推送")
     @PostMapping({"/api/status/sensorCommon"})
     public ReceiveErrorDto status(String msgId, @RequestBody DataPageDto<SensorStatusDto> statuses) {
         LogUtils.DIRECT_HOST_SENSOR_STATUS.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "接受传感器通用设备实时状态信息同步:/api/status/sensorCommon", msgId, JSON.toJSONString(statuses));

+ 2 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/IotAlarmSubsystemMapper.java

@@ -1,6 +1,7 @@
 package com.xunmei.mediator.api.mapper;
 
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xunmei.common.core.domain.iot.domain.IotAlarmSubsystem;
 import org.apache.ibatis.annotations.Mapper;
@@ -14,6 +15,7 @@ import org.apache.ibatis.annotations.Mapper;
  * @since 2022-09-11
  */
 @Mapper
+@InterceptorIgnore(blockAttack = "true")
 public interface IotAlarmSubsystemMapper extends BaseMapper<IotAlarmSubsystem> {
 
     void updateAllDelete();

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

@@ -74,6 +74,8 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
     private NorthErrorService northErrorService;
     @Resource
     IotAlarmDefenceAreaMapper defenceAreaMapper;
+    @Resource
+    private IotAlarmSubsystemMapper subsystemMapper;
 
     @Override
     public IotAlarmSubsystem findByCodeAndOrgId(String defenceAreaCode, Long orgId) {
@@ -337,6 +339,9 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
                 errors.add(error);
                 //continue;
             } else {*/
+            if (ObjectUtil.isNull(dto.getSensorArray())) {
+                dto.setSensorArray(new ArrayList<>());
+            }
             for (SensorDto sensorDto : dto.getSensorArray()) {
                 if (StringUtils.isEmpty(sensorDto.getInputName())) {
                     error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:未传InputName");
@@ -377,14 +382,22 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
                 continue;
             }
             Map<String, Object> map = this.protectionBuild(dto, org);
-            protectionList.add((IotAlarmSubsystem) map.get("protection"));
+            IotAlarmSubsystem protection = (IotAlarmSubsystem) map.get("protection");
+            if (ObjectUtil.isNotNull(protection)) {
+                protectionList.add(protection);
+            }
             List<IotAlarmDefenceArea> list = (List<IotAlarmDefenceArea>) map.get("sensorList");
-            sensorList.addAll(list);
+            if (ObjectUtil.isNotEmpty(list)) {
+                sensorList.addAll(list);
+            }
+
         }
 
         northErrorService.saveErrorData(errors);
-        baseMapper.updateAllDelete();
-        this.saveOrUpdateBatch(protectionList);
+        subsystemMapper.updateAllDelete();
+        if (ObjectUtil.isNotEmpty(protectionList)) {
+            this.saveOrUpdateBatch(protectionList);
+        }
         defenceAreaMapper.delete(new LambdaQueryWrapper<>());
         if (ObjectUtil.isNotEmpty(sensorList)) {
             defenceAreService.saveOrUpdateBatch(sensorList);
@@ -414,7 +427,7 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
         protection.setOrgName(org.getShortName());
         protection.setOrgPath(org.getPath());
         map.put("protection", protection);
-
+        saveProtectionLog(protection);
 
         if (ObjectUtil.isEmpty(dto.getSensorArray())) {
             return map;

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

@@ -10,6 +10,7 @@ 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.utils.DateUtils;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.mediator.api.mapper.IotSensorMapper;
 import com.xunmei.mediator.api.service.EquipmentSyncService;
@@ -76,7 +77,7 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
     }
 
     private void saveStatusAsync(DataPageDto<SensorStatusDto> request, String msgId) throws ParseException {
-        String path = "/api/{branchId}/status/sensorCommon";
+        String path = "/api/status/sensorCommon";
         List<NorthError> errors = new ArrayList<>();
         Map<String, List<IotSensor>> productDeviceMap = getAllDevice();
         List<IotSensor> sensorList = new ArrayList<>();
@@ -105,7 +106,7 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
             iotSensor.setUpdateTime(LocalDateTime.now());
             iotSensor.setDeviceName(status.getDeviceName());
             iotSensor.setDeviceType(status.getDeviceType());
-            iotSensor.setStateUpdateTime(LocalDateTime.now());
+            iotSensor.setStateUpdateTime(DateUtils.toLocalDateTime(status.getUpdateTime()));
             iotSensor.setInfos(dealInfoData(infoStr));
             final IotSensorLog iotSensorLog = new IotSensorLog();
             BeanUtils.copyProperties(iotSensor, iotSensorLog, "id");
@@ -175,10 +176,10 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
         return dto;
     }
 
-    private List<IotSensor> convertToDomain(List<SensorDto> sensorDtos, String msgId,List<Long> deletedDeviceIds) {
+    private List<IotSensor> convertToDomain(List<SensorDto> sensorDtos, String msgId, List<Long> deletedDeviceIds) {
         List<IotSensor> domains = new ArrayList<>();
         List<NorthError> errors = new ArrayList<>();
-        String path = "/api/{branchId}/data/sensorCommonList";
+        String path = "/api/data/sensorCommonList";
         Map<String, List<IotSensor>> productDeviceMap = getAllDevice();
         Set<String> uniqueSet = new HashSet<>();
         for (SensorDto sensorDto : sensorDtos) {
@@ -235,9 +236,9 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
             domain.setSource(1);
             domains.add(domain);
         }
-        if (errors.size() > 0) {
-            northErrorService.saveErrorData(errors);
-        }
+
+        northErrorService.saveErrorData(errors);
+
 
         productDeviceMap.keySet().stream().filter(k -> !uniqueSet.contains(k)).forEach(k -> productDeviceMap.get(k).forEach(d -> deletedDeviceIds.add(d.getId())));
 
@@ -274,7 +275,8 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
                 break;
             case "41885"://燃气报警器
                 type = CategoryDataEnum.GAS_ALARM.getId();
-            default:break;
+            default:
+                break;
         }
 
         return type;

+ 5 - 7
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDaysCheckServiceImpl.java

@@ -12,25 +12,22 @@ import com.xunmei.common.core.domain.iot.domain.IotDevice;
 import com.xunmei.common.core.domain.iot.domain.IotDvrChannel;
 import com.xunmei.common.core.domain.video.MediatorVideoDaysCheck;
 import com.xunmei.common.core.domain.video.MediatorVideoDaysCheckLog;
-import com.xunmei.common.core.domain.video.MediatorVideoIntegrityCheck;
-import com.xunmei.common.core.domain.video.MediatorVideoIntegrityCheckLog;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.mediator.api.mapper.VideoDaysCheckMapper;
 import com.xunmei.mediator.api.service.*;
-import com.xunmei.system.api.domain.north.NorthError;
-import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.mediator.domain.dto.videoDaysCheck.VideoDaysCheckDto;
-import com.xunmei.mediator.util.RedisUtil;
-import com.xunmei.system.api.RemoteDeviceService;
 import com.xunmei.system.api.RemoteOrgService;
-import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.domain.north.NorthError;
+import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -121,6 +118,7 @@ public class VideoDaysCheckServiceImpl extends ServiceImpl<VideoDaysCheckMapper,
         videoDaysCheck.setOrgId(org.getId());
         videoDaysCheck.setOrgName(org.getShortName());
         videoDaysCheck.setOrgPath(org.getPath());
+        videoDaysCheck.setEarliestVideoTime(LocalDateTime.parse(videoDaysCheckDto.getEarliestVideoTime(), DateTimeFormatter.ISO_DATE_TIME));
         if (ObjectUtil.isNotEmpty(videoDaysCheckDto.getEarliestVideoTime())) {
             String dateStr = videoDaysCheckDto.getEarliestVideoTime().replace("T", " ");
             videoDaysCheck.setEarliestVideoTime(DateUtils.toLocalDateTime(DateUtil.parse(dateStr, "yyyy-MM-dd HH:mm:ss")));