From 21b4e5b0947aa9cf69d56134a2b6ae658576d979 Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Mon, 15 Jun 2026 22:42:06 +0800 Subject: [PATCH] =?UTF-8?q?pdi=E3=80=81pqc=E9=A9=B3=E5=9B=9E=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsIssueTicketControllerService.java | 27 +++++++++++++++-- ...msIssueTicketProcessControllerService.java | 23 ++++++++++++++- .../qo/QmsIssueTicketDispatchMultipleQO.java | 29 ++++++++++++++++++- .../pojo/qo/QmsPqcTicketDispatchQO.java | 5 ++++ 4 files changed, 79 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 a160612b..56732d21 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 @@ -100,6 +100,9 @@ public class QmsIssueTicketControllerService { @Resource private IQmsPqcInspectionPointItemsService pqcInspectionPointItemsService; + @Resource + private QmsIssueTicketProcessControllerService issueTicketProcessControllerService; + /** * 批量删除质量问题工单 * 仅允许删除来源类型为PQC(sourceType=3)且状态为待流转(status=0)的工单, @@ -363,15 +366,33 @@ public class QmsIssueTicketControllerService { QmsIssueTicket ticket = issueTicketService.getById(request.getId()); VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在"); - // 2. 校验工单来源类型为巡检 if (!Objects.equals(ticket.getSourceType(), (short) 2)) { + if (CollectionUtil.isNotEmpty(request.getHandlers())) { + QmsIssueTicketProcessAddQO addRequest = new QmsIssueTicketProcessAddQO(); + addRequest.setIssueTicketId(request.getId()); + addRequest.setHandlers(request.getHandlers().stream().map(item -> { + QmsIssueTicketProcessAddQO.HandlerItem handlerItem = new QmsIssueTicketProcessAddQO.HandlerItem(); + handlerItem.setTaskResultId(item.getTaskResultId()); + handlerItem.setHandlerUserId(item.getHandlerUserId()); + return handlerItem; + }).collect(Collectors.toList())); + issueTicketProcessControllerService.add(addRequest); + return; + } throw new NflgException(STATE.BusinessError, "只能分派巡检工单"); } + Short approvalStatus = request.getApprovalStatus(); + if (approvalStatus == null) { + VUtil.trueThrowBusinessError(!Objects.equals(ticket.getStatus(), (short) 0)) + .throwMessage("审批状态不能为空"); + approvalStatus = 0; + } + issueTicketToDoService.processed(ticket.getId()); // 3. 根据审批状态分支处理 - if (request.getApprovalStatus() == 1) { + if (approvalStatus == 1) { // 驳回:不创建处理记录,工单改为待流转,推送消息给创建人 issueTicketService.lambdaUpdate() .eq(QmsIssueTicket::getId, ticket.getId()) @@ -404,7 +425,7 @@ public class QmsIssueTicketControllerService { // 更新工单审批状态和意见 issueTicketService.lambdaUpdate() .eq(QmsIssueTicket::getId, ticket.getId()) - .set(QmsIssueTicket::getApprovalStatus, request.getApprovalStatus()) + .set(QmsIssueTicket::getApprovalStatus, approvalStatus) .set(request.getApprovalOpinion() != null, QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion()) .set(QmsIssueTicket::getUpdateUserId, currentUserId) 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 a98ff508..725f8351 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 @@ -95,7 +95,28 @@ public class QmsIssueTicketProcessControllerService { handlerUserIds.add(entry.getKey()); } - if (Objects.equals(ticket.getSourceType(), (short) 3)) { + if (Objects.equals(ticket.getSourceType(), (short) 1)) { + issueTicketToDoService.processed(ticket.getId()); + + for (Long handlerUserId : handlerUserIds) { + QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo() + .setTicketId(ticket.getId()) + .setHandlerUserId(handlerUserId) + .setHasProcessed(false) + .setIsRead(false); + issueTicketToDoService.save(todoItem); + } + + if (!Objects.equals(ticket.getStatus(), (short) 1)) { + issueTicketService.lambdaUpdate() + .eq(QmsIssueTicket::getId, ticket.getId()) + .set(QmsIssueTicket::getStatus, (short) 1) + .set(QmsIssueTicket::getUpdateUserId, currentUserId) + .set(QmsIssueTicket::getUpdateUserName, currentUserName) + .set(QmsIssueTicket::getUpdateTime, now) + .update(); + } + } else if (Objects.equals(ticket.getSourceType(), (short) 3)) { issueTicketToDoService.lambdaUpdate() .eq(QmsIssueTicketToDo::getTicketId, ticket.getId()) .eq(QmsIssueTicketToDo::getHasProcessed, false) diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketDispatchMultipleQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketDispatchMultipleQO.java index 03b5e468..b4e9c209 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketDispatchMultipleQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketDispatchMultipleQO.java @@ -1,5 +1,7 @@ package com.nflg.wms.common.pojo.qo; +import com.fasterxml.jackson.annotation.JsonAlias; +import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -15,6 +17,7 @@ public class QmsIssueTicketDispatchMultipleQO { * 工单ID(qms_issue_ticket.id) */ @NotNull(message = "工单ID不能为空") + @JsonAlias({"ticketId", "issueTicketId"}) private Long id; /** @@ -22,14 +25,38 @@ public class QmsIssueTicketDispatchMultipleQO { */ private List handlerUserIds; + /** + * 按不合格项分派处理人 + */ + @Valid + private List handlers; + /** * 审批状态(0=通过,1=驳回) */ - @NotNull(message = "审批状态不能为空") private Short approvalStatus; /** * 审批意见 */ private String approvalOpinion; + + /** + * 处理人项 + */ + @Data + public static class HandlerItem { + + /** + * 任务结果ID + */ + @NotNull(message = "任务结果ID不能为空") + private Long taskResultId; + + /** + * 处理人用户ID + */ + @NotNull(message = "处理人用户ID不能为空") + private Long handlerUserId; + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPqcTicketDispatchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPqcTicketDispatchQO.java index 76327d9a..1a265464 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPqcTicketDispatchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPqcTicketDispatchQO.java @@ -1,5 +1,6 @@ package com.nflg.wms.common.pojo.qo; +import com.fasterxml.jackson.annotation.JsonAlias; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; @@ -17,6 +18,7 @@ public class QmsPqcTicketDispatchQO { * 工单ID(必传) */ @NotNull(message = "工单ID不能为空") + @JsonAlias({"id", "issueTicketId"}) private Long ticketId; /** @@ -34,6 +36,7 @@ public class QmsPqcTicketDispatchQO { */ @NotEmpty(message = "处理人列表不能为空") @Valid + @JsonAlias("handlers") private List assignees; /** @@ -45,12 +48,14 @@ public class QmsPqcTicketDispatchQO { * 不合格项ID(多个用逗号拼接) */ @NotEmpty(message = "不合格项ID不能为空") + @JsonAlias("taskResultId") private String taskResultIds; /** * 处理人ID */ @NotNull(message = "处理人ID不能为空") + @JsonAlias("handlerUserId") private Long userId; } }