فهرست منبع

优化监控调阅接口查询超时问题

zhulu 9 ماه پیش
والد
کامیت
d044436cfc

+ 12 - 4
project_data/sql/1.0.11/soc/soc.sql

@@ -196,10 +196,14 @@ end if;
 end if;
 
 
-
-
-
-
+        IF NOT EXISTS(SELECT DISTINCT INDEX_NAME
+            FROM INFORMATION_SCHEMA.STATISTICS
+            WHERE TABLE_SCHEMA = DATABASE()
+              AND TABLE_NAME = 'core_monitoring_task_registration'
+              AND INDEX_NAME = 'taskId_index') THEN
+ALTER TABLE `core_monitoring_task_registration`
+    ADD INDEX `taskId_index`(`task_id`) USING BTREE;
+end if;
 
 
 
@@ -435,4 +439,8 @@ INSERT INTO `sys_dict_data` ( `dict_sort`, `dict_label`, `dict_value`, `dict_typ
 INSERT INTO `sys_dict_data` ( `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (4, '监控中心操作人员', '4', 'monitoring_current_position', NULL, 'default', 'N', '0', 'jwx', '2023-11-27 14:56:44', '', NULL, NULL);
 INSERT INTO `sys_dict_data` ( `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (5, '监控中心技术维护岗', '5', 'monitoring_current_position', NULL, 'default', 'N', '0', 'jwx', '2023-11-27 14:56:44', '', NULL, NULL);
 
+-- 修改隐患问题表字段长度
+ALTER TABLE `core_question`
+    MODIFY COLUMN `check_content` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '检查内容' AFTER `check_item`;
+
 -- 升级脚本执行完成

+ 7 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/mapper/CoreMonitoringTaskMonitorInfoMapper.java

@@ -38,6 +38,13 @@ public interface CoreMonitoringTaskMonitorInfoMapper extends BaseMapper<CoreMoni
      * @return
      */
     List<CoreMonitoringTaskMonitorInfo> selectCoreMonitoringTaskMonitorInfoByMonitorId(Long monitorId);
+
+    /**
+     *根据监控id查询项目
+     * @param ids
+     * @return
+     */
+    List<CoreMonitoringTaskMonitorInfo> selectCoreMonitoringTaskMonitorInfoByMonitorIds(Long[] ids);
     /**
      * 新增调阅任务登记检查情况
      *

+ 20 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/CoreMonitoringTaskRegistrationMonitorServiceImpl.java

@@ -4,6 +4,7 @@ package com.xunmei.core.access.service.impl;
 import java.util.ArrayList;
 import java.util.List;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
@@ -25,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Arrays;
+import java.util.stream.Collectors;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 
@@ -129,11 +131,24 @@ public class CoreMonitoringTaskRegistrationMonitorServiceImpl extends ServiceImp
             //查询视频
             List<CoreMonitoringTaskRegistrationMonitorVO> coreMonitoringTaskRegistrationMonitorVOS = coreMonitoringTaskRegistrationMonitorMapper.selectMonitorByTaskRegistrationId(coreMonitoringTaskRegistrationVO.getId());
             if (coreMonitoringTaskRegistrationMonitorVOS != null && coreMonitoringTaskRegistrationMonitorVOS.size() > 0) {
-                coreMonitoringTaskRegistrationMonitorVOS.forEach(c -> {
-                    //查询项目
-                    List<CoreMonitoringTaskMonitorInfo> coreMonitoringTaskMonitorInfos = coreMonitoringTaskMonitorInfoMapper.selectCoreMonitoringTaskMonitorInfoByMonitorId(c.getId());
-                    c.setCoreMonitoringTaskMonitorInfoList(coreMonitoringTaskMonitorInfos);
-                });
+                // 循环查询改为单次查询
+//                coreMonitoringTaskRegistrationMonitorVOS.forEach(c -> {
+//                    //查询项目
+//                    List<CoreMonitoringTaskMonitorInfo> coreMonitoringTaskMonitorInfos = coreMonitoringTaskMonitorInfoMapper.selectCoreMonitoringTaskMonitorInfoByMonitorId(c.getId());
+//                    c.setCoreMonitoringTaskMonitorInfoList(coreMonitoringTaskMonitorInfos);
+//                });
+
+                Long[] monitorIds = coreMonitoringTaskRegistrationMonitorVOS.stream().map(x -> x.getId()).toArray(Long[]::new);
+
+                List<CoreMonitoringTaskMonitorInfo> coreMonitoringTaskMonitorInfos= coreMonitoringTaskMonitorInfoMapper.selectCoreMonitoringTaskMonitorInfoByMonitorIds(monitorIds);
+                if(ObjectUtil.isNotEmpty(coreMonitoringTaskMonitorInfos))
+                {
+                    coreMonitoringTaskRegistrationMonitorVOS.forEach(c -> {
+                        //查询项目
+                        List<CoreMonitoringTaskMonitorInfo> infoList = coreMonitoringTaskMonitorInfos.stream().filter(x -> ObjectUtil.equal(x.getTaskMonitorId(), c.getId())).collect(Collectors.toList());
+                        c.setCoreMonitoringTaskMonitorInfoList(infoList);
+                    });
+                }
                 coreMonitoringTaskRegistrationVO.setCoreMonitoringTaskRegistrationMonitorVOList(coreMonitoringTaskRegistrationMonitorVOS);
             }
         }

+ 10 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/access/CoreMonitoringTaskMonitorInfoMapper.xml

@@ -51,6 +51,16 @@
         <include refid="selectCoreMonitoringTaskMonitorInfoVo"/>
         where task_monitor_id = #{monitorId}
     </select>
+
+    <select id="selectCoreMonitoringTaskMonitorInfoByMonitorIds"
+            resultType="com.xunmei.core.access.domain.CoreMonitoringTaskMonitorInfo">
+        <include refid="selectCoreMonitoringTaskMonitorInfoVo"/>
+        where task_monitor_id  in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
     <select id="selectAbnormalByTaskId" resultType="java.lang.Integer">
         SELECT
             COUNT( cmtmi.id )