Kaynağa Gözat

实例app角标

jiawuxian 1 yıl önce
ebeveyn
işleme
aa793093cd

+ 37 - 1
project_data/sql/0.0.6-iot/soc/soc.sql

@@ -10,7 +10,7 @@ CREATE PROCEDURE schema_change () BEGIN
                     AND table_name = 'sys_device'
                     AND column_name = 'org_path') THEN
         ALTER TABLE sys_device
-            ADD COLUMN `org_path`  varchar(225) NULL COMMENT '机构path' AFTER `org_name`;
+            ADD COLUMN `org_path`  varchar(255) NULL COMMENT '机构path' AFTER `org_name`;
     END IF;
 
 	IF EXISTS(SELECT *
@@ -38,6 +38,25 @@ CREATE PROCEDURE schema_change () BEGIN
 					MODIFY COLUMN `status_update_time` datetime NULL DEFAULT NULL COMMENT '布撤防更新时间' AFTER `all_Hour`,
 					COMMENT = '报警控制器(子系统)表';		
     END IF;
+	
+	IF EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'iot_alarm_subsystem'
+                    AND column_name = 'alarm_host_id') THEN
+        ALTER TABLE `iot_alarm_subsystem` 
+			DROP COLUMN `alarm_host_id`;
+    END IF;
+	
+	IF NOT EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'iot_alarm_subsystem'
+                    AND column_name = 'alarm_host_code') THEN
+        ALTER TABLE `iot_alarm_subsystem` 
+					ADD COLUMN `alarm_host_code` varchar(64) NULL COMMENT '报警主机code' AFTER `org_name`;		
+    END IF;
+	
 	IF NOT EXISTS(SELECT *
                   FROM information_schema.columns
                   WHERE table_schema = DATABASE()
@@ -49,6 +68,23 @@ CREATE PROCEDURE schema_change () BEGIN
 					COMMENT = '报警控制器(子系统)布撤防历史表';		
     END IF;	
 	
+	IF EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'iot_alarm_subsystem_log'
+                    AND column_name = 'alarm_host_id') THEN
+        ALTER TABLE `iot_alarm_subsystem_log` 
+			DROP COLUMN `alarm_host_id`;
+    END IF;
+	
+	IF NOT EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'iot_alarm_subsystem_log'
+                    AND column_name = 'alarm_host_code') THEN
+        ALTER TABLE `iot_alarm_subsystem_log` 
+					ADD COLUMN `alarm_host_code` varchar(64) NULL COMMENT '报警主机code' AFTER `org_name`;		
+    END IF;
 	IF NOT EXISTS(SELECT *
                   FROM information_schema.columns
                   WHERE table_schema = DATABASE()

+ 3 - 0
soc-modules/soc-modules-iot/src/main/resources/mapper/IotAlarmDataMapper.xml

@@ -22,6 +22,9 @@
         <if test="param.orgPath != null and param.orgPath != ''">
             and b.path like concat(#{param.orgPath},'%')
         </if>
+        <if test="param.dataType != null and param.dataType != ''">
+            and a.data_type = #{param.dataType}
+        </if>
         <if test="param.deviceType != null and param.deviceType != ''">
             and a.source_type = #{param.deviceType}
         </if>

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

@@ -56,7 +56,8 @@
         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
@@ -128,7 +129,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 +148,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 +194,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>

+ 2 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/IotAlarmDataService.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.common.core.domain.iot.domain.IotSensor;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmData;
 import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisRecord;
@@ -47,6 +48,6 @@ public interface IotAlarmDataService extends IService<IotAlarmData> {
      * @param iotDvrDisk
      * @throws Exception
      */
-    void dealDvrDiskData(IotDvrDisk iotDvrDisk)throws Exception;
+    void dealDvrDiskData(IotDvrHardDiskDetection iotDvrDisk)throws Exception;
 
 }

+ 17 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotDvrHardDiskDetectionServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.iot.domain.IotDevice;
+import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
 import com.xunmei.common.core.domain.mediator.domain.IotAlarmCode;
 import com.xunmei.common.core.domain.mediator.domain.MediatorCategory;
 import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetection;
@@ -23,8 +24,11 @@ import com.xunmei.system.api.domain.SysOrg;
 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.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.support.TransactionSynchronizationAdapter;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
@@ -50,6 +54,9 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
     @Resource
     IotDvrHardDiskDetectionLogService videoRecorderHardDiskDetectionLogService;
 
+    @Autowired
+    private IotAlarmDataService iotAlarmDataService;
+
     @Override
     public IotDvrHardDiskDetection findTopByEquipmentCodeAndOrgId(String equipmentCode, Long orgId) {
         return lambdaQuery()
@@ -183,5 +190,15 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
         videoRecorderHardDiskDetectionLogService.saveOrUpdate(videoRecorderHardDiskDetectionLog);
         iotDvrDiskService.updateStatusByDiskDetection(videoRecorderHardDiskDetection);
 
+        TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
+            @Override
+            public void afterCommit() {
+                try {
+                    iotAlarmDataService.dealDvrDiskData(videoRecorderHardDiskDetection);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        });
     }
 }