From 0bcd53a4098eceecfdf36184ca2bc0678943a280 Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Mon, 15 Jun 2026 09:02:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E8=B4=9F=E8=B4=A3=E4=BA=BA?= =?UTF-8?q?=E9=A9=B3=E5=9B=9E=E4=BF=AE=E6=94=B9=20pqc=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsIssueTicketControllerService.java | 13 ++++--- ...msIssueTicketProcessControllerService.java | 36 +++++++++++++------ 2 files changed, 34 insertions(+), 15 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 b21aa71e..125a709f 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 @@ -362,14 +362,19 @@ public class QmsIssueTicketControllerService { throw new NflgException(STATE.BusinessError, "只能分派巡检工单"); } + issueTicketToDoService.processed(ticket.getId()); + // 3. 根据审批状态分支处理 if (request.getApprovalStatus() == 1) { - // 驳回:不创建处理记录,工单改为已完成,推送消息给创建人 + // 驳回:不创建处理记录,工单改为待流转,推送消息给创建人 issueTicketService.lambdaUpdate() .eq(QmsIssueTicket::getId, ticket.getId()) - .set(QmsIssueTicket::getStatus, (short) 2) - .set(request.getApprovalOpinion() != null, - QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion()) + .set(QmsIssueTicket::getStatus, (short) 0) + .set(QmsIssueTicket::getApprovalUserId, null) + .set(QmsIssueTicket::getApprovalUserName, null) + .set(QmsIssueTicket::getApprovalStatus, null) + .set(QmsIssueTicket::getApprovalOpinion, null) + .set(QmsIssueTicket::getApprovalTime, null) .set(QmsIssueTicket::getUpdateUserId, currentUserId) .set(QmsIssueTicket::getUpdateUserName, currentUserName) .set(QmsIssueTicket::getUpdateTime, now) 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 d26903cd..b8ca3c6f 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 @@ -257,10 +257,12 @@ public class QmsIssueTicketProcessControllerService { issueTicketService.lambdaUpdate() .eq(QmsIssueTicket::getId, ticket.getId()) - .set(QmsIssueTicket::getStatus, (short) 2) - .set(QmsIssueTicket::getApprovalStatus, request.getApprovalStatus()) - .set(request.getApprovalOpinion() != null, - QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion()) + .set(QmsIssueTicket::getStatus, (short) 0) + .set(QmsIssueTicket::getApprovalUserId, null) + .set(QmsIssueTicket::getApprovalUserName, null) + .set(QmsIssueTicket::getApprovalStatus, null) + .set(QmsIssueTicket::getApprovalOpinion, null) + .set(QmsIssueTicket::getApprovalTime, null) .set(QmsIssueTicket::getUpdateUserId, currentUserId) .set(QmsIssueTicket::getUpdateUserName, currentUserName) .set(QmsIssueTicket::getUpdateTime, now) @@ -470,6 +472,13 @@ public class QmsIssueTicketProcessControllerService { Long currentUserId, String currentUserName) { // 1. 保存数据(调用draftUnified) issueTicketProcessMeasureControllerService.draftUnified(request); + QmsIssueTicketProcess latestProcess = issueTicketProcessService.getById(process.getId()); + Short approvalStatus = request.getApprovalStatus() != null + ? request.getApprovalStatus() + : latestProcess.getApprovalStatus(); + VUtil.trueThrowBusinessError(approvalStatus == null).throwMessage("提交时审批状态不能为空"); + VUtil.trueThrowBusinessError(approvalStatus != 0 && approvalStatus != 1) + .throwMessage("不支持的审批状态"); // 2. 写入审批时间 issueTicketProcessService.lambdaUpdate() @@ -480,13 +489,13 @@ public class QmsIssueTicketProcessControllerService { issueTicketToDoService.processed(ticket.getId()); // 3. 根据审批状态处理 - if (request.getApprovalStatus() != null && request.getApprovalStatus() == 1) { + if (approvalStatus == 1) { // 驳回:推送给工单创建人 QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo() .setTicketId(ticket.getId()) .setHandlerUserId(ticket.getCreateUserId()); issueTicketToDoService.save(todoItem); - } else if (request.getApprovalStatus() != null && request.getApprovalStatus() == 0) { + } else if (approvalStatus == 0) { // 通过:校验措施(临时措施或永久措施至少填一个) boolean hasMeasures = checkPqcMeasures(process.getId()); if (!hasMeasures) { @@ -554,17 +563,22 @@ public class QmsIssueTicketProcessControllerService { .eq(QmsIssueTicketProcess::getIssueTicketId, ticketId) .list(); - Map> processMap = processes.stream() + List dispatchedProcesses = processes.stream() + .filter(p -> StrUtil.isNotBlank(p.getTaskResultIds())) + .toList(); + List effectiveProcesses = dispatchedProcesses.isEmpty() + ? processes + : dispatchedProcesses; + + Map> processMap = effectiveProcesses.stream() .filter(p -> p.getHandlerUserId() != null) .collect(Collectors.groupingBy(QmsIssueTicketProcess::getHandlerUserId)); if (processMap.isEmpty()) { return false; } - // 按处理人去重判断,避免同一个处理人存在重复处理记录时一直卡在处理中 - return processes.stream() - .filter(p -> p.getHandlerUserId() != null) - .collect(Collectors.groupingBy(QmsIssueTicketProcess::getHandlerUserId)) + // 按处理人去重判断,避免自动生成工单时的占位处理记录卡住完成状态 + return processMap .values() .stream() .allMatch(list -> list.stream()