From 9194ec2d948b0b383baa47f5c11266c5c9167d79 Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Tue, 16 Jun 2026 14:40:33 +0800 Subject: [PATCH] =?UTF-8?q?pdi=E5=9B=9E=E8=B0=83=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E5=B7=A1=E6=A3=80=E5=B7=A5=E5=8D=95=E6=B5=81=E7=A8=8B=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/QmsIssueTicketController.java | 4 +- .../QmsIssueTicketControllerService.java | 46 ++++++++++--------- ...msIssueTicketProcessControllerService.java | 17 ++----- ...PdiInspectionResultsControllerService.java | 3 +- .../pojo/vo/QmsInspectionTicketDetailVO.java | 2 +- 5 files changed, 32 insertions(+), 40 deletions(-) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketController.java index 6fade73b..f6d23865 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketController.java @@ -142,8 +142,8 @@ public class QmsIssueTicketController extends BaseController { } /** - * 创建人审核工单 - * 工单状态为2(已完成)时,创建人可以关闭或驳回工单 + * 工单审核 + * 巡检工单由负责人关闭;其他工单由创建人关闭或驳回 */ @PostMapping("creatorReview") public ApiResult creatorReview(@Valid @RequestBody QmsIssueTicketCreatorReviewQO request) { 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 fe6a8b87..65e4757a 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 @@ -454,25 +454,18 @@ public class QmsIssueTicketControllerService { // 3. 根据审批状态分支处理 if (approvalStatus == 1) { - // 驳回:不创建处理记录,工单改为待流转,推送消息给创建人 + // 驳回:不创建处理记录,巡检工单直接关闭 issueTicketService.lambdaUpdate() .eq(QmsIssueTicket::getId, ticket.getId()) - .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::getStatus, (short) 3) + .set(QmsIssueTicket::getApprovalStatus, approvalStatus) + .set(request.getApprovalOpinion() != null, + QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion()) + .set(QmsIssueTicket::getApprovalTime, now) .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 { // 通过:按现有流程处理 VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request.getHandlerUserIds())) @@ -3476,21 +3469,22 @@ public class QmsIssueTicketControllerService { boolean leaderCanReview = isLeader && hasPendingLeaderReview(allProcesses, currentUserId); boolean creatorCanDispatch = isCreator && status != null && status == 0; - boolean creatorCanShut = isCreator && isCompletedStatus; + boolean creatorCanShut = isCreator && !Objects.equals(ticket.getSourceType(), (short) 2) && isCompletedStatus; + boolean responsibleCanShut = isResponsiblePerson && isCompletedStatus; vo.setIsReview(responsibleCanReview || handlerCanReview || leaderCanReview); vo.setIsDispatch((responsibleCanDispatch && !leaderCanReview) || creatorCanDispatch); vo.setIsEdit(handlerCanEdit); - vo.setIsShut(creatorCanShut); + vo.setIsShut(creatorCanShut || responsibleCanShut); return vo; } /** - * 创建人审核工单 - * 工单状态为2(已完成)时,创建人可以: - * - 关闭工单:status=3, createApproval=0 - * - 驳回工单:status=1, createApproval=1, 重置指定处理人的审批记录 + * 工单审核 + * 工单状态为2(已完成)时: + * - 巡检工单由负责人关闭 + * - 其他工单由创建人关闭或驳回 */ @Transactional(rollbackFor = Exception.class) public void creatorReview(@Valid QmsIssueTicketCreatorReviewQO request) { @@ -3498,10 +3492,18 @@ public class QmsIssueTicketControllerService { QmsIssueTicket ticket = issueTicketService.getById(request.getId()); VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在"); - // 2. 校验当前用户为工单创建人 + // 2. 校验当前用户权限:巡检工单由负责人关闭,其他工单由创建人审核 Long currentUserId = UserUtil.getUserId(); - VUtil.trueThrowBusinessError(!currentUserId.equals(ticket.getCreateUserId())) - .throwMessage("只有工单创建人才能审核"); + boolean inspectionTicket = Objects.equals(ticket.getSourceType(), (short) 2); + if (inspectionTicket) { + VUtil.trueThrowBusinessError(!currentUserId.equals(ticket.getApprovalUserId())) + .throwMessage("只有工单负责人才能审核"); + VUtil.trueThrowBusinessError(request.getCreateApproval() != 0) + .throwMessage("巡检工单只允许关闭"); + } else { + VUtil.trueThrowBusinessError(!currentUserId.equals(ticket.getCreateUserId())) + .throwMessage("只有工单创建人才能审核"); + } // 3. 校验工单状态为已完成 VUtil.trueThrowBusinessError(ticket.getStatus() != 2) 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 39a162c5..7f469a8c 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 @@ -309,23 +309,14 @@ public class QmsIssueTicketProcessControllerService { issueTicketService.lambdaUpdate() .eq(QmsIssueTicket::getId, ticket.getId()) - .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::getStatus, (short) 3) + .set(QmsIssueTicket::getApprovalStatus, (short) 1) + .set(QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion()) + .set(QmsIssueTicket::getApprovalTime, now) .set(QmsIssueTicket::getUpdateUserId, currentUserId) .set(QmsIssueTicket::getUpdateUserName, currentUserName) .set(QmsIssueTicket::getUpdateTime, now) .update(); - - QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo() - .setTicketId(ticket.getId()) - .setHandlerUserId(ticket.getCreateUserId()) - .setHasProcessed(false) - .setIsRead(false); - issueTicketToDoService.save(todoItem); } private void leaderSubmitUnified(QmsIssueTicketProcessDraftQO request, QmsIssueTicket ticket, diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java index bf11d816..0688e5ff 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java @@ -272,8 +272,7 @@ public class QmsPdiInspectionResultsControllerService { .setDetectionCompletionTime(now) .setOverdue(overdueValue) .setInspectionEnable(hasDefect ? 3 : 2); - // 业务确认暂时关闭PDI回调WMS -// wmsPdiInspectionTaskCallbackService.callBack(taskRecord, overallResult); + wmsPdiInspectionTaskCallbackService.callBack(taskRecord, overallResult); // 8. 返回不合格项(转换为VO,图片改为List格式) return buildInspectionResultVOList(failedItems); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionTicketDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionTicketDetailVO.java index e63a52ec..8272e742 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionTicketDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionTicketDetailVO.java @@ -33,7 +33,7 @@ public class QmsInspectionTicketDetailVO { private Boolean isEdit; /** - * 是否有关闭权限(创建人且工单状态为已完成时为true) + * 是否有关闭权限(负责人且工单状态为已完成时为true) */ private Boolean isShut;