From afe72bbce9ecd2884c699e98d58b92e6d31a5ab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 16 Apr 2026 18:27:05 +0800 Subject: [PATCH] =?UTF-8?q?feat(inspection):=20=E6=89=B9=E9=87=8F=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=A3=80=E9=AA=8C=E6=A0=87=E5=87=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在控制器中新增批量删除接口,支持接收多个检验标准ID - 服务层实现批量删除逻辑,包含检验标准及其关联检测项和检测项内容的级联删除 - 删除操作增加发布状态校验,已发布标准禁止删除 - 新增事务控制,保证删除过程的原子性 - 优化检验标准详情查询,包含检测项及其内容详细信息 - 实现新增、编辑和暂存检验标准时检测项及内容的同步处理机制 - 采用异常抛出反馈业务错误,提升系统稳定性和错误可追踪性 --- .../QmsInspectionStandardController.java | 9 ++++ ...msInspectionStandardControllerService.java | 49 +++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsInspectionStandardController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsInspectionStandardController.java index 6685139a..0c2df74f 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsInspectionStandardController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsInspectionStandardController.java @@ -93,4 +93,13 @@ public class QmsInspectionStandardController extends BaseController { public ApiResult detail(@RequestParam @NotNull(message = "ID不能为空") Long id) { return ApiResult.success(inspectionStandardControllerService.getDetail(id)); } + + /** + * 批量删除检验标准 + */ + @PostMapping("delete") + public ApiResult delete(@Valid @RequestBody IdsQO request) { + inspectionStandardControllerService.delete(request.getIds()); + return ApiResult.success(); + } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java index 6033a0cb..93d810e3 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java @@ -83,6 +83,55 @@ public class QmsInspectionStandardControllerService { inspectionStandardService.enable(id, enable); } + /** + * 批量删除检验标准 + * @param ids 检验标准ID列表 + */ + @Transactional(rollbackFor = Exception.class) + public void delete(List ids) { + if (ids == null || ids.isEmpty()) { + return; + } + + for (Long id : ids) { + // 1. 校验检验标准是否存在 + QmsInspectionStandard standard = inspectionStandardService.getById(id); + if (standard == null) { + continue; + } + + // 2. 已发布的标准不允许删除 + if (standard.getPublishStatus() != null && standard.getPublishStatus() == 1) { + throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, + "已发布的检验标准不允许删除,ID: " + id); + } + + // 3. 查询该检验标准下所有检测项 + List items = inspectionStandardItemService.lambdaQuery() + .eq(QmsInspectionStandardItem::getInspectionStandardId, id) + .list(); + + List itemIds = items.stream() + .map(QmsInspectionStandardItem::getId) + .collect(Collectors.toList()); + + // 4. 删除检测项内容 + if (!itemIds.isEmpty()) { + inspectionStandardItemContentService.lambdaUpdate() + .in(QmsInspectionStandardItemContent::getInspectionStandardItemId, itemIds) + .remove(); + } + + // 5. 删除检测项 + if (!itemIds.isEmpty()) { + inspectionStandardItemService.removeByIds(itemIds); + } + + // 6. 删除检验标准 + inspectionStandardService.removeById(id); + } + } + /** * 查询检验标准详情(包含检测项列表) * @param id 检验标准ID