소스 검색

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

jiawuxian 1 년 전
부모
커밋
3743cae856
18개의 변경된 파일143개의 추가작업 그리고 56개의 파일을 삭제
  1. 4 1
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/enums/ElectricityMeterAttributes.java
  2. 11 0
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/MediatorCategoryMapper.java
  3. 45 16
      soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotCommonSensorServiceImpl.java
  4. 5 0
      soc-modules/soc-modules-iot/src/main/resources/mapper/MediatorCategoryMapper.xml
  5. 1 1
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/DataController.java
  6. 19 35
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/VideoDataController.java
  7. 3 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IotDvrDiskService.java
  8. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmDefenceAreaServiceImpl.java
  9. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmSubSystemServiceImpl.java
  10. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDeviceDetectionServiceImpl.java
  11. 1 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDeviceServiceImpl.java
  12. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrChannelServiceImpl.java
  13. 31 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrDiskServiceImpl.java
  14. 6 3
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrHardDiskDetectionServiceImpl.java
  15. 3 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotSensorServiceImpl.java
  16. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDaysCheckServiceImpl.java
  17. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDiagnosisRecordServiceImpl.java
  18. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoIntegrityCheckServiceImpl.java

+ 4 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/enums/ElectricityMeterAttributes.java

@@ -71,11 +71,14 @@ public enum ElectricityMeterAttributes {
     METER_ATTRIBUTES_48(16023001L ,"不平衡报警","METER_ATTRIBUTES_48",null,"{0:\"正常\",1:\"告警\"}"),
     METER_ATTRIBUTES_49(16020001L ,"温度预警","METER_ATTRIBUTES_49",null,"{0:\"正常\",1:\"告警\"}"),
 
+    //以下几个name字段不可变,依靠此name与北向上报数据中的比对
     METER_ATTRIBUTES_50(8074214277450756099L,"环境温度","temperature","℃",null),
     METER_ATTRIBUTES_51(8074214277450756097L,"环境湿度","humidity","%RH",null),
     METER_ATTRIBUTES_52(8070947354577793026L,"烟雾告警","SmokeSensorState",null,"{0:\"正常\",1:\"异常\"}"),
     METER_ATTRIBUTES_53(8123843190642397184L,"水浸告警","status",null,"{0:\"正常\",1:\"异常\"}"),
-    METER_ATTRIBUTES_54(8123843190642397184L,"红外告警","infrared_state",null,"{\"0\":\"正常\",\"1\":\"有人\"}"),
+    METER_ATTRIBUTES_54(8123843190642397184L,"红外告警","infrared_state",null,"{\"0\":\"正常\",\"1\":\"告警\"}"),
+    METER_ATTRIBUTES_55(8123843190642397184L,"可燃气体告警","infrared_state",null,"{\"0\":\"正常\",\"1\":\"告警\"}"),
+    METER_ATTRIBUTES_56(8123843190642397184L,"门磁开关状态","infrared_state",null,"{\"0\":\"开门\",\"1\":\"关门\"}"),
     ;
 
     private Long num;

+ 11 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/MediatorCategoryMapper.java

@@ -0,0 +1,11 @@
+package com.xunmei.iot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xunmei.common.core.domain.mediator.domain.MediatorCategory;
+
+/**
+ * @author jingyuanchao
+ * @date 2024/1/24 17:50
+ */
+public interface MediatorCategoryMapper extends BaseMapper<MediatorCategory> {
+}

+ 45 - 16
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotCommonSensorServiceImpl.java

@@ -3,13 +3,16 @@ package com.xunmei.iot.service.impl;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.iot.domain.IotSensor;
+import com.xunmei.common.core.domain.mediator.domain.MediatorCategory;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.iot.dto.sensor.SensorPageDto;
 import com.xunmei.iot.mapper.IotCommonSensorMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.iot.mapper.MediatorCategoryMapper;
 import com.xunmei.iot.service.IIotCommonSensorService;
 import com.xunmei.iot.vo.sensor.SensorPageVo;
 import com.xunmei.system.api.RemoteOrgService;
@@ -21,6 +24,7 @@ import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 /**
  * <p>
@@ -39,34 +43,23 @@ public class IotCommonSensorServiceImpl extends ServiceImpl<IotCommonSensorMappe
     @Resource
     private IotCommonSensorMapper sensorMapper;
 
+    @Resource
+    private MediatorCategoryMapper categoryMapper;
+
     @Override
     public TableDataInfo<SensorPageVo> selectSensorDataPage(SensorPageDto request) {
         dealPageParam(request);
 
         Page<SensorPageVo> page = sensorMapper.selectPageData(request.getPageRequest(), request);
+        final List<MediatorCategory> categoryList = categoryMapper.selectList(new LambdaQueryWrapper<>());
         for (SensorPageVo record : page.getRecords()) {
             final String info = record.getInfo();
             record.setInfo(dealInfoData(info));
+            dealCategoryName(record, categoryList);
         }
         return TableDataInfo.build(page);
     }
 
-    private String dealInfoData(String info) {
-        if (ObjectUtil.isEmpty(info)){
-            return StringUtil.EMPTY_STRING;
-        }
-        final List<Map> list = JSON.parseArray(info, Map.class);
-        List<String> dataList = new ArrayList<>();
-        for (Map map : list) {
-            final String name = (String) map.get("name");
-            final String res = (String) map.get("res");
-            if (ObjectUtil.hasEmpty(name, res)) {
-                continue;
-            }
-            dataList.add(name + ":" + res);
-        }
-        return String.join(";", dataList);
-    }
 
     @Override
     public TableDataInfo<SensorPageVo> selectSensorLogDataPage(SensorPageDto request) {
@@ -95,4 +88,40 @@ public class IotCommonSensorServiceImpl extends ServiceImpl<IotCommonSensorMappe
             request.setEndTime(DateUtil.endOfDay(request.getDateRange()[1]));
         }
     }
+
+    private String dealInfoData(String info) {
+        if (ObjectUtil.isEmpty(info)) {
+            return StringUtil.EMPTY_STRING;
+        }
+        final List<Map> list = JSON.parseArray(info, Map.class);
+        List<String> dataList = new ArrayList<>();
+        for (Map map : list) {
+            final String name = (String) map.get("name");
+            final String res = (String) map.get("res");
+            if (ObjectUtil.hasEmpty(name, res)) {
+                continue;
+            }
+            dataList.add(name + ":" + res);
+        }
+        return String.join(";", dataList);
+    }
+
+    private void dealCategoryName(SensorPageVo record, List<MediatorCategory> categoryList) {
+        if (ObjectUtil.isEmpty(record.getCategoryId())) {
+            return;
+        }
+        final Optional<MediatorCategory> optional = categoryList.stream().filter(c -> ObjectUtil.equal(c.getId(), record.getCategoryId())).findFirst();
+        if (!optional.isPresent()) {
+            return;
+        }
+        final MediatorCategory category = optional.get();
+        record.setCategoryType(category.getName());
+        final Optional<MediatorCategory> parentCategoryOptional = categoryList.stream().filter(c -> ObjectUtil.equal(c.getId(), category.getParentId())).findFirst();
+        if (!parentCategoryOptional.isPresent()) {
+            return;
+        }
+        final MediatorCategory parentCategory = parentCategoryOptional.get();
+        record.setAssetsType(parentCategory.getName());
+
+    }
 }

+ 5 - 0
soc-modules/soc-modules-iot/src/main/resources/mapper/MediatorCategoryMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xunmei.iot.mapper.MediatorCategoryMapper">
+
+</mapper>

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

@@ -137,7 +137,7 @@ public class DataController {
     }
 
 
-    @ApiOperation(value = "传感器通用设备状态同步",notes = "十分钟定时全量推送")
+    @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));

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

@@ -103,41 +103,6 @@ public class VideoDataController {
     }
 
 
-    /**
-     * 频率:每次检查完成后,如果某个或者某几个硬盘存在质量问题,则上报一次。中途异常盘发生变化
-     * 不做推送,质量问题修复后,主动上报结束信息。
-     * 粒度:每个硬盘录像机的硬盘情况为一个数据包
-     *
-     * @param msgId
-     * @param videoRecorderHardDiskDetectionEditDto
-     * @return
-     */
-    @ApiOperation("录像机硬盘检测")
-    @PostMapping({"/api/status/disks"})
-    ReceiveErrorDto disks( String msgId, @RequestBody VideoRecorderHardDiskDetectionEditDto videoRecorderHardDiskDetectionEditDto) {
-        rabbitMsgIdService.sendMsgId(msgId, "/status/disks", "录像机硬盘检测");
-        LogUtils.STATUS_INFO_DISKS.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "录像机硬盘检测:/api/status/disks", msgId, JSON.toJSONString(videoRecorderHardDiskDetectionEditDto));
-        ReceiveErrorDto result = ReceiveErrorDto.success();
-        try {
-            result = this.videoRecorderHardDiskDetectionService.saveData(videoRecorderHardDiskDetectionEditDto, msgId);
-        } catch (Exception e) {
-            e.printStackTrace();
-            LogUtils.STATUS_INFO_DISKS.error("保存失败,{}", e);
-        }
-        LogUtils.STATUS_INFO_DISKS.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "录像机硬盘检测:/api/status/disks", msgId, JSON.toJSONString(result));
-        return result;
-    }
-
-    /**
-     * 频率:每次检查完成后,如果某个或者某几个硬盘存在质量问题,则上报一次。中途异常盘发生变化
-     * 不做推送,质量问题修复后,主动上报结束信息。
-     * 粒度:每个硬盘录像机的硬盘情况为一个数据包
-     *
-     * @param branchId
-     * @param msgId
-     * @param dataPageDto
-     * @return
-     */
     @ApiOperation("DVR硬盘空间信息同步")
     @PostMapping({"/api/data/dvrDiskList"})
     ReceiveErrorDto disksList( String msgId, @RequestBody DataPageDto<DvrDiskPageDto> dataPageDto) {
@@ -153,4 +118,23 @@ public class VideoDataController {
         LogUtils.BASE_INFO_DVR_DISK.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "DVR硬盘空间信息同步:/api/data/dvrDiskList", msgId, JSON.toJSONString(result));
         return result;
     }
