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

Merge remote-tracking branch 'origin/V0.0.6-iot' into V0.0.6-iot

jingyuanchao преди 1 година
родител
ревизия
db2bdb5e8f

Файловите разлики са ограничени, защото са твърде много
+ 38 - 2
project_data/sql/0.0.6-iot/soc/soc.sql


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

@@ -64,4 +64,11 @@ class DvrDiskController {
         TableDataInfo<DvrDiskAppPageVo> page = this.dvrDiskService.appPage(request);
         return page;
     }
+
+    @ApiOperation("有异常的硬盘数量")
+    @GetMapping({"/app/badge/{orgId}"})
+    AjaxResult badge(@PathVariable("orgId") Long orgId) {
+        Integer count = this.dvrDiskService.badge(orgId);
+        return AjaxResult.success(count);
+    }
 }

+ 8 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/VideoDiagnosisController.java

@@ -11,6 +11,7 @@ import com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisAppPageVo;
 import com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisIntegrityVo;
 import com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisWebPageVo;
 import com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisWebVo;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -55,6 +56,13 @@ public class VideoDiagnosisController {
         return page;
     }
 
+    @ApiOperation("有异常的硬盘数量")
+    @GetMapping({"/app/badge/{orgId}"})
+    AjaxResult badge(@PathVariable("orgId") Long orgId) {
+        Integer count = this.videoDiagnosisService.appBadge(orgId);
+        return AjaxResult.success(count);
+    }
+
 //    @PostMapping("/app/detail/{hostCode}/{channelCode}")
 //    public TableDataInfo<VideoDiagnosisAppPageVo> appInfo(@PathVariable("hostCode") String hostCode, @PathVariable("channelCode") String channelCode) {
 //        TableDataInfo<VideoDiagnosisAppPageVo> page = this.videoDiagnosisService.getAppPageData(pageDto);

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

@@ -35,4 +35,6 @@ public interface IotDvrChannelMapper extends BaseMapper<IotDvrChannel> {
     Page<VideoDiagnosisAppPageVo> selectAppPage(@Param("page") Page<VideoDiagnosisAppPageVo> page,
                                                 @Param("pageDto") VideoDiagnosisAppPageDto pageDto,
                                                 @Param("orgPath") String orgPath);
+
+    Integer selectBadge(Long orgId);
 }

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

@@ -25,4 +25,6 @@ public interface IotDvsDiskService extends IService<IotDvrDisk> {
     DvrDiskStatisticVo diskStatistic(DvrDiskPageDto request);
 
     TableDataInfo<DvrDiskAppPageVo> appPage(DvrDiskAppPageDto request);
+
+    Integer badge(Long orgId);
 }

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

@@ -29,4 +29,5 @@ public interface VideoDiagnosisService extends IService<IotDvrChannel> {
 
     TableDataInfo<VideoDiagnosisAppPageVo> getAppPageData(VideoDiagnosisAppPageDto request);
 
+    Integer appBadge(Long orgId);
 }

+ 11 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDvrDiskServiceImpl.java

@@ -5,10 +5,12 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
+import com.xunmei.common.core.domain.iot.domain.IotSensor;
 import com.xunmei.common.core.enums.CategoryDataEnum;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.iot.dto.dvrDisk.DvrDiskAlarmHistoryPageDto;
@@ -125,4 +127,13 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
         });
         return TableDataInfo.success(page);
     }
+
+    @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();
+    }
 }

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

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.iot.domain.IotDvrChannel;
+import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
 import com.xunmei.common.core.domain.video.MediatorVideoIntegrityCheck;
 import com.xunmei.common.core.enums.CategoryDataEnum;
 import com.xunmei.common.core.enums.iot.VideoIntegrityStatus;
@@ -131,6 +132,12 @@ public class VideoDiagnosisServiceImpl extends ServiceImpl<IotDvrChannelMapper,
         return vo;
     }
 
