From 025cc2487769a9a42ce70552e8538ed697e9778a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sat, 13 Jun 2026 19:38:31 +0800 Subject: [PATCH] =?UTF-8?q?refactor(controller):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E8=B4=A8=E9=87=8F=E9=97=AE=E9=A2=98=E5=B7=A5=E5=8D=95=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将控制器中的直接删除操作移至专用服务类 - 添加批量删除质量问题工单的业务逻辑 - 实现删除条件校验:仅允许删除来源类型为PQC且状态为待流转的工单 - 对不满足删除条件的工单进行拦截并返回错误提示 - 使用事务注解确保删除操作的数据一致性 --- .../controller/QmsIssueTicketController.java | 2 +- .../QmsIssueTicketControllerService.java | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) 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 ae38390c..6fade73b 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 @@ -192,7 +192,7 @@ public class QmsIssueTicketController extends BaseController { */ @PostMapping("delete") public ApiResult delete(@RequestBody @NotEmpty(message = "ID列表不能为空") List ids) { - issueTicketService.removeByIds(ids); + issueTicketControllerService.delete(ids); return ApiResult.success(); } 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 65e8a027..f80161aa 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 @@ -101,6 +101,30 @@ public class QmsIssueTicketControllerService { @Resource private IQmsPqcInspectionPointItemsService pqcInspectionPointItemsService; + /** + * 批量删除质量问题工单 + * 仅允许删除来源类型为PQC(sourceType=3)且状态为待流转(status=0)的工单, + * 否则提示不允许删除的工单编号 + */ + @Transactional(rollbackFor = Exception.class) + public void delete(List ids) { + List tickets = issueTicketService.listByIds(ids); + + // 校验工单是否均满足删除条件:来源类型为PQC(3)且状态为待流转(0) + List notAllowedTicketNos = tickets.stream() + .filter(ticket -> !Objects.equals(ticket.getSourceType(), (short) 3) + || !Objects.equals(ticket.getStatus(), (short) 0)) + .map(QmsIssueTicket::getTicketNo) + .collect(Collectors.toList()); + + if (CollectionUtil.isNotEmpty(notAllowedTicketNos)) { + throw new NflgException(STATE.BusinessError, + "以下工单不允许删除:" + String.join(",", notAllowedTicketNos)); + } + + issueTicketService.removeByIds(ids); + } + /** * 发起巡检工单 * 1. 校验工单存在且来源类型为巡检(sourceType=2)