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

Merge branch 'V0.0.6-iot' of http://10.87.21.221:8000/jzyd_yyds/soc into V0.0.6-iot

jiawuxian 1 жил өмнө
parent
commit
a3af17f588
15 өөрчлөгдсөн 280 нэмэгдсэн , 315 устгасан
  1. 6 8
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotAlarmRuleController.java
  2. 12 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/alarm/IotAlarmRuleQueryDto.java
  3. 1 1
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotAlarmRuleService.java
  4. 1 1
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleServiceImpl.java
  5. 18 18
      soc-modules/soc-modules-iot/src/main/resources/mapper/IotSensorMapper.xml
  6. 5 3
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/DataController.java
  7. 9 9
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/ProtectionController.java
  8. 11 11
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/VideoDataController.java
  9. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/mapper/IotAlarmSubsystemMapper.java
  10. 7 35
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/EquipmentSyncService.java
  11. 115 128
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmSubSystemServiceImpl.java
  12. 1 2
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDeviceServiceImpl.java
  13. 77 84
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrChannelServiceImpl.java
  14. 10 8
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotSensorServiceImpl.java
  15. 5 7
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDaysCheckServiceImpl.java

+ 6 - 8
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotAlarmRuleController.java

@@ -3,6 +3,7 @@ package com.xunmei.iot.controller;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.iot.dto.alarm.IotAlarmRuleDto;
+import com.xunmei.iot.dto.alarm.IotAlarmRuleQueryDto;
 import com.xunmei.iot.service.IotAlarmRuleService;
 import com.xunmei.iot.vo.alarm.IotInitAlarmRuleVo;
 import io.swagger.annotations.ApiOperation;
@@ -43,15 +44,12 @@ public class IotAlarmRuleController {
     }
 
     @ApiOperation(value = "查询报警规则")
