Ver código fonte

北向硬盘检测与硬盘状态代码提交

jingyuanchao 1 ano atrás
pai
commit
bf8571e797
14 arquivos alterados com 58 adições e 5 exclusões
  1. 1 1
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/DataController.java
  2. 1 1
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/VideoDataController.java
  3. 3 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IotDvrDiskService.java
  4. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmDefenceAreaServiceImpl.java
  5. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotAlarmSubSystemServiceImpl.java
  6. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDeviceDetectionServiceImpl.java
  7. 1 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDeviceServiceImpl.java
  8. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrChannelServiceImpl.java
  9. 29 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrDiskServiceImpl.java
  10. 6 3
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrHardDiskDetectionServiceImpl.java
  11. 3 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotSensorServiceImpl.java
  12. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDaysCheckServiceImpl.java
  13. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoDiagnosisRecordServiceImpl.java
  14. 2 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/VideoIntegrityCheckServiceImpl.java

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

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

@@ -120,7 +120,7 @@ public class VideoDataController {
     }
 
 
-    @ApiOperation("录像机硬盘检测")
+    @ApiOperation("硬盘检测")
     @PostMapping({"/api/status/disks"})
     ReceiveErrorDto disks( String msgId, @RequestBody VideoRecorderHardDiskDetectionEditDto videoRecorderHardDiskDetectionEditDto) {
         rabbitMsgIdService.sendMsgId(msgId, "/status/disks", "录像机硬盘检测");

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

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

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