+    @Override
+    public Integer appBadge(Long orgId) {
+        Integer count = baseMapper.selectBadge(orgId);
+        return count;
+    }
+
     private void setUnknownDate(VideoDiagnosisStorageVo storage, Date earliest) {
         storage.setUnknownDates(new ArrayList<>());
         Date start = DateUtil.beginOfDay(earliest);

+ 0 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/dvrDisk/DvrDiskAppPageVo.java

@@ -24,7 +24,6 @@ public class DvrDiskAppPageVo {
     @ApiModelProperty("磁盘信息")
     private List<IotDvrDisk> diskInfos;
 
-    @JsonIgnore
     private Integer state;
 
     @ApiModelProperty("异常数量")

+ 12 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/dvrDisk/DvrDiskPageVo.java

@@ -1,5 +1,7 @@
 package com.xunmei.iot.vo.dvrDisk;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@@ -33,6 +35,16 @@ public class DvrDiskPageVo {
 //   @JsonSerialize(using = ToStringSerializer.class)
 //   private Long orgId;
 
+   @ApiModelProperty("地区")
+   @ExcelProperty(value="地区",index = 2)
+   @ColumnWidth(20)
+   private String affiliatedArea;
+
+   @ApiModelProperty("行社名称")
+   @ExcelProperty(value="行社名称",index = 3)
+   @ColumnWidth(20)
+   private String affiliatedBank;
+
    @ApiModelProperty("所属机构")
    private String orgName;
 

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

@@ -1,5 +1,7 @@
 package com.xunmei.iot.vo.videoDiagnosis;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -11,6 +13,16 @@ public class VideoDiagnosisWebPageVo {
     @ApiModelProperty("通道code")
     private String channelCode;
 
+    @ApiModelProperty("地区")
+    @ExcelProperty(value="地区",index = 2)
+    @ColumnWidth(20)
+    private String affiliatedArea;
+
+    @ApiModelProperty("行社名称")
+    @ExcelProperty(value="行社名称",index = 3)
+    @ColumnWidth(20)
+    private String affiliatedBank;
+
     @ApiModelProperty("组织机构")
     private String orgName;
 

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

@@ -8,6 +8,8 @@
         <result column="ip" property="ip"/>
         <result column="orgId" property="orgId"/>
         <result column="orgName" property="orgName"/>
+        <result column="affiliated_area" property="affiliatedArea"/>
+        <result column="affiliated_bank" property="affiliatedBank"/>
         <result column="netState" property="netState"/>
         <!--        <result column="status" property="status"/>-->
         <!--        <result column="alarmTime" property="alarmTime"/>-->
@@ -49,6 +51,8 @@
         d.equipment_name AS equipmentName,
         d.net_address as ip,
         d.org_name AS orgName,
+        o.affiliated_area,
+        o.affiliated_bank,
         d.producer as brand,
         dd.state as netState
         <!--        dhd.check_status AS `status`,-->
@@ -56,6 +60,7 @@
         <!--        dhd.detail_info as detailInfo-->
         FROM
         iot_device d
+        inner  join sys_org o on d.org_id =o.id and o.deleted=0 and o.is_lock='0'
         left join iot_device_detection dd on d.equipment_code =dd.equipment_code
 <!--        LEFT JOIN iot_dvr_hard_disk_detection dhd ON d.equipment_code = dhd.equipment_code-->
         WHERE

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

@@ -49,6 +49,8 @@
         c.host_code,
         c.channel_code,
         c.org_name,
+        o.affiliated_area,
+        o.affiliated_bank,
         c.channel_name,
         c.channel_addr as channelIP,
         vic.lose_duration,
@@ -56,10 +58,12 @@
         vdc.real_days,
         vdr.signal_lost,
         vdr.occlude,
-        if(vdr.id is null,null,if(vdr.brightness+vdr.color_cast+vdr.snowflake+vdr.stripe+vdr.contrast+vdr.blurry>=1,1,0))
+        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
+        inner  join sys_org o on c.org_id =o.id and o.deleted=0 and o.is_lock='0'
         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 vic on c.host_code=vic.equipment_code and
         c.channel_code=vic.channel_code
@@ -128,7 +132,8 @@
 
     <select id="selectAppChannels" resultType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisAppPageChannelVo">
         select dc.channel_code,
-        if(vdc.status=0 and vic.status=0 and vdr.is_alarm=0,0,if(vdc.status =1 or vic.status>0 or vdr.is_alarm=1,1,2)) as state
+        if(vdc.status=0 and vic.status=0 and vdr.is_alarm=0,0,if(vdc.status =1 or vic.status>0 or vdr.is_alarm=1,1,2))
+        as state
         FROM iot_dvr_channel dc
         LEFT JOIN mediator_video_days_check vdc on dc.host_code=vdc.equipment_code and dc.channel_code
         =vdc.channel_code
@@ -146,7 +151,7 @@
         <if test="state==2">
             and (vdc.`status` is null or vic.`status` is null or vdr.is_alarm is null)
         </if>
-        order by  dc.channel_code asc
+        order by dc.channel_code asc
     </select>
     <select id="selectAppPage" resultMap="appPageMap">
         SELECT equipment_code,
@@ -192,4 +197,16 @@
             )
         </if>
     </select>
+    <select id="selectBadge" resultType="java.lang.Integer">
+        SELECT sum(vdc.`status` > 0 or vic.`status` > 0 or vdc.`status` > 0) as count
+        FROM iot_dvr_channel dc
+                 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
+                 LEFT JOIN mediator_video_diagnosis_record vdr
+                           on vdr.equipment_code = dc.host_code and vdr.channel_code = dc.channel_code
+        WHERE dc.org_id = #{orgId}
+          AND dc.deleted = 0
+    </select>
 </mapper>

Някои файлове не бяха показани, защото твърде много файлове са промени