From b9d4237519a412d6f54cce59ef7dfeb1c37300c5 Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Sun, 14 Jun 2026 18:19:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=9F=A5=E8=AF=A2=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AD=97=E6=AE=B5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsIssueTicketControllerService.java | 46 +++++++++++++++++++ .../wms/common/pojo/vo/QmsIssueTicketVO.java | 2 + .../impl/QmsIssueTicketServiceImpl.java | 46 +++++++++++++++++++ 3 files changed, 94 insertions(+) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java index 53fb6cbe..3f141310 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java @@ -127,6 +127,49 @@ public class QmsIssueTicketControllerService { issueTicketService.removeByIds(ids); } + private Map buildCurrentHandlerNameMap(List tickets) { + if (CollectionUtil.isEmpty(tickets)) { + return Collections.emptyMap(); + } + + List ticketIds = tickets.stream() + .map(QmsIssueTicket::getId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + if (CollectionUtil.isEmpty(ticketIds)) { + return Collections.emptyMap(); + } + + Map> ticketHandlerMap = new HashMap<>(); + List processes = issueTicketProcessService.lambdaQuery() + .in(QmsIssueTicketProcess::getIssueTicketId, ticketIds) + .orderByAsc(QmsIssueTicketProcess::getId) + .list(); + for (QmsIssueTicketProcess process : processes) { + String handlerName = StrUtil.isNotBlank(process.getLeaderUserName()) + ? process.getLeaderUserName() + : process.getHandlerUserName(); + if (StrUtil.isBlank(handlerName)) { + continue; + } + ticketHandlerMap.computeIfAbsent(process.getIssueTicketId(), key -> new LinkedHashSet<>()) + .add(handlerName); + } + + Map result = new HashMap<>(); + for (QmsIssueTicket ticket : tickets) { + LinkedHashSet handlerNames = ticketHandlerMap.get(ticket.getId()); + if (CollectionUtil.isEmpty(handlerNames) && StrUtil.isNotBlank(ticket.getApprovalUserName())) { + handlerNames = new LinkedHashSet<>(); + handlerNames.add(ticket.getApprovalUserName()); + } + if (CollectionUtil.isNotEmpty(handlerNames)) { + result.put(ticket.getId(), String.join(";", handlerNames)); + } + } + return result; + } + /** * 发起巡检工单 * 1. 校验工单存在且来源类型为巡检(sourceType=2) @@ -1109,6 +1152,8 @@ public class QmsIssueTicketControllerService { Page page = new Page<>(request.getPage(), request.getPageSize()); Page resultPage = issueTicketService.page(page, wrapper); + Map currentHandlerNameMap = buildCurrentHandlerNameMap(resultPage.getRecords()); + // 转换为VO List voList = resultPage.getRecords().stream() .map(ticket -> { @@ -1125,6 +1170,7 @@ public class QmsIssueTicketControllerService { vo.setStatus(ticket.getStatus()); vo.setCreateApproval(ticket.getCreateApproval()); vo.setCreateApprovalOpinion(ticket.getCreateApprovalOpinion()); + vo.setCurrentHandlerName(currentHandlerNameMap.get(ticket.getId())); return vo; }) .collect(Collectors.toList()); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketVO.java index 45d769fa..4fef142f 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIssueTicketVO.java @@ -103,6 +103,8 @@ public class QmsIssueTicketVO { */ private String approvalUserName; + private String currentHandlerName; + /** * 审批时间 */ diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIssueTicketServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIssueTicketServiceImpl.java index 4c27df38..33afab1b 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIssueTicketServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIssueTicketServiceImpl.java @@ -114,9 +114,12 @@ public class QmsIssueTicketServiceImpl } } + Map currentHandlerNameMap = buildCurrentHandlerNameMap(result.getRecords()); + List voList = result.getRecords().stream() .map(entity -> { QmsIssueTicketVO vo = BeanUtil.copyProperties(entity, QmsIssueTicketVO.class); + vo.setCurrentHandlerName(currentHandlerNameMap.get(entity.getId())); // 组装图片列表 if (StrUtil.isNotBlank(entity.getImageIds())) { List images = Arrays.stream(entity.getImageIds().split(",")) @@ -149,4 +152,47 @@ public class QmsIssueTicketServiceImpl pageData.setItems(voList); return pageData; } + + private Map buildCurrentHandlerNameMap(List tickets) { + if (CollectionUtil.isEmpty(tickets)) { + return Collections.emptyMap(); + } + + List ticketIds = tickets.stream() + .map(QmsIssueTicket::getId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + if (CollectionUtil.isEmpty(ticketIds)) { + return Collections.emptyMap(); + } + + Map> ticketHandlerMap = new HashMap<>(); + List processes = issueTicketProcessService.lambdaQuery() + .in(QmsIssueTicketProcess::getIssueTicketId, ticketIds) + .orderByAsc(QmsIssueTicketProcess::getId) + .list(); + for (QmsIssueTicketProcess process : processes) { + String handlerName = StrUtil.isNotBlank(process.getLeaderUserName()) + ? process.getLeaderUserName() + : process.getHandlerUserName(); + if (StrUtil.isBlank(handlerName)) { + continue; + } + ticketHandlerMap.computeIfAbsent(process.getIssueTicketId(), key -> new LinkedHashSet<>()) + .add(handlerName); + } + + Map result = new HashMap<>(); + for (QmsIssueTicket ticket : tickets) { + LinkedHashSet handlerNames = ticketHandlerMap.get(ticket.getId()); + if (CollectionUtil.isEmpty(handlerNames) && StrUtil.isNotBlank(ticket.getApprovalUserName())) { + handlerNames = new LinkedHashSet<>(); + handlerNames.add(ticket.getApprovalUserName()); + } + if (CollectionUtil.isNotEmpty(handlerNames)) { + result.put(ticket.getId(), String.join(";", handlerNames)); + } + } + return result; + } }