From c82c48881a8ca551bae21e480d6a1d31dab182a6 Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Mon, 15 Jun 2026 15:27:57 +0800 Subject: [PATCH] =?UTF-8?q?pqc=E3=80=81=E5=B7=A1=E6=A3=80=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsIssueTicketControllerService.java | 9 +++- ...msIssueTicketProcessControllerService.java | 47 +++++++++++++++---- 2 files changed, 46 insertions(+), 10 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 1155f804..c174a11a 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 @@ -652,7 +652,7 @@ public class QmsIssueTicketControllerService { .setIncidentDescription(incidentDescription) .setRemark(request.getRemark()) .setUnqualifiedQty(unqualifiedDetails.size()) - .setStatus((short) 1) + .setStatus((short) 0) .setCreateUserId(userId) .setCreateUserName(userName) .setCreateTime(now) @@ -661,6 +661,13 @@ public class QmsIssueTicketControllerService { .setUpdateTime(now); issueTicketService.save(entity); + QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo() + .setTicketId(entity.getId()) + .setHandlerUserId(userId) + .setHasProcessed(false) + .setIsRead(false); + issueTicketToDoService.save(todoItem); + Set fileIds = new HashSet<>(); Set itemIds = unqualifiedDetails.stream() .map(QmsPqcTaskRecordDetails::getInspectionPointItemId) 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 c3454e19..26e41218 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 @@ -293,10 +293,8 @@ public class QmsIssueTicketProcessControllerService { VUtil.trueThrowBusinessError(Objects.isNull(request.getApprovalStatus())) .throwMessage("提交时审批状态不能为空"); - // 2. 驳回时校验:handlers和审批意见不能为空 + // 2. 驳回时校验:审批意见不能为空 if (request.getApprovalStatus() == 1) { - VUtil.trueThrowBusinessError(request.getHandlers() == null || request.getHandlers().isEmpty()) - .throwMessage("驳回时处理人列表不能为空"); VUtil.trueThrowBusinessError(StrUtil.isBlank(request.getApprovalOpinion())) .throwMessage("驳回时审批意见不能为空"); } @@ -320,16 +318,31 @@ public class QmsIssueTicketProcessControllerService { Short leaderApprovalResult = request.getApprovalStatus(); if (leaderApprovalResult == 1) { - // 驳回:只驳回传入的handlers对应的处理记录 + // 驳回:自动驳回当前领导部门下属的待审批处理记录 Long issueTicketId = ticket.getId(); - List rejectUserIds = request.getHandlers().stream() - .map(QmsIssueTicketProcessDraftQO.RejectHandlerItem::getHandlerUserId) + List rejectProcesses = issueTicketProcessService.lambdaQuery() + .eq(QmsIssueTicketProcess::getIssueTicketId, issueTicketId) + .eq(QmsIssueTicketProcess::getApprovalStatus, (short) 0) + .isNull(QmsIssueTicketProcess::getLeaderApprovalResult) + .list() + .stream() + .filter(p -> isCurrentUserHeadOfHandlerDept(p.getHandlerUserId(), currentUserId)) + .collect(Collectors.toList()); + VUtil.trueThrowBusinessError(rejectProcesses.isEmpty()) + .throwMessage("未找到当前领导可驳回的下属处理记录"); + + List rejectProcessIds = rejectProcesses.stream() + .map(QmsIssueTicketProcess::getId) + .collect(Collectors.toList()); + List rejectUserIds = rejectProcesses.stream() + .map(QmsIssueTicketProcess::getHandlerUserId) + .filter(Objects::nonNull) + .distinct() .collect(Collectors.toList()); // 更新指定处理人的记录:重置审批状态 issueTicketProcessService.lambdaUpdate() - .eq(QmsIssueTicketProcess::getIssueTicketId, issueTicketId) - .in(QmsIssueTicketProcess::getHandlerUserId, rejectUserIds) + .in(QmsIssueTicketProcess::getId, rejectProcessIds) .set(QmsIssueTicketProcess::getApprovalStatus, null) .set(QmsIssueTicketProcess::getApprovalTime, null) .set(QmsIssueTicketProcess::getLeaderApprovalResult, null) @@ -352,7 +365,9 @@ public class QmsIssueTicketProcessControllerService { for (Long userId : rejectUserIds) { QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo() .setTicketId(issueTicketId) - .setHandlerUserId(userId); + .setHandlerUserId(userId) + .setHasProcessed(false) + .setIsRead(false); issueTicketToDoService.save(todoItem); } } else if (leaderApprovalResult == 0) { @@ -444,6 +459,20 @@ public class QmsIssueTicketProcessControllerService { } } + private boolean isCurrentUserHeadOfHandlerDept(Long handlerUserId, Long currentUserId) { + if (handlerUserId == null || currentUserId == null) { + return false; + } + UserInterior handlerInterior = userInteriorService.lambdaQuery() + .eq(UserInterior::getUserId, handlerUserId) + .one(); + if (handlerInterior == null || handlerInterior.getDeptId() == null) { + return false; + } + Department department = departmentService.getById(handlerInterior.getDeptId()); + return department != null && currentUserId.equals(department.getHeadUserId()); + } + /** * PQC工单处理人提交 */