Quellcode durchsuchen

录像诊断调试

jiawuxian vor 1 Jahr
Ursprung
Commit
48fd89e722

+ 8 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/VideoDiagnosisServiceImpl.java

@@ -51,6 +51,14 @@ public class VideoDiagnosisServiceImpl extends ServiceImpl<IotDvrChannelMapper,
     @Override
     public VideoDiagnosisWebVo getDetail(String hostCode, String channelCode) {
         VideoDiagnosisWebVo vo = baseMapper.diagnosisDetail(hostCode, channelCode);
+        if (ObjectUtil.isNull(vo)) {
+            return vo;
+        }
+
+        if (ObjectUtil.isNotNull(vo.getQuality())) {
+            vo.getQuality().summaryQuality();
+        }
+
         if (ObjectUtil.isNotNull(vo) && ObjectUtil.isNotNull(vo.getStorage()) && ObjectUtil.isNotNull(vo.getStorage().getEarliestTime())) {
             LambdaQueryWrapper<MediatorVideoIntegrityCheck> wrapper = new LambdaQueryWrapper<>();
             wrapper.eq(MediatorVideoIntegrityCheck::getEquipmentCode, hostCode)

+ 10 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/videoDiagnosis/TimeRangeVo.java

@@ -0,0 +1,10 @@
+package com.xunmei.iot.vo.videoDiagnosis;
+
+import lombok.Data;
+
+@Data
+public class TimeRangeVo {
+    private String st;
+
+    private String et;
+}

+ 29 - 10
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/videoDiagnosis/VideoDiagnosisIntegrityVo.java

@@ -1,8 +1,10 @@
 package com.xunmei.iot.vo.videoDiagnosis;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;
@@ -18,24 +20,41 @@ public class VideoDiagnosisIntegrityVo {
 
     private String cause;
 
-    private Integer lostDuration;
+    private Integer loseDuration;
 
     private Date updateTime;
 
     @JsonIgnore
-    private String lostSpan;
+    private String loseSpan;
 
-    private List<TimeRange> losts;
+    private List<TimeRangeVo> losts;
 
-    public void setLosts(String info) {
-        this.losts = JSON.parseArray(info, TimeRange.class);
+    public List<TimeRangeVo> getLosts(){
+        if(ObjectUtil.isEmpty(loseSpan)){
+            return  new ArrayList<>();
+        }
+        return JSON.parseArray(loseSpan, TimeRangeVo.class);
     }
 
-    @Data
-    private class TimeRange {
-        private String st;
-
-        private String et;
+    @JsonIgnore
+    private String checkSpan;
+
+    private List<TimeRangeVo> checks;
+    public List<TimeRangeVo> getChecks(){
+        if(ObjectUtil.isEmpty(checkSpan)){
+            return  new ArrayList<>();
+        }
+        return JSON.parseArray(checkSpan, TimeRangeVo.class);
     }
+//    public void setLosts(String info) {
+//        this.losts = JSON.parseArray(info, TimeRange.class);
+//    }
+
+//    @Data
+//    public class TimeRange {
+//        private String st;
+//
+//        private String et;
+//    }
 
 }

+ 19 - 9
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/videoDiagnosis/VideoDiagnosisQualityVo.java

@@ -1,15 +1,18 @@
 package com.xunmei.iot.vo.videoDiagnosis;
 
+import cn.hutool.core.util.ObjectUtil;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
 import java.util.Date;
+
 /**
  * 视频诊断详情-录像质量
  */
 @Data
 public class VideoDiagnosisQualityVo {
     @ApiModelProperty("质量")
-    private int quality;
+    private Integer quality;
 
     @ApiModelProperty("更新时间")
     private Date updateTime;
@@ -18,26 +21,33 @@ public class VideoDiagnosisQualityVo {
     private String image;
 
     @ApiModelProperty("信号丢失")
-    private int signalLost;
+    private Integer signalLost;
 
     @ApiModelProperty("遮挡")
-    private int occlude;
+    private Integer occlude;
 
     @ApiModelProperty("亮度")
-    private int brightness;
+    private Integer brightness;
 
     @ApiModelProperty("偏色")
-    private int colorCast;
+    private Integer colorCast;
 
     @ApiModelProperty("雪花")
-    private int snowflake;
+    private Integer snowflake;
 
     @ApiModelProperty("条纹")
-    private int stripe;
+    private Integer stripe;
 
     @ApiModelProperty("对比度")
-    private int contrast;
+    private Integer contrast;
 
     @ApiModelProperty("模糊")
-    private int blurry;
+    private Integer blurry;
+
+    public void summaryQuality() {
+        if (ObjectUtil.isNull(updateTime)) {
+            return;
+        }
+        this.quality = (signalLost + occlude + brightness + colorCast + snowflake + stripe + contrast + blurry) > 0 ? 1 : 0;
+    }
 }

+ 3 - 3
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/videoDiagnosis/VideoDiagnosisWebPageVo.java

@@ -30,11 +30,11 @@ public class VideoDiagnosisWebPageVo {
     private String realDays;
 
     @ApiModelProperty("无视频信号")
-    private int signalLost;
+    private Integer signalLost;
 
     @ApiModelProperty("视频遮挡")
-    private int occlude;
+    private Integer occlude;
 
     @ApiModelProperty("视频质量")
-    private int quality;
+    private Integer quality;
 }

+ 12 - 12
soc-modules/soc-modules-iot/src/main/resources/mapper/IotDvrChannelMapper.xml

@@ -19,15 +19,15 @@
         </association>
         <association property="integrity" javaType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisIntegrityVo">
             <result column="integrity_record_date" property="recordDate"></result>
-            <result column="integrity_lost_duration" property="lostDuration"></result>
-            <result column="integrity_lost_span" property="lostSpan"></result>
+            <result column="integrity_lose_duration" property="loseDuration"></result>
+            <result column="integrity_lose_span" property="loseSpan"></result>
+            <result column="integrity_check_span" property="checkSpan"></result>
             <result column="integrity_update_time" property="updateTime"></result>
         </association>
         <association property="storage" javaType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisStorageVo">
             <result column="storage_plan_days" property="planDays"></result>
             <result column="storage_real_days" property="realDays"></result>
             <result column="storage_earliest_video_time" property="earliestTime"></result>
-            <result column="storage_lose_date_str" property="lostDateStr"></result>
         </association>
     </resultMap>
     <select id="selectPage" resultType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisWebPageVo">
@@ -43,11 +43,11 @@
         vdc.real_days,
         vdr.signal_lost,
         vdr.occlude,
-        if(vdr.brightness+vdr.color_cast+vdr.snowflake+vdr.stripe+vdr.contrast+vdr.blurry>1,1,0) as quality
+        if(vdr.id is null,null,if(vdr.brightness+vdr.color_cast+vdr.snowflake+vdr.stripe+vdr.contrast+vdr.blurry>1,1,0)) as quality
         from iot_dvr_channel c
         INNER JOIN iot_device d on c.host_code=d.equipment_code
         left JOIN mediator_video_days_check vdc on c.host_code=vdc.equipment_code and c.channel_code=vdc.channel_code
-        left JOIN mediator_video_integrity_check_newest vic on c.host_code=vic.equipment_code and
+        left JOIN mediator_video_integrity_check vic on c.host_code=vic.equipment_code and
         c.channel_code=vic.channel_code
         left JOIN mediator_video_diagnosis_record vdr on c.host_code=vdr.equipment_code and
         c.channel_code=vdr.channel_code
@@ -58,8 +58,8 @@
         <if test="pageDto.checkSub==false">
             and c.org_id = #{pageDto.orgId}
         </if>
-        <if test="pageDto.equipmentName!=null and pageDto.equipmentName!=''">
-            and d.equipment_name like concat('%', #{pageDto.equipmentName},'%')
+        <if test="pageDto.hostName!=null and pageDto.hostName!=''">
+            and d.equipment_name like concat('%', #{pageDto.hostName},'%')
         </if>
         <if test="pageDto.channelName!=null and pageDto.channelName!=''">
             and d.channel_name like concat('%', #{pageDto.channelName},'%')
@@ -94,17 +94,17 @@
             vdr.blurry as quality_blurry,
             vdr.img_url as quality_image,
             vic.record_date as integrity_record_date,
-            vic.lose_duration as integrity_lost_duration,
-            vic.lose_span as integrity_lost_span,
+            vic.lose_duration as integrity_lose_duration,
+            vic.lose_span as integrity_lose_span,
+            vic.check_span as integrity_check_span,
             vic.update_time as integrity_update_time,
             vdc.plan_days as storage_plan_days,
             vdc.real_days as storage_real_days,
-            vdc.earliest_video_time as storage_earliest_video_time,
-            vdc.lose_date as storage_lose_date_str
+            vdc.earliest_video_time as storage_earliest_video_time
         FROM iot_dvr_channel c
                  INNER JOIN iot_device d ON c.host_code = d.equipment_code
                  LEFT JOIN mediator_video_days_check vdc ON c.host_code = vdc.equipment_code	AND c.channel_code = vdc.channel_code
-                 LEFT JOIN mediator_video_integrity_check_newest vic ON c.host_code = vic.equipment_code	AND c.channel_code = vic.channel_code
+                 LEFT JOIN mediator_video_integrity_check_log vic ON c.host_code = vic.equipment_code	AND c.channel_code = vic.channel_code
                  LEFT JOIN mediator_video_diagnosis_record vdr ON c.host_code = vdr.equipment_code AND c.channel_code = vdr.channel_code
      	WHERE c.host_code=#{hostCode} and c.channel_code=#{channelCode}
     </select>