Procházet zdrojové kódy

feat(equippipescheduling): 添加检验员姓名模糊匹配功能

- 在 PipeShiftScheduleReqVO 中新增 checkerName 字段用于检验员姓名模糊匹配
- 优化 EquipPipeSchedulingServiceImpl 中的 taskIdToUsersMap 初始化逻辑
- 实现根据检验员姓名过滤调度任务的功能
- 添加 Stream 流处理逻辑以支持检验员姓名匹配筛选
- 集成 StrUtil.contains 方法进行模糊匹配操作
xuzhancheng před 2 dny
rodič
revize
dc41db4e43

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/vo/PipeShiftScheduleReqVO.java

@@ -26,6 +26,9 @@ public class PipeShiftScheduleReqVO {
     @Schema(description = "状态")
     private Integer status;
 
+    @Schema(description = "检验员姓名,支持模糊匹配")
+    private String checkerName;
+
     @Schema(description = "关联部门")
     private String relateDepartment;
 

+ 26 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equippipescheduling/EquipPipeSchedulingServiceImpl.java

@@ -2,6 +2,7 @@ package cn.start.tz.module.pressure2.service.equippipescheduling;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.start.tz.framework.common.exception.ServiceException;
 import cn.start.tz.framework.common.pojo.CommonResult;
 import cn.start.tz.framework.ip.core.Area;
@@ -1326,7 +1327,7 @@ public class EquipPipeSchedulingServiceImpl extends ServiceImpl<EquipPipeSchedul
                 .toList();
 
         // 查询检验员和团队信息
-        Map<String, List<EquipPipeSchedulingUserDO>> taskIdToUsersMap = new HashMap<>();
+        Map<String, List<EquipPipeSchedulingUserDO>> taskIdToUsersMap;
         if (!taskIds.isEmpty()) {
             List<EquipPipeSchedulingUserDO> schedulingUsers = equipPipeSchedulingUserMapper.selectList(
                     new LambdaQueryWrapperX<EquipPipeSchedulingUserDO>()
@@ -1338,6 +1339,8 @@ public class EquipPipeSchedulingServiceImpl extends ServiceImpl<EquipPipeSchedul
             taskIdToUsersMap = schedulingUsers.stream()
                     .filter(user -> user.getSchedulingId() != null) // 过滤掉 schedulingId 为 null 的记录
                     .collect(Collectors.groupingBy(EquipPipeSchedulingUserDO::getSchedulingId));
+        } else {
+            taskIdToUsersMap = new HashMap<>();
         }
 
         // 查询任务ID对应的设备ID列表
@@ -1421,6 +1424,28 @@ public class EquipPipeSchedulingServiceImpl extends ServiceImpl<EquipPipeSchedul
             }
         }
 
+        // 根据检验员姓名过滤
+        if (StringUtils.isNotBlank(pageReqVO.getCheckerName())) {
+            pipeShiftScheduleItemRespVOS = pipeShiftScheduleItemRespVOS.stream()
+                    .filter(item -> {
+                        String taskId = item.getTaskId();
+                        if (taskId == null || !taskIdToUsersMap.containsKey(taskId)) {
+                            return false;
+                        }
+                        List<EquipPipeSchedulingUserDO> users = taskIdToUsersMap.get(taskId);
+                        if (users == null || users.isEmpty()) {
+                            return false;
+                        }
+                        return users.stream()
+                                .map(EquipPipeSchedulingUserDO::getUserId)
+                                .filter(Objects::nonNull)
+                                .map(userIdToUserMap::get)
+                                .filter(Objects::nonNull)
+                                .anyMatch(user -> StrUtil.contains(user.getNickname(), pageReqVO.getCheckerName()));
+                    })
+                    .collect(Collectors.toList());
+        }
+
         // 处理数据,确保所有字段都有值
         for (PipeShiftScheduleRespVO item : pipeShiftScheduleItemRespVOS) {
             // 设置状态