Преглед на файлове

视频监测 角标查询 调整跟随 查询条件变化

zhulu преди 1 година
родител
ревизия
6ab4f87775

+ 1 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/DvrDiskController.java

@@ -68,7 +68,7 @@ class DvrDiskController {
     @ApiOperation("有异常的硬盘数量")
     @GetMapping({"/app/badge/{orgId}"})
     AjaxResult badge(@PathVariable("orgId") Long orgId) {
-        Integer count = this.dvrDiskService.badge(orgId);
+        Integer count = this.dvrDiskService.badge(orgId,false);
         return AjaxResult.success(count);
     }
 }

+ 28 - 8
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/SmartOprationController.java

@@ -4,6 +4,7 @@ package com.xunmei.iot.controller;
 import cn.hutool.core.util.ObjectUtil;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.iot.dto.dvrDisk.DvrDiskAppPageDto;
 import com.xunmei.iot.dto.videoDiagnosis.VideoDiagnosisAppPageDto;
 import com.xunmei.iot.dto.videoDiagnosis.VideoDiagnosisWebPageDto;
@@ -17,6 +18,7 @@ import com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisWebVo;
 import com.xunmei.system.api.RemoteFileService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.jaxb.SpringDataJaxb;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -54,24 +56,41 @@ public class SmartOprationController {
 //    }
 
     @ApiOperation("智能运维页面Tab页角标数量")
-    @GetMapping({"/app/badge/{orgId}"})
-    AjaxResult tabBadge(@PathVariable("orgId") Long orgId) {
+    @PostMapping({"/app/tab/badge"})
+    AjaxResult tabBadge(@RequestBody VideoDiagnosisAppPageDto pageDto) {
         AjaxResult ajaxResult = AjaxResult.success();
         // 录像丢失
-        Integer videoCheckBadge = this.videoDiagnosisService.appVideoLoseBadge(orgId);
+        Integer videoCheckBadge =0;
+        if(pageDto.getCheckSub())
+        {
+            videoCheckBadge= this.videoDiagnosisService.appSelectVideoLoseSelfAndSubOrgBadge(pageDto.getOrgId());
+        }
+        else
+        {
+            videoCheckBadge= this.videoDiagnosisService.appVideoLoseBadge(pageDto.getOrgId());
+        }
+
         if(ObjectUtil.isNotNull(videoCheckBadge) && videoCheckBadge>0){
             ajaxResult.put("videoCheckBadge", videoCheckBadge);
         }
 
         // 视频质量
-        Integer videoDiagnosisBadge = this.videoDiagnosisService.appVideoQualityBadge(orgId);
+        Integer videoDiagnosisBadge = 0;
+        if(pageDto.getCheckSub())
+        {
+            videoDiagnosisBadge=this.videoDiagnosisService.appSelectVideoQualitySelfAndSubOrgBadge(pageDto.getOrgId());
+        }
+        else {
+            videoDiagnosisBadge=this.videoDiagnosisService.appVideoQualityBadge(pageDto.getOrgId());
+        }
+
         if(ObjectUtil.isNotNull(videoDiagnosisBadge) && videoDiagnosisBadge>0)
         {
             ajaxResult.put("videoDiagnosisBadge", videoDiagnosisBadge);
         }
 
         // 硬盘
-        Integer dvrDiskBadge = this.dvrDiskService.badge(orgId);
+        Integer dvrDiskBadge = this.dvrDiskService.badge(pageDto.getOrgId(),pageDto.getCheckSub());
         if(ObjectUtil.isNotNull(dvrDiskBadge) && dvrDiskBadge>0)
         {
             ajaxResult.put("dvrDiskBadge", dvrDiskBadge);
@@ -84,22 +103,23 @@ public class SmartOprationController {
     @GetMapping({"/app/page/badge/{orgId}"})
     AjaxResult pageBadge(@PathVariable("orgId") Long orgId) {
         AjaxResult ajaxResult = AjaxResult.success();
+
         Integer totalBadge=0;
         // 录像丢失
-        Integer videoCheckBadge = this.videoDiagnosisService.appVideoLoseBadge(orgId);
+        Integer videoCheckBadge = this.videoDiagnosisService.appSelectVideoLoseSelfAndSubOrgBadge(orgId);
         if(ObjectUtil.isNotNull(videoCheckBadge) && videoCheckBadge>0){
             totalBadge+=videoCheckBadge;
         }
 
         // 视频质量
-        Integer videoDiagnosisBadge = this.videoDiagnosisService.appVideoQualityBadge(orgId);
+        Integer videoDiagnosisBadge = this.videoDiagnosisService.appSelectVideoQualitySelfAndSubOrgBadge(orgId);
         if(ObjectUtil.isNotNull(videoDiagnosisBadge) && videoDiagnosisBadge>0)
         {
             totalBadge+=videoDiagnosisBadge;
         }
 
         // 硬盘
-        Integer dvrDiskBadge = this.dvrDiskService.badge(orgId);
+        Integer dvrDiskBadge = this.dvrDiskService.badge(orgId,true);
         if(ObjectUtil.isNotNull(dvrDiskBadge) && dvrDiskBadge>0)
         {
             totalBadge+=dvrDiskBadge;

+ 4 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotDvrChannelMapper.java

@@ -46,8 +46,12 @@ public interface IotDvrChannelMapper extends BaseMapper<IotDvrChannel> {
 
     Integer selectVideoLoseBadge(Long orgId);
 
+    Integer selectVideoLoseSelfAndSubOrgBadge(String orgPath);
+
     Integer selectVideoQualityBadge(Long orgId);
 
+    Integer selectVideoQualitySelfAndSubOrgBadge(String orgPath);
+
     Integer selectChannelCount(@Param("orgPath") String orgPath);
 
     List<MediatorVideoDiagnosisLog> selectData(@Param("orgPath") String orgPath, @Param("startTime") Date startTime);

+ 4 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotDvrDiskMapper.java

@@ -37,4 +37,8 @@ public interface IotDvrDiskMapper extends BaseMapper<IotDvrDisk> {
                                                   @Param("orgPath") String orgPath);
 
     List<IotDvrDisk> selectDiskCount(@Param("orgPath") String orgPath);
+
+    Integer selectDiskBadge(@Param("orgId") Long orgId,@Param("orgPath") String orgPath);
+
+
 }

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

@@ -26,5 +26,5 @@ public interface IotDvsDiskService extends IService<IotDvrDisk> {
 
     TableDataInfo<DvrDiskAppPageVo> appPage(DvrDiskAppPageDto request);
 
-    Integer badge(Long orgId);
+    Integer badge(Long orgId,boolean checkSub);
 }

+ 3 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/VideoDiagnosisService.java

@@ -37,6 +37,9 @@ public interface VideoDiagnosisService extends IService<IotDvrChannel> {
 
     Integer appVideoLoseBadge(Long orgId);
     Integer appVideoQualityBadge(Long orgId);
+    Integer appSelectVideoLoseSelfAndSubOrgBadge(Long orgId);
+    Integer appSelectVideoQualitySelfAndSubOrgBadge(Long orgId);
+
 
     IotBoardTotalData.VideoDiagnostic selectVideoDiagnostic(String orgPath, Date startTime);
 

+ 14 - 6
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDvrDiskServiceImpl.java

@@ -131,11 +131,19 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
     }
 
     @Override
-    public Integer badge(Long orgId) {
-        Long count = baseMapper.selectCount(new LambdaQueryWrapper<IotDvrDisk>()
-                .eq(IotDvrDisk::getOrgId, orgId)
-                .eq(IotDvrDisk::getState, 1)
-                .eq(IotDvrDisk::getDeleted, 0));
-        return count.intValue();
+    public Integer badge(Long orgId,boolean checkSub) {
+
+
+//        Long count = baseMapper.selectCount(new LambdaQueryWrapper<IotDvrDisk>()
+//                .eq(IotDvrDisk::getOrgId, orgId)
+//                .eq(IotDvrDisk::getState, 1)
+//                .eq(IotDvrDisk::getDeleted, 0));
+        String orgPath=null;
+        if(checkSub)
+        {
+            SysOrg sysOrg = orgService.selectOrgById(orgId, SecurityConstants.INNER);
+            orgPath=sysOrg.getPath();
+        }
+        return baseMapper.selectDiskBadge(orgId,orgPath);
     }
 }

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

@@ -221,6 +221,20 @@ public class VideoDiagnosisServiceImpl extends ServiceImpl<IotDvrChannelMapper,
         return count;
     }
 
+    @Override
+    public Integer appSelectVideoLoseSelfAndSubOrgBadge(Long orgId) {
+        SysOrg org = orgService.selectOrgById(orgId, SecurityConstants.INNER);
+        Integer count = baseMapper.selectVideoLoseSelfAndSubOrgBadge(org.getPath());
+        return count;
+    }
+
+    @Override
+    public Integer appSelectVideoQualitySelfAndSubOrgBadge(Long orgId) {
+        SysOrg org = orgService.selectOrgById(orgId, SecurityConstants.INNER);
+        Integer count = baseMapper.selectVideoQualitySelfAndSubOrgBadge(org.getPath());
+        return count;
+    }
+
     private void setUnknownDate(VideoDiagnosisStorageVo storage, Date earliest) {
         storage.setUnknownDates(new ArrayList<>());
         Date start = DateUtil.beginOfDay(earliest);

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

@@ -208,4 +208,22 @@
           and d.deleted = 0
           and o.path like concat(#{orgPath}, '%')
     </select>
+    <select id="selectDiskBadge" resultType="java.lang.Integer">
+        select  sum( d.`state` = 1 ) AS count
+        from iot_dvr_disk d
+        <if test="orgPath!=null and orgPath != ''">
+                 inner join sys_org o on o.id = d.org_id
+        </if>
+        where
+          d.deleted = 0
+          and d.state =1
+        <if test="orgPath!=null and orgPath != ''">
+          and o.deleted = 0
+          and o.is_lock=0
+          and o.path like concat(#{orgPath}, '%')
+        </if>
+        <if test="orgId!=null">
+            and d.org_id= #{orgId}
+        </if>
+    </select>
 </mapper>

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

@@ -381,6 +381,21 @@
         WHERE dc.org_id = #{orgId}
           AND dc.deleted = 0
     </select>
+    <select id="selectVideoLoseSelfAndSubOrgBadge" resultType="java.lang.Integer">
+        SELECT sum(vdc.`status` > 0 or vic.`status` > 0) as count
+        FROM iot_dvr_channel dc
+            INNER JOIN sys_org o ON dc.org_id =o.id
+            LEFT JOIN mediator_video_days_check vdc
+        on vdc.equipment_code = dc.host_code and vdc.channel_code = dc.channel_code
+            LEFT JOIN mediator_video_integrity_check vic
+            on vic.equipment_code = dc.host_code and vic.channel_code = dc.channel_code
+        WHERE
+            o.deleted=0
+          AND o.is_lock =0
+          and o.path like concat(#{orgPath}, '%')
+          AND dc.deleted = 0
+    </select>
+
     <select id="selectVideoQualityBadge" resultType="java.lang.Integer">
         SELECT sum(vdr.`is_alarm` > 0) as count
         FROM iot_dvr_channel dc
@@ -390,6 +405,19 @@
           AND dc.deleted = 0
     </select>
 
+    <select id="selectVideoQualitySelfAndSubOrgBadge" resultType="java.lang.Integer">
+        SELECT sum(vdr.`is_alarm` > 0) as count
+        FROM iot_dvr_channel dc
+            INNER JOIN sys_org o ON dc.org_id =o.id
+            LEFT JOIN mediator_video_diagnosis_record vdr
+        on vdr.equipment_code = dc.host_code and vdr.channel_code = dc.channel_code
+        WHERE
+            o.deleted=0
+          AND o.is_lock =0
+          AND dc.deleted = 0
+          and o.path like concat(#{orgPath}, '%')
+    </select>
+
     <select id="selectChannelCount" resultType="java.lang.Integer">
         select count(1)
         from iot_dvr_channel d