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)