From 25f84d0511c32433ffefc803becf47457efc21af Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Mon, 15 Jun 2026 10:16:04 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E8=B4=9F=E8=B4=A3?= =?UTF-8?q?=E4=BA=BA=E9=A9=B3=E5=9B=9E=E4=BF=AE=E6=94=B9=20pqc=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=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 --- .../service/QmsIssueTicketControllerService.java | 2 +- .../service/QmsPqcTaskRecordControllerService.java | 12 ------------ 2 files changed, 1 insertion(+), 13 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 d2fe0cd7..fe0b8472 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 @@ -3288,7 +3288,7 @@ public class QmsIssueTicketControllerService { boolean creatorCanShut = isCreator && isCompletedStatus; vo.setIsReview(responsibleCanReview || handlerCanReview || leaderCanReview); - vo.setIsDispatch(responsibleCanDispatch || creatorCanDispatch); + vo.setIsDispatch((responsibleCanDispatch && !leaderCanReview) || creatorCanDispatch); vo.setIsEdit(handlerCanEdit); vo.setIsShut(creatorCanShut); diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java index f2d9d48e..e7f2a957 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java @@ -61,12 +61,6 @@ public class QmsPqcTaskRecordControllerService { @Resource private IQmsIssueTicketService issueTicketService; - @Resource - private IQmsIssueTicketToDoService issueTicketToDoService; - - @Resource - private IQmsIssueTicketProcessService issueTicketProcessService; - @Resource private IUserService userService; @@ -1570,12 +1564,6 @@ public class QmsPqcTaskRecordControllerService { issueTicketService.save(ticket); - QmsIssueTicketProcess ticketProcess = new QmsIssueTicketProcess() - .setIssueTicketId(ticket.getId()) - .setHandlerUserId(taskRecord.getReviewerId()) - .setHandlerUserName(taskRecord.getReviewerName()); - issueTicketProcessService.save(ticketProcess); - // 2. 任务总体合格时,仅生成工单,不创建重检任务 if (!Boolean.FALSE.equals(taskRecord.getEnable())) { return ticket.getId(); From 1fb2394a5a20670f8d498f5405f293391500cadb Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Mon, 15 Jun 2026 11:21:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?pqc=E5=B7=A5=E5=8D=95=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsIssueTicketControllerService.java | 3 ++ ...msIssueTicketProcessControllerService.java | 46 +++++++++++++++++-- .../QmsPqcTaskRecordControllerService.java | 10 ++++ .../pojo/vo/QmsPqcTicketMyDetailVO.java | 2 + 4 files changed, 56 insertions(+), 5 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 fe0b8472..714805c9 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 @@ -2686,6 +2686,7 @@ public class QmsIssueTicketControllerService { vo.setIsDispatch(ticket.getStatus() != null && (ticket.getStatus() == 0 || ticket.getStatus() == 1)); vo.setIsReview(ticket.getStatus() != null && ticket.getStatus() == 2); vo.setIsEdit(false); + vo.setIsShut(ticket.getStatus() != null && ticket.getStatus() == 2); } else if (isHandler && process != null) { // 处理人: // - isDispatch=false(处理人无分派权限) @@ -2694,11 +2695,13 @@ public class QmsIssueTicketControllerService { vo.setIsDispatch(false); vo.setIsReview(ticket.getStatus() != null && ticket.getStatus() == 1 && process.getApprovalStatus() == null); vo.setIsEdit(ticket.getStatus() != null && ticket.getStatus() == 1 && process.getApprovalStatus() == null); + vo.setIsShut(false); } else { // 其他角色:无权限 vo.setIsDispatch(false); vo.setIsReview(false); vo.setIsEdit(false); + vo.setIsShut(false); } return vo; 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 e4d304d1..158337c7 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 @@ -500,11 +500,21 @@ public class QmsIssueTicketProcessControllerService { // 3. 根据审批状态处理 if (approvalStatus == 1) { - // 驳回:推送给工单创建人 - QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo() - .setTicketId(ticket.getId()) - .setHandlerUserId(ticket.getCreateUserId()); - issueTicketToDoService.save(todoItem); + boolean allHandlersRejected = isAllPqcHandlersRejected(ticket.getId()); + if (allHandlersRejected) { + issueTicketService.lambdaUpdate() + .eq(QmsIssueTicket::getId, ticket.getId()) + .set(QmsIssueTicket::getStatus, (short) 0) + .set(QmsIssueTicket::getUpdateUserId, currentUserId) + .set(QmsIssueTicket::getUpdateUserName, currentUserName) + .set(QmsIssueTicket::getUpdateTime, now) + .update(); + + QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo() + .setTicketId(ticket.getId()) + .setHandlerUserId(ticket.getCreateUserId()); + issueTicketToDoService.save(todoItem); + } } else if (approvalStatus == 0) { // 通过:校验措施(临时措施或永久措施至少填一个) boolean hasMeasures = checkPqcMeasures(process.getId()); @@ -594,4 +604,30 @@ public class QmsIssueTicketProcessControllerService { .allMatch(list -> list.stream() .anyMatch(p -> p.getApprovalTime() != null || currentUserId.equals(p.getHandlerUserId()))); } + + private boolean isAllPqcHandlersRejected(Long ticketId) { + List processes = issueTicketProcessService.lambdaQuery() + .eq(QmsIssueTicketProcess::getIssueTicketId, ticketId) + .list(); + + 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 processMap + .values() + .stream() + .allMatch(list -> list.stream() + .anyMatch(p -> Objects.equals(p.getApprovalStatus(), (short) 1))); + } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java index e7f2a957..51d61de9 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java @@ -61,6 +61,9 @@ public class QmsPqcTaskRecordControllerService { @Resource private IQmsIssueTicketService issueTicketService; + @Resource + private IQmsIssueTicketToDoService issueTicketToDoService; + @Resource private IUserService userService; @@ -1564,6 +1567,13 @@ public class QmsPqcTaskRecordControllerService { issueTicketService.save(ticket); + QmsIssueTicketToDo ticketTodo = new QmsIssueTicketToDo() + .setTicketId(ticket.getId()) + .setHandlerUserId(taskRecord.getReviewerId()) + .setHasProcessed(false) + .setIsRead(false); + issueTicketToDoService.save(ticketTodo); + // 2. 任务总体合格时,仅生成工单,不创建重检任务 if (!Boolean.FALSE.equals(taskRecord.getEnable())) { return ticket.getId(); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTicketMyDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTicketMyDetailVO.java index 73f3d815..bfb58a01 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTicketMyDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTicketMyDetailVO.java @@ -31,6 +31,8 @@ public class QmsPqcTicketMyDetailVO { */ private Boolean isEdit; + private Boolean isShut; + /** * 来源类型:3=PQC */