From e3198da5573c33c851bce983e511997414b398e5 Mon Sep 17 00:00:00 2001 From: funny <834502597@qq.com> Date: Wed, 13 May 2026 14:15:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E8=AF=A6=E6=83=85=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsIssueTicketControllerService.java | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) 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 aef45f4c..0862e2ac 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 @@ -2064,11 +2064,29 @@ public class QmsIssueTicketControllerService { .eq(QmsIssueTicketProcess::getIssueTicketId, id) .list(); + // 判断是否为领导:1.已在process表记录了leaderUserId 2.或当前用户是处理人的部门负责人 + boolean isLeader = allProcesses.stream() + .anyMatch(p -> currentUserId.equals(p.getLeaderUserId())); + if (!isLeader) { + // 检查当前用户是否为任一处理人的部门负责人 + for (QmsIssueTicketProcess p : allProcesses) { + if (p.getHandlerUserId() == null) continue; + UserInterior handlerInterior = userInteriorService.lambdaQuery() + .eq(UserInterior::getUserId, p.getHandlerUserId()) + .one(); + if (handlerInterior != null && handlerInterior.getDeptId() != null) { + Department dept = departmentService.getById(handlerInterior.getDeptId()); + if (dept != null && currentUserId.equals(dept.getHeadUserId())) { + isLeader = true; + break; + } + } + } + } + // isEdit:处理人或领导为true boolean isHandler = allProcesses.stream() .anyMatch(p -> currentUserId.equals(p.getHandlerUserId())); - boolean isLeader = allProcesses.stream() - .anyMatch(p -> currentUserId.equals(p.getLeaderUserId())); vo.setIsEdit(isHandler || isLeader); Short status = ticket.getStatus(); @@ -2080,7 +2098,7 @@ public class QmsIssueTicketControllerService { // 工单表审批人:isReview=false,isDispatch在处理中到已完成之间 vo.setIsReview(false); vo.setIsDispatch(status != null && status == 1); - } else if (allProcesses.stream().anyMatch(p -> currentUserId.equals(p.getLeaderUserId()))) { + } else if (isLeader) { // 上级领导:isReview=true,isDispatch=false vo.setIsReview(true); vo.setIsDispatch(false);