Przeglądaj źródła

磁盘调试代码提交

jingyuanchao 1 rok temu
rodzic
commit
91332f036d

+ 46 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/iot/DvrDiskOriginState.java

@@ -0,0 +1,46 @@
+package com.xunmei.common.core.enums.iot;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author jingyuanchao
+ * @date 2024/7/29 17:51
+ */
+
+@Getter
+@AllArgsConstructor
+public enum DvrDiskOriginState {
+
+    NORMAL("0", "normal", "正常"),
+
+    NOT_EXIST("1", "notExist", "不存在"),
+
+    UN_FORMAT("2", "unformatted", "未格式化"),
+
+    SLEEP("3", "sleep", "休眠"),
+
+    MAINTENANCE("4", "maintenance", "正在维修"),
+
+    ALARM("5", "alarm", "报警"),
+
+    ERROR("6", "error", "错误"),
+
+    EXCLUDE("7", "exclude", "排除"),
+
+    UNKNOWN("9", "unknown", "未知"),
+
+    ;
+    private final String code;
+    private final String field;
+    private final String desc;
+
+    public static Integer getByCodeField(String field) {
+        for (DvrDiskOriginState enumItem : DvrDiskOriginState.values()) {
+            if (enumItem.field.equals(field)) {
+                return Integer.parseInt(enumItem.getCode());
+            }
+        }
+        return Integer.parseInt(DvrDiskOriginState.UNKNOWN.getCode());
+    }
+}

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

@@ -12,6 +12,7 @@ import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
 import com.xunmei.common.core.domain.iot.domain.IotDvrDiskLog;
 import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetection;
 import com.xunmei.common.core.enums.CategoryDataEnum;
+import com.xunmei.common.core.enums.iot.DvrDiskOriginState;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.mediator.api.host.service.IIotDeviceService;
@@ -93,7 +94,7 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
             String originState = String.valueOf(map.get("originState"));
             //Integer freeBytes = (Integer) map.get("freeBytes");
 
-            iotDvrDisk.setOriginState(Integer.valueOf(originState));
+            iotDvrDisk.setOriginState(DvrDiskOriginState.getByCodeField(originState));
             iotDvrDisk.setAvailable(new BigDecimal(availableBytes).divide(BigDecimal.valueOf(1024 * 1024), 2, RoundingMode.HALF_UP).intValue());
             iotDvrDisk.setTotal(new BigDecimal(totalBytes).divide(BigDecimal.valueOf(1024 * 1024), 2, RoundingMode.HALF_UP).intValue());
             iotDvrDisk.setStateUpdateTime(req.getCheckTime());

+ 12 - 3
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/VideoIntegrityCheckServiceImpl.java

@@ -229,7 +229,7 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
         }
         videoIntegrityCheck.setUpdateTime(new Date());
         videoIntegrityCheck.setChannelCode(videoIntegrityCheckDto.getChannelCode());
-        videoIntegrityCheck.setChannelName(videoIntegrityCheckDto.getChannelName());
+        videoIntegrityCheck.setChannelName(channel.getDeviceName());
         videoIntegrityCheck.setCheckSpan(dealSpan(videoIntegrityCheckDto.getCheckSpan()));
         videoIntegrityCheck.setEquipmentCode(videoIntegrityCheckDto.getEquipmentCode());
         videoIntegrityCheck.setLoseSpan(dealSpan(videoIntegrityCheckDto.getLoseSpan()));
@@ -253,6 +253,9 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
     //重新转换一次,之前的转换出来有转义符
     private String dealSpan(List<String> spanList) {
         List<JSONObject> list = new ArrayList<>();
+        if (ObjectUtil.isEmpty(spanList)) {
+            return JSON.toJSONString(list);
+        }
         for (String string : spanList) {
             Map parse = JSON.parseObject(string, Map.class);
             if (parse.get("st") != null && parse.get("et") != null) {
@@ -291,10 +294,16 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
         JSONArray array = JSON.parseArray(loseSpan);
         int min = 0;
         for (Object object : array) {
-            if (object instanceof String) {
-                Map map = JSON.parseObject(object.toString(), Map.class);
+            if (object instanceof JSONObject) {
+                Map map = ((JSONObject) object).toJavaObject(Map.class);
                 final String st = (String) map.get("st");
                 final String et = (String) map.get("et");
+                if ("00:00:00".equals(st) && "23:59:59".equals(et)) {
+                    min += 1440;
+                }
+                if (st.equals(et)) {
+                    continue;
+                }
                 final LocalTime startTime = LocalTime.parse(st);
                 final LocalTime endTime = LocalTime.parse(et);
                 final long l = ChronoUnit.MINUTES.between(startTime, endTime);

+ 1 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/websocket/dto/dvs/ChannelInfo.java

@@ -13,7 +13,7 @@ public class ChannelInfo implements Serializable {
     private String productName;
     private String deviceName;
     private String channelIndex;
-    private String channelName;
+    private String displayName;
     private String channelType;
     private String recordStatus;
 }

+ 2 - 2
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/websocket/service/impl/WebsocketServiceImpl.java

@@ -534,7 +534,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
     private void dealChannelDevice(ChannelInfo channelInfo, IotDeviceInfo info, IotServerInfo serverInfo) {
         info.setDeleted(0);
         info.setDeviceCode(channelInfo.getChannelIndex());
-        info.setDeviceName(channelInfo.getChannelName());
+        info.setDeviceName(channelInfo.getDisplayName());
         String channelType = "digitalChannel".equals(channelInfo.getChannelType()) ? DeviceTypeEnum.NUMBER_CAMERA.getCode() : DeviceTypeEnum.MONITOR_CAMERA.getCode();
         info.setDeviceType(channelType);
         info.setOrgId(serverInfo.getOrgId());
@@ -559,7 +559,7 @@ public class WebsocketServiceImpl implements WebsocketService, RouterService {
         info.setDeviceType(channelType);
         info.setIotToken(serverInfo.getIotCode());
         info.setDeviceProduct(channelInfo.getProductName());
-        info.setDeviceName(channelInfo.getChannelName());
+        info.setDeviceName(channelInfo.getDisplayName());
         info.setHostCode(channelInfo.getDeviceName());
         info.setOrgId(serverInfo.getOrgId());
         info.setOrgName(serverInfo.getOrgName());