+
+
+    @ApiOperation("硬盘检测")
+    @PostMapping({"/api/status/disks"})
+    ReceiveErrorDto disks( String msgId, @RequestBody VideoRecorderHardDiskDetectionEditDto videoRecorderHardDiskDetectionEditDto) {
+        rabbitMsgIdService.sendMsgId(msgId, "/status/disks", "录像机硬盘检测");
+        LogUtils.STATUS_INFO_DISKS.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "录像机硬盘检测:/api/status/disks", msgId, JSON.toJSONString(videoRecorderHardDiskDetectionEditDto));
+        ReceiveErrorDto result = ReceiveErrorDto.success();
+        try {
+            result = this.videoRecorderHardDiskDetectionService.saveData(videoRecorderHardDiskDetectionEditDto, msgId);
+        } catch (Exception e) {
+            e.printStackTrace();
+            LogUtils.STATUS_INFO_DISKS.error("保存失败,{}", e);
+        }
+        LogUtils.STATUS_INFO_DISKS.info("【北向接口-{}】【msgId:{}】【返回参数:{}】", "录像机硬盘检测:/api/status/disks", msgId, JSON.toJSONString(result));
+        return result;
+    }
+
+
 }

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

@@ -2,6 +2,7 @@ package com.xunmei.mediator.api.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
+import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetection;
 import com.xunmei.system.api.dto.DataPageDto;
 import com.xunmei.system.api.dto.DvrDiskPageDto;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
