From 2f74a0e6c101edc69de6d5e19e7c071e09a9c3ea Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 01 四月 2026 10:44:41 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ScreenUserVo.java                          |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java      |  182 ++++++++++++++++--------------
 ruoyi-system/src/main/java/com/ruoyi/system/query/HiddenDangerListQuery.java              |    9 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ClientServiceImpl.java           |   17 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java |    4 
 ruoyi-system/src/main/resources/mapper/system/RecordMapper.xml                            |   11 +
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ErrorListVo.java                           |    2 
 ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml                       |   28 ++++
 ruoyi-system/src/main/resources/mapper/system/ProjectMapper.xml                           |   57 ++++++---
 9 files changed, 197 insertions(+), 116 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
index de2bb7c..f75cebd 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
@@ -94,6 +94,8 @@
                 Client client = clientService.getById(project.getClientId());
                 ClientParam param = clientParamService.getOne(new LambdaQueryWrapper<ClientParam>().eq(ClientParam::getClientId, client.getId()));
                 if(param!=null){
+                    screenUserVo.setLogo(param.getLogo());
+                    screenUserVo.setName(param.getName());
                     screenUserVo.setCommentType(param.getCommentType());
                     screenUserVo.setSafetyId(param.getSafetyId());
                     String name = clientParamService.getTemplateName(param.getSafetyId());
@@ -104,7 +106,7 @@
                     screenUserVo.setBigHiddenDanger(param.getBigHiddenDanger());
                     screenUserVo.setGeneralHiddenDanger(param.getGeneralHiddenDanger());
                 }
-                screenUserVo.setName(project.getName());
+                screenUserVo.setProjectName(project.getName());
                 screenUserVo.setPermissionProject(project.getPermission());
             }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/HiddenDangerListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/HiddenDangerListQuery.java
index 1011fff..0c809cf 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/HiddenDangerListQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/HiddenDangerListQuery.java
@@ -17,9 +17,18 @@
     @ApiModelProperty("隐患类型 1=安全 2=设备")
     private Integer type;
 
+    @ApiModelProperty("隐患等级")
+    private Integer level;
+
+    @ApiModelProperty("隐患类型 1=重大 2=其他")
+    private Integer category;
+
     @ApiModelProperty("整改情况 0未整改  1部分整改  2已整改")
     private Integer reformed;
 
+    @ApiModelProperty("整改情况 0未整改  1部分整改  2已整改  3未复查")
+    private Integer state;
+
     @ApiModelProperty("开始时间")
     private String startTime;
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ClientServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ClientServiceImpl.java
index ae472cb..a07a2a2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ClientServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ClientServiceImpl.java
@@ -664,6 +664,7 @@
                 // 解析 address_info JSON 字符串
                 JSONObject addressJson = JSON.parseObject(p.getAddressInfo());
                 JSONArray gps = addressJson.getJSONArray("gps");
