diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java index 5bdb5402..39a2f791 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java @@ -145,6 +145,28 @@ public class QmsIssueTicketProcessControllerService { .eq(QmsIssueTicketProcess::getLeaderUserId, currentUserId)) .last("LIMIT 1") .one(); + + // 如果没找到,检查当前用户是否为处理人的部门负责人 + if (process == null) { + List allProcesses = issueTicketProcessService.lambdaQuery() + .eq(QmsIssueTicketProcess::getIssueTicketId, request.getId()) + .list(); + 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())) { + // 找到该处理人的记录,作为领导的处理记录 + process = p; + break; + } + } + } + } + VUtil.trueThrowBusinessError(Objects.isNull(process)).throwMessage("未找到当前用户的工单处理记录"); Short sourceType = ticket.getSourceType();