@@ -18,4 +19,6 @@ public interface IotDvrDiskService extends IService<IotDvrDisk> {
 
     ReceiveErrorDto saveData(DataPageDto<DvrDiskPageDto> dataPageDto, String msgId) throws Exception;
 
+    void updateStatusByDiskDetection(IotDvrHardDiskDetection videoRecorderHardDiskDetection);
+
 }

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

@@ -30,6 +30,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import sun.management.Sensor;
 
 import javax.annotation.Resource;
@@ -213,6 +214,7 @@ public class IotAlarmDefenceAreaServiceImpl extends ServiceImpl<IotAlarmDefenceA
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveData(String msgId, SensorDataDto sensorData) {
         ReceiveErrorDto errorDto = null;
         try {

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

@@ -86,6 +86,7 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveData(ProtectionEditDto protectionEditDto, String msgId) {
 
         ReceiveErrorDto result = new ReceiveErrorDto();
@@ -259,6 +260,7 @@ public class IotAlarmSubSystemServiceImpl extends ServiceImpl<IotAlarmSubsystemM
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto defenceAreaList(DataPageDto<DefenceAreaDto> request, String msgId) {
         String packageGuid = request.getPackageGuid();
         if (StringUtils.isEmpty(packageGuid)) {

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

@@ -26,6 +26,7 @@ import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.api.enums.DeviceOnlineStatus;
 import com.xunmei.system.api.enums.NetStatus;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
@@ -62,6 +63,7 @@ public class IotDeviceDetectionServiceImpl extends ServiceImpl<IotDeviceDetectio
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveData(NetworkDeviceDetectionEditDto networkDeviceDetectionEditDto, String msgId) throws IllegalAccessException {
         ReceiveErrorDto error = new ReceiveErrorDto();
         Map<String, Object> map = this.checkNetworkDeviceDetectionEditDto(networkDeviceDetectionEditDto);

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

@@ -86,6 +86,7 @@ public class IotDeviceServiceImpl extends ServiceImpl<IotDeviceMapper, IotDevice
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveData(DataPageDto<DeviceDto> deviceReceivePageDto, String msgId) {
         String packageGuid = deviceReceivePageDto.getPackageGuid();
         if (StringUtils.isEmpty(packageGuid)) {

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

@@ -69,6 +69,7 @@ public class IotDvrChannelServiceImpl extends ServiceImpl<IotDvrChannelMapper, I
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveChannel(List<DeviceDto> deviceDtoList, String msgId) {
         if (ObjectUtil.isEmpty(deviceDtoList)) {
             return ReceiveErrorDto.error("通道数据为空");
@@ -189,6 +190,7 @@ public class IotDvrChannelServiceImpl extends ServiceImpl<IotDvrChannelMapper, I
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void channelCacheDeal() {
         try {
             Boolean flag = redisTemplate.hasKey(CacheConstants.CHANNEL_KEY);

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

@@ -2,10 +2,13 @@ package com.xunmei.mediator.api.service.impl;
 
 import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.nacos.common.utils.JacksonUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.domain.iot.domain.IotDevice;
 import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
+import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetection;
 import com.xunmei.common.core.enums.CategoryDataEnum;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.common.redis.utils.RedisUtils;
@@ -54,6 +57,32 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
     private IIotDeviceService iotDeviceService;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateStatusByDiskDetection(IotDvrHardDiskDetection videoRecorderHardDiskDetection) {
+        final String equipmentCode = videoRecorderHardDiskDetection.getEquipmentCode();
+        final List<IotDvrDisk> list = lambdaQuery().eq(IotDvrDisk::getHostCode, equipmentCode).eq(IotDvrDisk::getDeleted, 0).list();
+        final String detailInfo = videoRecorderHardDiskDetection.getDetailInfo();
+        final List<Map> mapList = JSON.parseArray(detailInfo, Map.class);
+        List<IotDvrDisk> diskArrayList = new ArrayList<>();
+        for (Map map : mapList) {
+            final Integer index = (Integer) map.get("index");
+            if (ObjectUtil.isNull(index)) {
+                continue;
+            }
+            final Optional<IotDvrDisk> first = list.stream().filter(disk -> ObjectUtil.equal(disk.getDiskIndex(), String.valueOf(index))).findFirst();
+            if (first.isPresent()) {
+                final IotDvrDisk iotDvrDisk = first.get();
+                iotDvrDisk.setState((Integer) map.get("state"));
+                iotDvrDisk.setStateUpdateTime(LocalDateTime.now());
+                iotDvrDisk.setUpdateTime(LocalDateTime.now());
+                diskArrayList.add(iotDvrDisk);
+            }
+        }
+        updateBatchById(diskArrayList);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveData(DataPageDto<DvrDiskPageDto> request, String msgId) throws Exception {
         //验证基础分页信息
         ReceiveErrorDto dto = CheckDataUtil.checkObjFieldIsNull(request);
@@ -163,6 +192,8 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
                         .deleted(0)
                         .source(1)
                         .createTime(LocalDateTime.now())
+                        .updateTime(LocalDateTime.now())
+                        .stateUpdateTime(LocalDateTime.now())
                         .build();
 
                 dvrdisks.add(dvrdisk);

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

@@ -13,6 +13,7 @@ import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetectionLog;
 import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.IDHelper;
+import com.xunmei.mediator.api.mapper.IotDvrDiskMapper;
 import com.xunmei.mediator.api.mapper.MediatorCategoryMapper;
 import com.xunmei.mediator.api.mapper.IotDvrHardDiskDetectionMapper;
 import com.xunmei.mediator.api.service.*;
@@ -23,6 +24,7 @@ import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.api.dto.protection.VideoRecorderHardDiskDetectionEditDto;
 import com.xunmei.system.api.enums.AlarmStatus;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
@@ -44,9 +46,7 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
     @Resource
     IIotDeviceService iIotDeviceService;
     @Resource
-    MediatorCategoryMapper categoryMapper;
-    @Resource
-    IMediatorAlarmCodeService alarmCodeService;
+    IotDvrDiskService iotDvrDiskService;
     @Resource
     IotDvrHardDiskDetectionLogService videoRecorderHardDiskDetectionLogService;
 
@@ -159,6 +159,7 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveData(VideoRecorderHardDiskDetectionEditDto videoRecorderHardDiskDetectionEditDto, String msgId) throws IllegalAccessException {
         ReceiveErrorDto error = new ReceiveErrorDto();
         Map<String, Object> map = this.checkVideoRecorderHardDiskDetectionEditDto(videoRecorderHardDiskDetectionEditDto);
@@ -180,5 +181,7 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
         IotDvrHardDiskDetectionLog videoRecorderHardDiskDetectionLog = (IotDvrHardDiskDetectionLog) objectMap.get("videoRecorderHardDiskDetectionLog");
         this.saveOrUpdate(videoRecorderHardDiskDetection);
         videoRecorderHardDiskDetectionLogService.saveOrUpdate(videoRecorderHardDiskDetectionLog);
+        iotDvrDiskService.updateStatusByDiskDetection(videoRecorderHardDiskDetection);
+
     }
 }

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

@@ -32,6 +32,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.text.ParseException;
@@ -60,6 +61,7 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
     private EquipmentSyncService equipmentSyncService;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveDirectHostStatus(DataPageDto<SensorStatusDto> request, String msgId) {
         ReceiveErrorDto dto = CheckDataUtil.checkObjFieldIsNull(request);
 
@@ -149,6 +151,7 @@ public class IotSensorServiceImpl extends ServiceImpl<IotSensorMapper, IotSensor
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveDirectHost(DataPageDto<SensorDto> request, String msgId) {
         //验证基础分页信息
         ReceiveErrorDto dto = CheckDataUtil.checkObjFieldIsNull(request);

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

@@ -23,6 +23,7 @@ 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.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
@@ -55,6 +56,7 @@ public class VideoDaysCheckServiceImpl extends ServiceImpl<VideoDaysCheckMapper,
     IVideoDaysCheckLogService daysCheckLogService;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveData(VideoDaysCheckDto videoDaysCheckDto, String msgId) {
         if (null == videoDaysCheckDto) {
             return ReceiveErrorDto.error("未接收到数据");

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

@@ -26,6 +26,7 @@ import com.xunmei.mediator.util.RedisUtil;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.text.ParseException;
@@ -57,6 +58,7 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
     @Resource
     IotAlarmCodeMapper alarmCodeMapper;
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveData(VideoDiagnosisDto videoDiagnosisDto, String msgId) throws IllegalAccessException, ParseException {
         ReceiveErrorDto error = new ReceiveErrorDto();
         //与上次接收到的数据进行比较,如果相同则不进行处理

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

@@ -28,6 +28,7 @@ import io.netty.util.internal.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.time.LocalDate;
@@ -68,6 +69,7 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
     IIotDvrChannelService dvrChannelService;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ReceiveErrorDto saveData(VideoIntegrityCheckDto videoIntegrityCheckDto, String msgId) {
         String msg = this.checkParam(videoIntegrityCheckDto);
         if (ObjectUtil.isNotEmpty(msg)) {