+                String lonLat = addressJson.getString("lonLat");
 
                 if (gps != null && gps.size() >= 2) {
                     ProjectMapPointVO vo = new ProjectMapPointVO();
@@ -680,6 +681,22 @@
                     vo.setCategory(categoryMap.get(p.getId()));
 
                     result.add(vo);
+                }else if(org.apache.commons.lang3.StringUtils.isNotBlank(lonLat)){
+                    String[] split = lonLat.split(",");
+                    ProjectMapPointVO vo = new ProjectMapPointVO();
+                    vo.setProjectId(p.getId());
+                    vo.setProjectName(p.getName());
+                    vo.setProjectType(p.getType());
+
+                    // gps 数组格式:[经度, 纬度]
+                    vo.setLongitude(split[0]);
+                    vo.setLatitude(split[1]);
+                    //位置信息
+                    vo.setAddressInfo(addressJson);
+                    // 设置项目类别
+                    vo.setCategory(categoryMap.get(p.getId()));
+
+                    result.add(vo);
                 }
             } catch (Exception e) {
                 // 解析失败则跳过该项目
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java
index 11da042..2654f53 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java
@@ -154,7 +154,7 @@
                         .isNotNull(ClientParam::getUnderConstructionProject))
                 .stream().collect(Collectors.toMap(ClientParam::getClientId, ClientParam::getUnderConstructionProject));
         Map<Integer, String> assetParamMap = clientParamMapper.selectList(new LambdaQueryWrapper<ClientParam>()
-                .isNotNull(ClientParam::getAssetProject))
+                        .isNotNull(ClientParam::getAssetProject))
                 .stream().collect(Collectors.toMap(ClientParam::getClientId, ClientParam::getAssetProject));
         Map<Integer, List<Task>> taskMap = taskMapper.selectList(new LambdaQueryWrapper<Task>()
                         .ge(Task::getCreateTime, startTime)
@@ -228,8 +228,10 @@
 
                 // 查询重大隐患记录(level 表示隐患等级,0 表示重大隐患)
                 LambdaQueryWrapper<Record> recordWrapperPro = new LambdaQueryWrapper<>();
-                recordWrapperPro.eq(Record::getDeleted, false)
-                        .in(Record::getCheckTaskId, checkTaskIdsPro)
+                if(checkTaskIdsPro.size()>0){
+                    recordWrapperPro.eq(Record::getDeleted, false)
+                            .in(Record::getCheckTaskId, checkTaskIdsPro);
+                }
                 ; // 重大隐患等级
                 List<Record> records1 = recordMapper.selectList(recordWrapperPro);
 //                long c1 = records1.stream().filter(e -> e.getLevel() != null && e.getLevel() == 0).count();
@@ -288,7 +290,7 @@
 
 //                List<Record> recordList = records.stream().filter(e -> taskIds.contains(e.getCheckTaskId())).toList();
 //                Record record = recordList.stream().max(Comparator.comparing(Record::getCreateTime)).orElse(null);
-                if (task1 != null && task1.getState()==3) {
+                if (task1 != null && task1.getState() == 3) {
                     deviceListVo.setCheckTime(task1.getDate().atStartOfDay());
                     deviceListVo.setCheckResult("已检查");
                 } else {
@@ -506,32 +508,34 @@
             startTime = "";
         }
         LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<>();
-        switch (query.getCategory()) {
-            case 1:
-                // 查询在建资产项目
-                projectWrapper.eq(Project::getDeleted, false)
-                        .ne(Project::getType, 2) // 在建工程
-                        .and(wrapper -> wrapper
-                                .eq(Project::getStatus, 1)  // 在建项目
-                                .or(w -> w
-                                        .eq(Project::getStatus, 2)  // 已完成项目
+        if(query.getCategory()!=null) {
+            switch (query.getCategory()) {
+                case 1:
+                    // 查询在建资产项目
+                    projectWrapper.eq(Project::getDeleted, false)
+                            .ne(Project::getType, 2) // 在建工程
+                            .and(wrapper -> wrapper
+                                    .eq(Project::getStatus, 1)  // 在建项目
+                                    .or(w -> w
+                                            .eq(Project::getStatus, 2)  // 已完成项目
 
-                                        .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
-                                )
-                        );
-                break;
-            case 2:
-                // 查询固定资产项目
-                projectWrapper.eq(Project::getDeleted, false)
-                        .eq(Project::getType, 2) // 在建工程
-                        .and(wrapper -> wrapper
-                                .eq(Project::getStatus, 1)  // 在建项目
-                                .or(w -> w
-                                        .eq(Project::getStatus, 2)  // 已完成项目
-                                        .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
-                                )
-                        );
-                break;
+                                            .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
+                                    )
+                            );
+                    break;
+                case 2:
+                    // 查询固定资产项目
+                    projectWrapper.eq(Project::getDeleted, false)
+                            .eq(Project::getType, 2) // 在建工程
+                            .and(wrapper -> wrapper
+                                    .eq(Project::getStatus, 1)  // 在建项目
+                                    .or(w -> w
+                                            .eq(Project::getStatus, 2)  // 已完成项目
+                                            .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
+                                    )
+                            );
+                    break;
+            }
         }
         if (query.getClientId() != null) {
             projectWrapper.eq(Project::getClientId, query.getClientId());
@@ -572,32 +576,36 @@
             startTime = "";
         }
         LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<>();
-        switch (query.getCategory()) {
-            case 1:
-                // 查询在建资产项目
-                projectWrapper.eq(Project::getDeleted, false)
-                        .ne(Project::getType, 2) // 在建工程
-                        .and(wrapper -> wrapper
-                                .eq(Project::getStatus, 1)  // 在建项目
-                                .or(w -> w
-                                        .eq(Project::getStatus, 2)  // 已完成项目
+        if (query.getCategory() != null) {
 
-                                        .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
-                                )
-                        );
-                break;
-            case 2:
-                // 查询固定资产项目
-                projectWrapper.eq(Project::getDeleted, false)
-                        .eq(Project::getType, 2) // 在建工程
-                        .and(wrapper -> wrapper
-                                .eq(Project::getStatus, 1)  // 在建项目
-                                .or(w -> w
-                                        .eq(Project::getStatus, 2)  // 已完成项目
-                                        .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
-                                )
-                        );
-                break;
+
+            switch (query.getCategory()) {
+                case 1:
+                    // 查询在建资产项目
+                    projectWrapper.eq(Project::getDeleted, false)
+                            .ne(Project::getType, 2) // 在建工程
+                            .and(wrapper -> wrapper
+                                    .eq(Project::getStatus, 1)  // 在建项目
+                                    .or(w -> w
+                                            .eq(Project::getStatus, 2)  // 已完成项目
+
+                                            .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
+                                    )
+                            );
+                    break;
+                case 2:
+                    // 查询固定资产项目
+                    projectWrapper.eq(Project::getDeleted, false)
+                            .eq(Project::getType, 2) // 在建工程
+                            .and(wrapper -> wrapper
+                                    .eq(Project::getStatus, 1)  // 在建项目
+                                    .or(w -> w
+                                            .eq(Project::getStatus, 2)  // 已完成项目
+                                            .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
+                                    )
+                            );
+                    break;
+            }
         }
         if (query.getClientId() != null) {
             projectWrapper.eq(Project::getClientId, query.getClientId());
@@ -637,41 +645,43 @@
             startTime = "";
         }
         LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<>();
-        switch (query.getCategory()) {
-            case 1:
-                // 查询在建资产项目
-                projectWrapper
+        if(query.getCategory()!=null) {
+            switch (query.getCategory()) {
+                case 1:
+                    // 查询在建资产项目
+                    projectWrapper
 //                        .eq(Project::getDeleted, false)
-                        .ne(Project::getType, 2) // 在建工程
-                        .and(wrapper -> wrapper
-                                .eq(Project::getStatus, 1)  // 在建项目
-                                .or(w -> w
-                                        .eq(Project::getStatus, 2)  // 已完成项目
-                                        .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
-                                )
-                                .or(w -> w
-                                        .isNull(Project::getStatus)  // 已完成项目
-                                        .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
-                                )
-                        );
-                break;
-            case 2:
-                // 查询固定资产项目
-                projectWrapper
+                            .ne(Project::getType, 2) // 在建工程
+                            .and(wrapper -> wrapper
+                                    .eq(Project::getStatus, 1)  // 在建项目
+                                    .or(w -> w
+                                            .eq(Project::getStatus, 2)  // 已完成项目
+                                            .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
+                                    )
+                                    .or(w -> w
+                                            .isNull(Project::getStatus)  // 已完成项目
+                                            .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
+                                    )
+                            );
+                    break;
+                case 2:
+                    // 查询固定资产项目
+                    projectWrapper
 //                        .eq(Project::getDeleted, false)
-                        .eq(Project::getType, 2) // 在建工程
-                        .and(wrapper -> wrapper
-                                        .eq(Project::getStatus, 1)  // 在建项目
-                                        .or(w -> w
-                                                .eq(Project::getStatus, 2)  // 已完成项目
-                                                .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
-                                        )
-                                        .or(w -> w
-                                                        .isNull(Project::getStatus)  // 已完成项目
+                            .eq(Project::getType, 2) // 在建工程
+                            .and(wrapper -> wrapper
+                                            .eq(Project::getStatus, 1)  // 在建项目
+                                            .or(w -> w
+                                                    .eq(Project::getStatus, 2)  // 已完成项目
+                                                    .between(StringUtils.hasLength(startTime), Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
+                                            )
+                                            .or(w -> w
+                                                            .isNull(Project::getStatus)  // 已完成项目
 //                                        .between(StringUtils.hasLength(startTime),Project::getSuccessTime, startTime, endTime)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
-                                        )
-                        );
-                break;
+                                            )
+                            );
+                    break;
+            }
         }
         if (query.getClientId() != null) {
             projectWrapper.eq(Project::getClientId, query.getClientId());
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ErrorListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ErrorListVo.java
index 3abcd17..c8739cb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ErrorListVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ErrorListVo.java
@@ -35,7 +35,7 @@
     @ApiModelProperty("检查时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime checkTime;
-
+     //0未整改  1部分整改  2已整改  3未复查
     @ApiModelProperty("整改情况0未复查1-未整改 2-部分整改 3-已整改")
     private Integer state;
     @ApiModelProperty("责任人")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ScreenUserVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ScreenUserVo.java
index ca2f0f0..e85eb1a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ScreenUserVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ScreenUserVo.java
@@ -40,4 +40,7 @@
 
     @ApiModelProperty(value = "1开启 2关闭 一般隐患")
     private Integer generalHiddenDanger;
+
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml b/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml
index f74dc0b..25ca488 100644
--- a/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml
@@ -124,7 +124,11 @@
     <select id="errorList" resultType="com.ruoyi.system.vo.ErrorListVo">
         select t1.*,t2.project_id,t2.plan_id,t3.`name` as  projectName,t4.`name` as planName
              ,t5.description as problemName,IF(t1.device_id is null ,1,2) as type,t2.create_time as checkTime
-        ,IF(t6.state  is null,0,t6.state+1) as state
+        ,
+        case
+        when t6.id is null then 3
+        else t6.state
+        end as state
         from record t1
                  LEFT JOIN task t2 on t1.check_task_id = t2.id
                  LEFT JOIN project t3 on t2.project_id = t3.id
@@ -132,7 +136,7 @@
                  LEFT JOIN problem t5 ON t1.problem_id = t5.id
         left join error_review t6 on t1.error_review_id = t6.id
         where t1.deleted = 0 and t2.deleted = 0  and t1.`level` =0
-          <if test="query.recordIds != null">
+          <if test="query.recordIds != null and query.recordIds.size()>0 ">
             and t1.id in
             <foreach item="item" index="index" collection="query.recordIds" open="(" separator="," close=")">
                 #{item}
@@ -160,11 +164,21 @@
         <if test="query.type != null and query.type == 2">
             and t1.device_id is not null
         </if>
+        <if test="query.startTime != null and query.startTime !='' ">
+            and t2.create_time >= #{query.startTime}
+        </if>
+          <if test="query.endTime != null and query.endTime !='' ">
+            and #{query.endTime} >= t2.create_time
+        </if>
 
         <if test="query.content!= null and query.content!=''">
             and (t3.name like CONCAT('%', #{query.content}, '%')
                 or
             t5.name like CONCAT('%', #{query.content}, '%')
+                or
+            t5.description like CONCAT('%', #{query.content}, '%')
+                or
+            t1.hierarchy_name like CONCAT('%', #{query.content}, '%')
                 or
             t1.remark like CONCAT('%', #{query.content}, '%')
                 )
@@ -174,7 +188,10 @@
     <select id="deviceErrorList" resultType="com.ruoyi.system.vo.ErrorListVo">
         select t1.*,t2.project_id,t2.plan_id,t3.`name` as  projectName,t4.`name` as planName
         ,t5.description as problemName,IF(t1.device_id is null ,1,2) as type,t1.create_time as checkTime
-        ,IF(t6.state  is null,0,t6.state+1) as state
+        ,  case
+        when t6.id is null then 3
+        else t6.state
+        end as state
         from record t1
         LEFT JOIN task t2 on t1.check_task_id = t2.id
         LEFT JOIN project t3 on t2.project_id = t3.id
@@ -218,7 +235,10 @@
     <select id="safetyErrorList" resultType="com.ruoyi.system.vo.ErrorListVo">
         select t1.*,t2.project_id,t2.plan_id,t3.`name` as  projectName,t4.`name` as planName
         ,t5.description as problemName,IF(t1.device_id is null ,1,2) as type,t1.create_time as checkTime
-        ,IF(t6.state  is null,0,t6.state+1) as state
+        ,  case
+        when t6.id is null then 3
+        else t6.state
+        end as state
         from record t1
         LEFT JOIN task t2 on t1.check_task_id = t2.id
         LEFT JOIN project t3 on t2.project_id = t3.id
diff --git a/ruoyi-system/src/main/resources/mapper/system/ProjectMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ProjectMapper.xml
index 9ad0d59..219441e 100644
--- a/ruoyi-system/src/main/resources/mapper/system/ProjectMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/ProjectMapper.xml
@@ -25,26 +25,43 @@
         <result column="permission" property="permission" />
     </resultMap>
     <select id="getDeviceDetailCheckList" resultType="com.ruoyi.system.vo.DeviceDetailCheckListVo">
-            select t1.id,t2.name planName,t2.type planType,t1.date checkTime,t1.system_fuzzy fuzzyScore,t1.system_score score,t3.risk_level riskLevel,
-                   t3.contain_device_res ,t3.contain_system_res,t2.id planId
-            from task t1
-            left join plan t2 on t1.plan_id = t2.id
-            left join eval_result t3 on t1.id = t3.check_task_id
-            where t1.project_id = #{query.projectId}
-            <if test="query.planName != null and query.planName != ''">
-                and t2.name like concat('%',#{query.planName},'%')
-            </if>
-            <if test="query.planType != null">
-                and t2.type = #{query.planType}
-            </if>
-            <if test="query.startTime != null and query.startTime != ''">
-                and t1.date >= #{query.startTime}
-            </if>
-            <if test="query.endTime != null and query.endTime != ''">
-                and  #{query.endTime} >=t1.date
-            </if>
-            GROUP BY t2.id
-            order by t1.date desc
+        SELECT
+        t1.id AS id,
+        t2.id AS planId,
+        t2.name AS planName,
+        t2.type AS planType,
+        MAX(t1.date) AS checkTime,
+        -- 从eval_result表获取风险等级(取fuzzy类型的)
+        MAX(CASE WHEN t3.type = 'fuzzy' THEN t3.risk_level END) AS riskLevel,
+        -- 从eval_result表获取设备资源(取fuzzy类型的)
+        MAX(CASE WHEN t3.type = 'fuzzy' THEN t3.contain_device_res END) AS contain_device_res,
+        -- 从eval_result表获取系统资源(取fuzzy类型的)
+        MAX(CASE WHEN t3.type = 'fuzzy' THEN t3.contain_system_res END) AS contain_system_res,
+        -- 将fuzzy类型的分数放到fuzzyScore字段,保留4位小数
+        ROUND(MAX(CASE WHEN t3.type = 'fuzzy' THEN t3.score END), 4) AS fuzzyScore,
+        -- 将score类型的分数放到score字段,保留4位小数
+        ROUND(MAX(CASE WHEN t3.type = 'score' THEN t3.score END), 4) AS score,
+        -- 也可以获取score类型的风险等级(如果需要)
+        MAX(CASE WHEN t3.type = 'score' THEN t3.risk_level END) AS scoreRiskLevel
+        FROM task t1
+        LEFT JOIN plan t2 ON t1.plan_id = t2.id
+        LEFT JOIN eval_result t3 ON t1.id = t3.check_task_id
+        WHERE t1.project_id = #{query.projectId}
+        <if test="query.planName != null and query.planName != ''">
+            AND t2.name LIKE CONCAT('%', #{query.planName}, '%')
+        </if>
+        <if test="query.planType != null">
+            AND t2.type = #{query.planType}
+        </if>
+        <if test="query.startTime != null and query.startTime != ''">
+            AND t1.date >= #{query.startTime}
+        </if>
+        <if test="query.endTime != null and query.endTime != ''">
+            AND t1.date &lt;= #{query.endTime}
+        </if>
+        GROUP BY t2.id, t2.name, t2.type
+        HAVING t2.id IS NOT NULL
+        ORDER BY MAX(t1.date) DESC
 
 
     </select>
diff --git a/ruoyi-system/src/main/resources/mapper/system/RecordMapper.xml b/ruoyi-system/src/main/resources/mapper/system/RecordMapper.xml
index df3b9c9..cb93e6a 100644
--- a/ruoyi-system/src/main/resources/mapper/system/RecordMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/RecordMapper.xml
@@ -53,23 +53,26 @@
             #{item}
         </foreach>
 
-        <if test="query.type == null">
+        <if test="query.category==1">
             and t1.level = 0
         </if>
         <if test="query.content != null">
-            and t1.hierarchy_name like concat('%',#{query.content},'%')
+            and (t1.hierarchy_name like concat('%',#{query.content},'%') or t2.description like concat('%',#{query.content},'%'))
         </if>
         <if test="query.startTime != null and query.startTime !='' and query.endTime!=null and query.endTime !=''">
             and t1.create_time between #{query.startTime} and #{query.endTime}
         </if>
 
         ) as o where 1=1
-        <if test="query.reformed != null">
-            and o.state = #{query.reformed}
+        <if test="query.state != null">
+            and o.state = #{query.state}
         </if>
         <if test="query.type != null">
             and o.type = #{query.type}
         </if>
+        <if test="query.level != null">
+            and o.level = #{query.level}
+        </if>
         order by o.create_time desc
     </select>
 

--
Gitblit v1.7.1