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