-    @GetMapping(value = "/getRules/{alarmType}/{pageIndex}/{pageSize}/{ruleName}")
-    public TableDataInfo<IotInitAlarmRuleVo> getRules(@PathVariable String alarmType,
-                                                      @PathVariable String ruleName,
-                                                      @PathVariable Integer pageIndex,
-                                                      @PathVariable Integer pageSize){
+    @PostMapping(value = "/getRules")
+    public TableDataInfo<IotInitAlarmRuleVo> getRules(@RequestBody IotAlarmRuleQueryDto args){
         try {
-            ruleName = ruleName.trim();
-            if(ruleName.equals("undefined")) ruleName = "";
-            TableDataInfo<IotInitAlarmRuleVo> alarmRuleData = iotAlarmRuleService.getAlarmRuleDatas(alarmType,ruleName,pageIndex,pageSize);
+//            ruleName = ruleName.trim();
+//            if(ruleName.equals("undefined")) ruleName = "";
+            TableDataInfo<IotInitAlarmRuleVo> alarmRuleData = iotAlarmRuleService.getAlarmRuleDatas(args.getRuleType(),args.getRuleName(),args.getPageNum(),args.getPageSize());
             return alarmRuleData;
         } catch (Exception e) {
             e.printStackTrace();

+ 12 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/alarm/IotAlarmRuleQueryDto.java

@@ -0,0 +1,12 @@
+package com.xunmei.iot.dto.alarm;
+
+import com.xunmei.common.core.web.domain.PageDto;
+import lombok.Data;
+
+@Data
+public class IotAlarmRuleQueryDto extends PageDto {
+
+    private String ruleName;
+
+    private String ruleType;
+}

+ 1 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotAlarmRuleService.java

@@ -35,7 +35,7 @@ public interface IotAlarmRuleService extends IService<IotAlarmRule> {
      * @param pageSize
      * @return {@link IotInitAlarmRuleVo}
      */
-    TableDataInfo<IotInitAlarmRuleVo> getAlarmRuleDatas(String alarmType, String ruleName, Integer pageIndex, Integer pageSize) throws Exception;
+    TableDataInfo<IotInitAlarmRuleVo> getAlarmRuleDatas(String alarmType, String ruleName, Long pageIndex, Long pageSize) throws Exception;
 
     /**
      *

+ 1 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotAlarmRuleServiceImpl.java

@@ -134,7 +134,7 @@ public class IotAlarmRuleServiceImpl extends ServiceImpl<IotAlarmRuleMapper, Iot
     }
 
     @Override
-    public TableDataInfo<IotInitAlarmRuleVo> getAlarmRuleDatas(String alarmType, String ruleName, Integer pageIndex, Integer pageSize) throws Exception {
+    public TableDataInfo<IotInitAlarmRuleVo> getAlarmRuleDatas(String alarmType, String ruleName, Long pageIndex, Long pageSize) throws Exception {
         LambdaQueryWrapper<IotAlarmRule> queryWrapper = new LambdaQueryWrapper<>();
         if(alarmType!=null && !alarmType.isEmpty())
         {

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

@@ -3,24 +3,24 @@
 <mapper namespace="com.xunmei.iot.mapper.IotCommonSensorMapper">
 
     <select id="selectPageData" resultType="com.xunmei.iot.vo.sensor.SensorPageVo">
-        select s.id, org_id, org_name, device_name, category_id, infos as info,device_code, update_time from iot_sensor s
-        <where>
-            <if test="request.orgId!= null">
-                and s.org_id=#{request.orgId}
-            </if>
-            <if test="request.orgPath!= null">
-                and s.org_path like CONCAT(#{request.orgPath}, '%')
-            </if>
-            <if test="request.deviceName != null and request.deviceName!= ''">
-                and s.device_name like CONCAT('%',#{request.deviceName},'%')
-            </if>
-            <if test="request.startTime!= null">
-                and s.state_update_time >=#{request.startTime}
-            </if>
-            <if test="request.endTime!= null">
-                and s.state_update_time <![CDATA[<=]]>  #{request.endTime}
-            </if>
-        </where>
+        select s.id, org_id, org_name, device_name, category_id, infos as info,device_code, update_time
+        from iot_sensor s
+        where s.deleted=0
+        <if test="request.orgId!= null">
+            and s.org_id=#{request.orgId}
+        </if>
+        <if test="request.orgPath!= null">
+            and s.org_path like CONCAT(#{request.orgPath}, '%')
+        </if>
+        <if test="request.deviceName != null and request.deviceName!= ''">
+            and s.device_name like CONCAT('%',#{request.deviceName},'%')
+        </if>
+        <if test="request.startTime!= null">
+            and s.state_update_time >=#{request.startTime}
+        </if>
+        <if test="request.endTime!= null">
+            and s.state_update_time <![CDATA[<=]]>  #{request.endTime}
+        </if>
     </select>
 
     <select id="selectSensorLogDataPage" resultType="com.xunmei.iot.vo.sensor.SensorPageVo">

+ 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));

+ 9 - 9
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/ProtectionController.java

@@ -33,11 +33,11 @@ public class ProtectionController {
     @Resource
     private IotAlarmDefenceAreaService defenceAreService;
 
-    @ApiOperation("报警主机子系统及防区信息同步")
+    @ApiOperation(value = "报警主机子系统及防区信息同步")
     @PostMapping({"/api/data/defenceareaList"})
     public ReceiveErrorDto defenceareaList(String msgId, @RequestBody DataPageDto<DefenceAreaDto> request) {
         rabbitMsgIdService.sendMsgId(msgId, "/data/defenceareaList", "报警主机子系统及防区信息同步");
-        LogUtils.BASE_INFO_DEFENCEAREA.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "报警主机子系统及防区信息同步:/api/data/defenceareaList", msgId, JSONArray.toJSONString(request));
+        LogUtils.BASE_INFO_DEFENCEAREA.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "报警主机子系统及防区信息同步:/api/data/defenceareaList", msgId, JSONArray.toJSONString(request));
         ReceiveErrorDto errorDto = ReceiveErrorDto.success();
         try {
             try {
@@ -46,11 +46,11 @@ public class ProtectionController {
                 e.printStackTrace();
                 LogUtils.BASE_INFO_DEFENCEAREA.error("保存失败,{}", e);
             }
-            LogUtils.BASE_INFO_DEFENCEAREA.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "报警主机子系统及防区信息同步:/api/data/defenceareaList", msgId, JSON.toJSONString(errorDto));
+            LogUtils.BASE_INFO_DEFENCEAREA.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "报警主机子系统及防区信息同步:/api/data/defenceareaList", msgId, JSON.toJSONString(errorDto));
             return errorDto;
         } catch (Exception e) {
             e.printStackTrace();
-            LogUtils.BASE_INFO_DEFENCEAREA.info("【北向接口-{}】【branchId:{}】【msgId:{}】【异常原因:{}】", "报警主机子系统及防区信息同步:/api/data/defenceareaList", msgId, e.getMessage());
+            LogUtils.BASE_INFO_DEFENCEAREA.info("【北向接口-{}】【msgId:{}】【异常原因:{}】", "报警主机子系统及防区信息同步:/api/data/defenceareaList", msgId, e.getMessage());
             return ReceiveErrorDto.error("数据处理异常");
         }
     }
@@ -67,7 +67,7 @@ public class ProtectionController {
     @PostMapping({"/api/status/defencearea"})
     ReceiveErrorDto info(String msgId, @RequestBody ProtectionEditDto protectionEditDto) {
         rabbitMsgIdService.sendMsgId(msgId, "/status/defencearea", "布撤防数据");
-        LogUtils.STATUS_INFO_DEFENCEAREA.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "接收布防数据:/api/status/defencearea", msgId, JSON.toJSONString(protectionEditDto));
+        LogUtils.STATUS_INFO_DEFENCEAREA.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "接收布防数据:/api/status/defencearea", msgId, JSON.toJSONString(protectionEditDto));
         ReceiveErrorDto errorDto = ReceiveErrorDto.success();
         try {
             errorDto = this.protectionService.saveData(protectionEditDto, msgId);
@@ -75,20 +75,20 @@ public class ProtectionController {
             e.printStackTrace();
             LogUtils.STATUS_INFO_DEFENCEAREA.error("保存错误,{}", e);
         }
-        LogUtils.STATUS_INFO_DEFENCEAREA.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "接收布防数据:/api/status/defencearea", msgId, JSON.toJSONString(errorDto));
+        LogUtils.STATUS_INFO_DEFENCEAREA.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "接收布防数据:/api/status/defencearea", msgId, JSON.toJSONString(errorDto));
         return errorDto;
     }
 
-    @ApiOperation("接收防区传感器报警信息")
+    @ApiOperation(value = "接收防区传感器报警信息")
     @PostMapping({"/api/status/sensor"})
     public ReceiveErrorDto sensor(String msgId, @RequestBody SensorDataDto request) {
         rabbitMsgIdService.sendMsgId(msgId, "/status/sensor", "接收防区传感器报警信息");
-        LogUtils.STATUS_INFO_STATUS_SENSOR.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "接收防区传感器报警信息:/api/status/sensor", msgId, JSON.toJSONString(request));
+        LogUtils.STATUS_INFO_STATUS_SENSOR.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "接收防区传感器报警信息:/api/status/sensor", msgId, JSON.toJSONString(request));
         ReceiveErrorDto errorDto = ReceiveErrorDto.success();
         try {
             errorDto = this.defenceAreService.saveData(msgId, request);
         } catch (Exception e) {
-            LogUtils.STATUS_INFO_DEFENCEAREA.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "接收防区传感器报警信息:/api/status/sensor", msgId, JSON.toJSONString(errorDto));
+            LogUtils.STATUS_INFO_DEFENCEAREA.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "接收防区传感器报警信息:/api/status/sensor", msgId, JSON.toJSONString(errorDto));
             throw new RuntimeException(e);
         }
         return errorDto;

+ 11 - 11
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/VideoDataController.java

@@ -44,7 +44,7 @@ public class VideoDataController {
     public ReceiveErrorDto complete( String msgId, @RequestBody VideoIntegrityCheckDto videoIntegrityCheckDto) {
         rabbitMsgIdService.sendMsgId(msgId,"/video/complete","录像完整性检查");
 
-        LogUtils.STATUS_INFO_VIDEO_COMPLETE.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "录像完整性检查:/api/video/complete", msgId, JSONArray.toJSONString(videoIntegrityCheckDto));
+        LogUtils.STATUS_INFO_VIDEO_COMPLETE.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "录像完整性检查:/api/video/complete", msgId, JSONArray.toJSONString(videoIntegrityCheckDto));
         ReceiveErrorDto result = ReceiveErrorDto.success();
         try{
             result = this.videoIntegrityCheckService.saveData(videoIntegrityCheckDto, msgId);
@@ -52,7 +52,7 @@ public class VideoDataController {
             e.printStackTrace();
             LogUtils.STATUS_INFO_VIDEO_COMPLETE.error("保存失败,{}",e);
         }
-        LogUtils.STATUS_INFO_VIDEO_COMPLETE.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "录像完整性检查:/api/video/complete", msgId, JSONArray.toJSONString(result));
+        LogUtils.STATUS_INFO_VIDEO_COMPLETE.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "录像完整性检查:/api/video/complete", msgId, JSONArray.toJSONString(result));
         return result;
     }
 
@@ -68,7 +68,7 @@ public class VideoDataController {
     @PostMapping({"/api/video/daysInfo"})
     public ReceiveErrorDto daysInfo( String msgId, @RequestBody VideoDaysCheckDto videoDaysCheckDto) {
         rabbitMsgIdService.sendMsgId(msgId,"/video/daysInfo","录像机天数检查");
-        LogUtils.STATUS_INFO_VIDEO_DAYS.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "录像机天数检查:/api/video/daysInfo", msgId, JSONArray.toJSONString(videoDaysCheckDto));
+        LogUtils.STATUS_INFO_VIDEO_DAYS.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "录像机天数检查:/api/video/daysInfo", msgId, JSONArray.toJSONString(videoDaysCheckDto));
         ReceiveErrorDto errorDto = ReceiveErrorDto.success();
         try {
             errorDto = this.videoDaysCheckService.saveData(videoDaysCheckDto, msgId);
@@ -76,7 +76,7 @@ public class VideoDataController {
             e.printStackTrace();
             LogUtils.STATUS_INFO_VIDEO_DAYS.error("保存失败,{}",e);
         }
-        LogUtils.STATUS_INFO_VIDEO_DAYS.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "录像机天数检查:/api/video/daysInfo", msgId, JSONArray.toJSONString(errorDto));
+        LogUtils.STATUS_INFO_VIDEO_DAYS.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "录像机天数检查:/api/video/daysInfo", msgId, JSONArray.toJSONString(errorDto));
         return errorDto;
     }
 
@@ -85,11 +85,11 @@ public class VideoDataController {
     @PostMapping({"/api/video/diagnosis"})
     public ReceiveErrorDto plan( String msgId, @RequestBody VideoDiagnosisDto videoDiagnosisDto) {
         rabbitMsgIdService.sendMsgId(msgId,"/video/diagnosis","视频质量诊断结果");
-        LogUtils.STATUS_INFO_VIDEO_DIAGNOSIS.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "视频质量诊断结果:/api/video/diagnosis", msgId, JSONArray.toJSONString(videoDiagnosisDto));
+        LogUtils.STATUS_INFO_VIDEO_DIAGNOSIS.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "视频质量诊断结果:/api/video/diagnosis", msgId, JSONArray.toJSONString(videoDiagnosisDto));
         ReceiveErrorDto result = ReceiveErrorDto.success();
         if (ObjectUtil.isEmpty(videoDiagnosisDto.getOrganizationGuid())) {
             result = ReceiveErrorDto.error("organizationGuid  为空");
-            LogUtils.STATUS_INFO_VIDEO_DIAGNOSIS.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "视频质量诊断结果:/api/video/diagnosis", msgId, JSONArray.toJSONString(result));
+            LogUtils.STATUS_INFO_VIDEO_DIAGNOSIS.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "视频质量诊断结果:/api/video/diagnosis", msgId, JSONArray.toJSONString(result));
             return result;
         }
         try{
@@ -98,7 +98,7 @@ public class VideoDataController {
             e.printStackTrace();
             LogUtils.STATUS_INFO_VIDEO_DIAGNOSIS.error("保存失败,{}",e);
         }
-        LogUtils.STATUS_INFO_VIDEO_DIAGNOSIS.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "视频质量诊断结果:/api/video/diagnosis", msgId, JSONArray.toJSONString(result));
+        LogUtils.STATUS_INFO_VIDEO_DIAGNOSIS.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "视频质量诊断结果:/api/video/diagnosis", msgId, JSONArray.toJSONString(result));
         return result;
     }
 
@@ -116,7 +116,7 @@ public class VideoDataController {
     @PostMapping({"/api/status/disks"})
     ReceiveErrorDto disks( String msgId, @RequestBody VideoRecorderHardDiskDetectionEditDto videoRecorderHardDiskDetectionEditDto) {
         rabbitMsgIdService.sendMsgId(msgId, "/status/disks", "录像机硬盘检测");
-        LogUtils.STATUS_INFO_DISKS.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "录像机硬盘检测:/api/status/disks", msgId, JSON.toJSONString(videoRecorderHardDiskDetectionEditDto));
+        LogUtils.STATUS_INFO_DISKS.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "录像机硬盘检测:/api/status/disks", msgId, JSON.toJSONString(videoRecorderHardDiskDetectionEditDto));
         ReceiveErrorDto result = ReceiveErrorDto.success();
         try {
             result = this.videoRecorderHardDiskDetectionService.saveData(videoRecorderHardDiskDetectionEditDto, msgId);
@@ -124,7 +124,7 @@ public class VideoDataController {
             e.printStackTrace();
             LogUtils.STATUS_INFO_DISKS.error("保存失败,{}", e);
         }
-        LogUtils.STATUS_INFO_DISKS.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "录像机硬盘检测:/api/status/disks", msgId, JSON.toJSONString(result));
+        LogUtils.STATUS_INFO_DISKS.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "录像机硬盘检测:/api/status/disks", msgId, JSON.toJSONString(result));
         return result;
     }
 
@@ -142,7 +142,7 @@ public class VideoDataController {
     @PostMapping({"/api/data/dvrDiskList"})
     ReceiveErrorDto disksList( String msgId, @RequestBody DataPageDto<DvrDiskPageDto> dataPageDto) {
         rabbitMsgIdService.sendMsgId(msgId, "/api/data/dvrDiskList", "DVR硬盘空间信息同步");
-        LogUtils.BASE_INFO_DVR_DISK.info("【北向接口-{}】【branchId:{}】【msgId:{}】【接收参数:{}】", "DVR硬盘空间信息同步:/api/data/dvrDiskList", msgId, JSON.toJSONString(dataPageDto));
+        LogUtils.BASE_INFO_DVR_DISK.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "DVR硬盘空间信息同步:/api/data/dvrDiskList", msgId, JSON.toJSONString(dataPageDto));
         ReceiveErrorDto result = ReceiveErrorDto.success();
         try {
             result = this.dvrDiskService.saveData(dataPageDto, msgId);
@@ -150,7 +150,7 @@ public class VideoDataController {
             e.printStackTrace();
             LogUtils.BASE_INFO_DVR_DISK.error("保存失败,{}", e);
         }
-        LogUtils.BASE_INFO_DVR_DISK.info("【北向接口-{}】【branchId:{}】【msgId:{}】【返回参数:{}】", "DVR硬盘空间信息同步:/api/data/dvrDiskList", msgId, JSON.toJSONString(result));
+        LogUtils.BASE_INFO_DVR_DISK.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "DVR硬盘空间信息同步:/api/data/dvrDiskList", msgId, JSON.toJSONString(result));
         return result;
     }
 }

+ 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();

+ 7 - 35
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/EquipmentSyncService.java

@@ -65,7 +65,7 @@ public class EquipmentSyncService {
      * @param
      */
     @Transactional(rollbackFor = Exception.class)
-    public void saveDeviceData( List<DeviceDto> pages,String msgId) {
+    public void saveDeviceData(List<DeviceDto> pages, String msgId) {
 
         String key = "base_info_equipment_" + DateUtil.format(new Date(), "yyyy-MM-dd");
         /**
@@ -73,18 +73,11 @@ public class EquipmentSyncService {
          * 导致第一次执行正常,第二次执行报错。故添加一个判断限制在10分钟内有多个请求
          */
         Boolean isExist = stringRedisTemplate.hasKey(key);
-        if (Boolean.FALSE.equals(isExist)) {
-            this.stringRedisTemplate.opsForValue().set(key, key);
-            this.stringRedisTemplate.expire(key, 10, TimeUnit.MINUTES);
-        } else {
+        if (Boolean.TRUE.equals(isExist)) {
             return;
         }
-
-       /* Map<String, Brand> brands = new HashMap<>();
-        List<Brand> bds = brandDao.list();
-        for (Brand bd : bds) {
-            brands.put(bd.getName(), bd);
-        }*/
+        this.stringRedisTemplate.opsForValue().set(key, key);
+        this.stringRedisTemplate.expire(key, 10, TimeUnit.MINUTES);
 
         /**
          * 获取所有传递过来的数据
@@ -97,7 +90,7 @@ public class EquipmentSyncService {
         Map<String, MediatorCategory> categorys = new HashMap<>();
         List<IotDevice> olds = new ArrayList();
         List<IotDevice> list = new ArrayList<>();
-        Map<String, List<IotDevice>> rel = analysisDeviceList(pages, orgs, categorys,msgId);
+        Map<String, List<IotDevice>> rel = analysisDeviceList(pages, orgs, categorys, msgId);
         olds.addAll(rel.get("olds"));
         list.addAll(rel.get("list"));
         //第一步逻辑删除数据,逻辑删除
@@ -114,30 +107,15 @@ public class EquipmentSyncService {
             this.iIotDeviceService.batchInsertDevice(list);
         }
         this.northStatisticsSyncService.saveOrUpdateBaseCountByDataType(DataType.deviceCount.getIndex(), list.size() + olds.size(), true);
-
-
-    }
-
-
-    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
-    public void deleteChannel(String equipmentId, Long orgId, MediatorCategory category) {
-     /*   UpdateWrapper<SysDevice> uw = new UpdateWrapper<>();
-        uw.set("deleted", 1);
-        uw.lambda().eq(SysDevice::getHostCode, equipmentId);
-        uw.lambda().eq(SysDevice::getOrgId, orgId);
-        uw.lambda().eq(SysDevice::getCategoryId, category.getId());
-        deviceService.update(uw);*/
-        // productDeviceService.updateDeviceData(equipmentId,orgId,category.getId(),1)
     }
 
-
     /**
      * 解析每一页的数据
      *
      * @param
      * @return
      */
-    private Map<String, List<IotDevice>> analysisDeviceList(List<DeviceDto> dtos, Map<String, Map<String, Object>> orgs, Map<String, MediatorCategory> categorys,String msgId) {
+    private Map<String, List<IotDevice>> analysisDeviceList(List<DeviceDto> dtos, Map<String, Map<String, Object>> orgs, Map<String, MediatorCategory> categorys, String msgId) {
         Map<String, List<IotDevice>> rel = new HashMap<>();
 
         /**
@@ -228,14 +206,8 @@ public class EquipmentSyncService {
             } else {
                 list.add(device);
             }
-
-
         }
-
-        if (errors.size() > 0) {
-            northErrorService.saveErrorData(errors);
-        }
-
+        northErrorService.saveErrorData(errors);
         rel.put("olds", olds);
         rel.put("list", list);
 

+ 115 - 128
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) {
@@ -283,134 +285,123 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
         return ReceiveErrorDto.success();
     }
 
-    public ReceiveErrorDto saveAndUpdate(List<DefenceAreaDto> defenceareaList, String msgId) {
+    public void saveAndUpdate(List<DefenceAreaDto> defenceareaList, String msgId) {
         if (CollectionUtils.isEmpty(defenceareaList)) {
-            return ReceiveErrorDto.error("报警主机子系统及防区信息为空");
+            ReceiveErrorDto.error("报警主机子系统及防区信息为空");
+            return;
         }
-        List<NorthError> errors = new ArrayList<>();
-        List<IotAlarmSubsystem> protectionList = new ArrayList<>();
-        List<IotAlarmDefenceArea> sensorList = new ArrayList<>();
-        List<IotAlarmSubsystem> deviceList = new ArrayList<>();
-        //获取机构列表
-        final List<SysOrgVO> orgList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
-        //获取category列表
-        List<MediatorCategory> categorys = categoryService.list();
         //查询报警主机主机设备列表
         List<IotDevice> devices = iotDeviceService.findByCategory(CategoryDataEnum.ALARM_HOST_DEVICE.getId());
-        checkParam(defenceareaList, msgId, errors, orgList, categorys, devices, deviceList, protectionList, sensorList);
-        return ReceiveErrorDto.success();
+        checkParam(defenceareaList, msgId, devices);
     }
 
-    private void checkParam(List<DefenceAreaDto> defenceareaList, String msgId, List<NorthError> errors, List<SysOrgVO> orgList, List<MediatorCategory> categorys, List<IotDevice> devices, List<IotAlarmSubsystem> deviceList, List<IotAlarmSubsystem> protectionList, List<IotAlarmDefenceArea> sensorList) {
+    private void checkParam(List<DefenceAreaDto> defenceareaList, String msgId, List<IotDevice> devices) {
+        //获取category列表
+        List<MediatorCategory> categorys = categoryService.list();
+        final List<SysOrgVO> orgList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
+        List<NorthError> errors = new ArrayList<>();
+        List<IotAlarmDefenceArea> sensorList = new ArrayList<>();
+        List<IotAlarmSubsystem> protectionList = new ArrayList<>();
         NorthError error = null;
         for (DefenceAreaDto dto : defenceareaList) {
-            SysOrgVO org = null;
+            SysOrgVO org;
             if (StringUtils.isEmpty(dto.getOrganizationGuid())) {
-                error = new NorthError(msgId, "/api/data/defenceareaList"
-                        , dto, "参数非法:未传organizationGuid");
+                error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:未传organizationGuid");
                 errors.add(error);
                 continue;
-            } else {
-                List<SysOrgVO> orgs = orgList.stream().filter(r -> r.getGuid().equals(dto.getOrganizationGuid())).collect(Collectors.toList()); //orgDao.findByGuid(dto.getOrganizationGuid());
-                if (orgs.size() == 0) {
-                    error = new NorthError(msgId, "/api/data/defenceareaList"
-                            , dto, "orgGUID:" + dto.getOrganizationGuid() + "不正确");
-                    errors.add(error);
-                    continue;
-                } else {
-                    org = orgs.get(0);
-                }
             }
-
+            final Optional<SysOrgVO> optional = orgList.stream().filter(r -> r.getGuid().equals(dto.getOrganizationGuid())).findFirst();//orgDao.findByGuid(dto.getOrganizationGuid());
+            if (!optional.isPresent()) {
+                error = new NorthError(msgId, "/api/data/defenceareaList", dto, "orgGUID:" + dto.getOrganizationGuid() + "不正确");
+                errors.add(error);
+                continue;
+            }
+            org = optional.get();
             if (StringUtils.isEmpty(dto.getDefenceareaCode())) {
-                error = new NorthError(msgId, "/api/data/defenceareaList"
-                        , dto, "参数非法:未传defenceareaCode");
+                error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:未传defenceareaCode");
                 errors.add(error);
                 continue;
             }
-
             if (StringUtils.isEmpty(dto.getDefenceareaName())) {
-                error = new NorthError(msgId, "/api/data/defenceareaList"
-                        , dto, "参数非法:未传defenceareaName");
+                error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:未传defenceareaName");
                 errors.add(error);
                 continue;
             }
-
             if (StringUtils.isEmpty(dto.getAlarmHostCode())) {
-                error = new NorthError(msgId, "/api/data/defenceareaList"
-                        , dto, "参数非法:未传alarmHostCode");
+                error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:未传alarmHostCode");
                 errors.add(error);
                 continue;
             }
 
-            if (dto.getSensorArray() == null || dto.getSensorArray().size() == 0) {
+            /*if (dto.getSensorArray() == null || dto.getSensorArray().size() == 0) {
                 error = new NorthError(msgId, "/api/data/defenceareaList"
                         , dto, "参数非法:未传sensorArray");
                 errors.add(error);
                 //continue;
-            } else {
-                List<SensorDto> sensorArray = dto.getSensorArray();
-
-                for (SensorDto sensorDto : sensorArray) {
-                    if (StringUtils.isEmpty(sensorDto.getInputName())) {
-                        error = new NorthError(msgId, "/api/data/defenceareaList"
-                                , dto, "参数非法:未传InputName");
-                        errors.add(error);
-                        continue;
-                    }
-                    if (sensorDto.getInputIndex() == null) {
-                        error = new NorthError(msgId, "/api/data/defenceareaList"
-                                , dto, "参数非法:未传InputIndex");
-                        errors.add(error);
-                        continue;
-                    }
-                    if (StringUtils.isEmpty(sensorDto.getModuleAddress())) {
-                        error = new NorthError(msgId, "/api/data/defenceareaList"
-                                , dto, "参数非法:未传ModuleAddress");
-                        errors.add(error);
-                        continue;
-                    }
-                    if (StringUtils.isEmpty(sensorDto.getSensorType())) {
-                        error = new NorthError(msgId, "/api/data/defenceareaList"
-                                , dto, "参数非法:未传SensorType");
-                        errors.add(error);
-                        continue;
-                    }
-                    if (StringUtils.isEmpty(sensorDto.getSensorTypeName())) {
-                        error = new NorthError(msgId, "/api/data/defenceareaList"
-                                , dto, "参数非法:未传SensorTypeName");
-                        errors.add(error);
-                    }
-
-                    List<MediatorCategory> categorysa = categorys.stream().filter(r -> r.getName().equals(sensorDto.getSensorTypeName())).collect(Collectors.toList());//categoryDao.getOne(qw);
-                    if (categorysa.size() == 0) {
-                        error = new NorthError(msgId, "/api/data/defenceareaList"
-                                , dto, "参数非法:没有找到设备类型,默认归到其他类型中");
-                        errors.add(error);
-                    }
+            } 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");
+                    errors.add(error);
+                    continue;
+                }
+                if (sensorDto.getInputIndex() == null) {
+                    error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:未传InputIndex");
+                    errors.add(error);
+                    continue;
+                }
+                if (StringUtils.isEmpty(sensorDto.getModuleAddress())) {
+                    error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:未传ModuleAddress");
+                    errors.add(error);
+                    continue;
+                }
+                if (StringUtils.isEmpty(sensorDto.getSensorType())) {
+                    error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:未传SensorType");
+                    errors.add(error);
+                    continue;
+                }
+                if (StringUtils.isEmpty(sensorDto.getSensorTypeName())) {
+                    error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:未传SensorTypeName");
+                    errors.add(error);
+                    continue;
+                }
+                List<MediatorCategory> categorysa = categorys.stream().filter(r -> r.getName().equals(sensorDto.getSensorTypeName())).collect(Collectors.toList());//categoryDao.getOne(qw);
+                if (categorysa.size() == 0) {
+                    error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:没有找到设备类型,默认归到其他类型中");
+                    errors.add(error);
                 }
             }
-            SysOrgVO finalOrg = org;
-            List<IotDevice> devicesa = devices.stream().filter(r -> r.getEquipmentCode().equals(dto.getAlarmHostCode()) && r.getOrgId().equals(finalOrg.getId())).collect(Collectors.toList());
+            // }
+            List<IotDevice> devicesa = devices.stream().filter(r -> r.getEquipmentCode().equals(dto.getAlarmHostCode()) && r.getOrgId().equals(org.getId())).collect(Collectors.toList());
             if (devicesa.size() == 0) {
-                error = new NorthError(msgId, "/api/data/defenceareaList"
-                        , dto, "参数非法:没有找到报警主机");
+                error = new NorthError(msgId, "/api/data/defenceareaList", dto, "参数非法:没有找到报警主机");
                 errors.add(error);
                 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");
             if (ObjectUtil.isNotEmpty(list)) {
                 sensorList.addAll(list);
             }
 
         }
-        defenceAreaMapper.delete(new LambdaQueryWrapper<>());
+
         northErrorService.saveErrorData(errors);
-        baseMapper.updateAllDelete();
-        this.saveOrUpdateBatch(protectionList);
-        defenceAreService.saveOrUpdateBatch(sensorList);
+        subsystemMapper.updateAllDelete();
+        if (ObjectUtil.isNotEmpty(protectionList)) {
+            this.saveOrUpdateBatch(protectionList);
+        }
+        defenceAreaMapper.delete(new LambdaQueryWrapper<>());
+        if (ObjectUtil.isNotEmpty(sensorList)) {
+            defenceAreService.saveOrUpdateBatch(sensorList);
+        }
         this.northStatisticsSyncService.saveOrUpdateBaseCountByDataType(DataType.protectionCount.getIndex(), defenceareaList.size(), true);
     }
 
@@ -436,53 +427,49 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
         protection.setOrgName(org.getShortName());
         protection.setOrgPath(org.getPath());
         map.put("protection", protection);
+        saveProtectionLog(protection);
 
-
-        List<SensorDto> sensorArray = dto.getSensorArray();
-        if (sensorArray != null && sensorArray.size() > 0) {
-            List<IotAlarmDefenceArea> list = new ArrayList<>();
-            List<IotAlarmDefenceArea> list1 = new ArrayList<>();
-            List<IotAlarmDefenceArea> sensorList = defenceAreService.findBySubSystemCode(dto.getDefenceareaCode());
-            for (SensorDto sensorDto : sensorArray) {
-                IotAlarmDefenceArea sensor = new IotAlarmDefenceArea();
-                sensor.setAlarmHostCode(dto.getAlarmHostCode());
-                sensor.setSubSystemCode(dto.getDefenceareaCode());
-                sensor.setDefenceAreaName(dto.getDefenceareaName());
-                sensor.setOrgId(org.getId());
-                sensor.setOrgName(org.getShortName());
-                sensor.setOrgPath(org.getPath());
-                sensor.setOrganizationGuid(dto.getOrganizationGuid());
-                sensor.setDefenceAreaIndex(sensorDto.getInputIndex());
-                sensor.setDefenceAreaName(sensorDto.getInputName());
-                //sensor.setModuleAddress(sensorDto.getModuleAddress());
-                sensor.setSensorType(sensorDto.getSensorType());
-                sensor.setSensorTypeName(sensorDto.getSensorTypeName());
+        if (ObjectUtil.isEmpty(dto.getSensorArray())) {
+            return map;
+        }
+        List<IotAlarmDefenceArea> list = new ArrayList<>();
+        List<IotAlarmDefenceArea> sensorList = defenceAreService.findBySubSystemCode(dto.getDefenceareaCode());
+        for (SensorDto sensorDto : dto.getSensorArray()) {
+            IotAlarmDefenceArea sensor = new IotAlarmDefenceArea();
+            sensor.setAlarmHostCode(dto.getAlarmHostCode());
+            sensor.setSubSystemCode(dto.getDefenceareaCode());
+            sensor.setDefenceAreaName(dto.getDefenceareaName());
+            sensor.setOrgId(org.getId());
+            sensor.setOrgName(org.getShortName());
+            sensor.setOrgPath(org.getPath());
+            sensor.setOrganizationGuid(dto.getOrganizationGuid());
+            sensor.setDefenceAreaIndex(sensorDto.getInputIndex());
+            sensor.setDefenceAreaName(sensorDto.getInputName());
+            //sensor.setModuleAddress(sensorDto.getModuleAddress());
+            sensor.setSensorType(sensorDto.getSensorType());
+            sensor.setSensorTypeName(sensorDto.getSensorTypeName());
+            sensor.setDeleted(0);
+            final Optional<IotAlarmDefenceArea> optional = sensorList.stream()
+                    .filter(r -> r.getOrgId().equals(org.getId()))
+                    .filter(r -> r.getAlarmHostCode().equals(dto.getAlarmHostCode()))
+                    .filter(r -> r.getSubSystemCode().equals(dto.getDefenceareaCode()))
+                    .filter(r -> r.getDefenceAreaIndex().equals(sensorDto.getInputIndex()))
+                    .max(Comparator.comparing(IotAlarmDefenceArea::getUpdateTime));
+            if (optional.isPresent()) {
+                final IotAlarmDefenceArea iotDefenceAre = optional.get();
+                BeanHelper.copyProperties(iotDefenceAre, sensor);
+                iotDefenceAre.setUpdateTime(LocalDateTime.now());
+                list.add(iotDefenceAre);
+            } else {
+                sensor.setId(IDHelper.id());
+                sensor.setState("unKnown");
+                sensor.setStateText("未知");
+                sensor.setCreateTime(LocalDateTime.now());
                 sensor.setDeleted(0);
-                final Optional<IotAlarmDefenceArea> optional = sensorList.stream()
-                        .filter(r -> r.getOrgId().equals(org.getId()))
-                        .filter(r -> r.getAlarmHostCode().equals(dto.getAlarmHostCode()))
-                        .filter(r -> r.getSubSystemCode().equals(dto.getDefenceareaCode()))
-                        .filter(r -> r.getDefenceAreaIndex().equals(sensorDto.getInputIndex()))
-                        .max(Comparator.comparing(IotAlarmDefenceArea::getUpdateTime));
-                if (optional.isPresent()) {
-                    final IotAlarmDefenceArea iotDefenceAre = optional.get();
-                    BeanHelper.copyProperties(iotDefenceAre, sensor);
-                    iotDefenceAre.setUpdateTime(LocalDateTime.now());
-                    list.add(iotDefenceAre);
-                } else {
-                    sensor.setId(IDHelper.id());
-                    sensor.setState("unKnown");
-                    sensor.setStateText("未知");
-                    sensor.setCreateTime(LocalDateTime.now());
-                    sensor.setDeleted(0);
-                    list.add(sensor);
-                }
+                list.add(sensor);
             }
-
-            map.put("sensorList", list);
-            map.put("deviceList", list1);
         }
-
+        map.put("sensorList", list);
         return map;
     }
 }

+ 1 - 2
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDeviceServiceImpl.java

@@ -95,8 +95,7 @@ public class IotDeviceServiceImpl extends ServiceImpl<IotDeviceMapper, IotDevice
         if (totalPage == null) {
             return ReceiveErrorDto.error("totalPage参数非法");
         }
-
-        if (org.apache.commons.collections4.CollectionUtils.isEmpty(deviceReceivePageDto.getData())) {
+        if (ObjectUtil.isEmpty(deviceReceivePageDto.getData())) {
             return ReceiveErrorDto.error("设备信息数据为空");
         }
         final List<DeviceDto> list = RedisCheckRepeatDataUtil.isCompleted(deviceReceivePageDto, DeviceDto.class);

+ 77 - 84
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrChannelServiceImpl.java

@@ -70,107 +70,100 @@ public class IotDvrChannelServiceImpl extends ServiceImpl<IotDvrChannelMapper, I
 
     @Override
     public ReceiveErrorDto saveChannel(List<DeviceDto> deviceDtoList, String msgId) {
-        if (org.apache.commons.collections4.CollectionUtils.isEmpty(deviceDtoList)) {
+        if (ObjectUtil.isEmpty(deviceDtoList)) {
             return ReceiveErrorDto.error("通道数据为空");
-        } else {
-            MediatorCategory category = categoryService.findCategoryByCodeAndParentId("18", -1L);
-
-            DeviceDto deviceDto;
-            List<NorthError> errors = new ArrayList<>();
-            List<IotDvrChannel> list = new ArrayList<>();
-            String equipmentId = null;
-
-            deviceDto = deviceDtoList.get(0);
-            equipmentId = deviceDto.getEquipmentCode();
-            final SysOrg org = orgService.findByCode(deviceDto.getOrganizationGuid(), SecurityConstants.INNER);
-            String UK = UUID.randomUUID().toString();
-
-            if (org != null) {
-                //制作一个随时变化的key
-                Boolean flag = redisTemplate.hasKey(CacheConstants.CHANNEL_KEY);
-                if (!flag) {
-                    //判断是否存在这个key
-                    this.redisTemplate.opsForValue().set(CacheConstants.CHANNEL_KEY, UK);
-                } else {
-                    UK = (String) this.redisTemplate.opsForValue().get(CacheConstants.CHANNEL_KEY);
-                }
-                //根据变化的key,缓存数据,供定时任务使用
-                EquipmentOrgVo eov = new EquipmentOrgVo();
-                eov.setEquipmentCode(equipmentId);
-                eov.setOrgId(org.getId());
-                redisTemplate.opsForList().rightPush(UK, eov);
-                redisTemplate.expire(UK, 1, TimeUnit.HOURS);
+        }
+        MediatorCategory category = categoryService.findCategoryByCodeAndParentId("18", -1L);
+
+        DeviceDto deviceDto;
+        List<NorthError> errors = new ArrayList<>();
+        List<IotDvrChannel> list = new ArrayList<>();
+        deviceDto = deviceDtoList.get(0);
+        final SysOrg org = orgService.findByCode(deviceDto.getOrganizationGuid(), SecurityConstants.INNER);
+        String UK = UUID.randomUUID().toString();
+        if (org != null) {
+            //制作一个随时变化的key
+            Boolean flag = redisTemplate.hasKey(CacheConstants.CHANNEL_KEY);
+            if (!flag) {
+                //判断是否存在这个key
+                this.redisTemplate.opsForValue().set(CacheConstants.CHANNEL_KEY, UK);
+            } else {
+                UK = (String) this.redisTemplate.opsForValue().get(CacheConstants.CHANNEL_KEY);
             }
+            //根据变化的key,缓存数据,供定时任务使用
+            EquipmentOrgVo eov = new EquipmentOrgVo();
+            eov.setEquipmentCode(deviceDto.getEquipmentCode());
+            eov.setOrgId(org.getId());
+            redisTemplate.opsForList().rightPush(UK, eov);
+            redisTemplate.expire(UK, 1, TimeUnit.HOURS);
+        }
 
-            for (int i = 0; i < deviceDtoList.size(); i++) {
-                deviceDto = deviceDtoList.get(i);
-                if (StringUtils.isEmpty(deviceDto.getEquipmentCode())) {
-                    NorthError error = new NorthError(msgId, "/data/channelList"
-                            , deviceDto, "equipmentCode 为空");
-                    errors.add(error);
-                    continue;
-                }
-
-                if (StringUtils.isEmpty(deviceDto.getOrganizationGuid())) {
-                    NorthError error = new NorthError(msgId, "/data/channelList"
-                            , deviceDto, "organizationGuid 为空");
-                    errors.add(error);
-                    continue;
-                }
+        for (int i = 0; i < deviceDtoList.size(); i++) {
+            deviceDto = deviceDtoList.get(i);
+            if (StringUtils.isEmpty(deviceDto.getEquipmentCode())) {
+                NorthError error = new NorthError(msgId, "/data/channelList"
+                        , deviceDto, "equipmentCode 为空");
+                errors.add(error);
+                continue;
+            }
 
-                if (StringUtils.isEmpty(deviceDto.getChannelCode())) {
-                    NorthError error = new NorthError(msgId, "/data/channelList"
-                            , deviceDto, "channelCode 为空");
-                    errors.add(error);
-                    continue;
-                }
+            if (StringUtils.isEmpty(deviceDto.getOrganizationGuid())) {
+                NorthError error = new NorthError(msgId, "/data/channelList"
+                        , deviceDto, "organizationGuid 为空");
+                errors.add(error);
+                continue;
+            }
 
-                if (StringUtils.isEmpty(deviceDto.getChannelName())) {
-                    NorthError error = new NorthError(msgId, "/data/channelList"
-                            , deviceDto, "channelName 为空");
-                    errors.add(error);
-                    continue;
-                }
+            if (StringUtils.isEmpty(deviceDto.getChannelCode())) {
+                NorthError error = new NorthError(msgId, "/data/channelList"
+                        , deviceDto, "channelCode 为空");
+                errors.add(error);
+                continue;
+            }
 
+            if (StringUtils.isEmpty(deviceDto.getChannelName())) {
+                NorthError error = new NorthError(msgId, "/data/channelList"
+                        , deviceDto, "channelName 为空");
+                errors.add(error);
+                continue;
+            }
 
-                if (org == null) {
-                    NorthError error = new NorthError(msgId, "/data/channelList"
-                            , deviceDto, "orgGUID:" + deviceDto.getOrganizationGuid() + " 不正确");
-                    errors.add(error);
-                    continue;
-                }
 
+            if (org == null) {
+                NorthError error = new NorthError(msgId, "/data/channelList"
+                        , deviceDto, "orgGUID:" + deviceDto.getOrganizationGuid() + " 不正确");
+                errors.add(error);
+                continue;
+            }
 
-                /**
-                 * 先不做数据处理,先缓存所有待处理的数据,然后每5分钟处理一次缓存数据
-                 */
 
+            /**
+             * 先不做数据处理,先缓存所有待处理的数据,然后每5分钟处理一次缓存数据
+             */
 
-                deviceDto.setOrg(org);
-                IotDevice host = iIotDeviceService.findByHostCode(deviceDto.getEquipmentCode(), org.getId());
-                if (host == null) {
-                    NorthError error = new NorthError(msgId, "/data/channelList"
-                            , deviceDto, "equipmentCode:" + deviceDto.getEquipmentCode() + "该主机code不存在");
-                    errors.add(error);
-                    continue;
-                }
 
-                IotDvrChannel device = getChannelDevice(deviceDto, category);
+            deviceDto.setOrg(org);
+            IotDevice host = iIotDeviceService.findByHostCode(deviceDto.getEquipmentCode(), org.getId());
+            if (host == null) {
+                NorthError error = new NorthError(msgId, "/data/channelList"
+                        , deviceDto, "equipmentCode:" + deviceDto.getEquipmentCode() + "该主机code不存在");
+                errors.add(error);
+                continue;
+            }
 
-                list.add(device);
+            IotDvrChannel device = getChannelDevice(deviceDto, category);
 
-            }
+            list.add(device);
 
-            if (list.size() > 0) {
-                redisTemplate.opsForList().rightPushAll(UK + CacheConstants.AFTER_DATA, list);
-                redisTemplate.expire(UK + CacheConstants.AFTER_DATA, 1, TimeUnit.HOURS);
-            }
-            if (errors.size() > 0) {
-                northErrorService.saveErrorData(errors);
-            }
+        }
 
-            return ReceiveErrorDto.success();
+        if (list.size() > 0) {
+            redisTemplate.opsForList().rightPushAll(UK + CacheConstants.AFTER_DATA, list);
+            redisTemplate.expire(UK + CacheConstants.AFTER_DATA, 1, TimeUnit.HOURS);
         }
+        northErrorService.saveErrorData(errors);
+
+        return ReceiveErrorDto.success();
     }
 
     private IotDvrChannel getChannelDevice(DeviceDto deviceDto, MediatorCategory category) {

+ 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")));