diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiStatusItemController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiStatusItemController.java index 26a3a365..d5a58730 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiStatusItemController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiStatusItemController.java @@ -119,6 +119,14 @@ public class QmsPdiStatusItemController extends BaseController { return ApiResult.success(statusItemControllerService.search(request)); } + /** + * 分页查询特殊检测项(扁平返回) + */ + @PostMapping("/search/special") + public ApiResult> searchSpecial(@Valid @RequestBody QmsPdiStatusItemSearchQO request) { + return ApiResult.success(statusItemControllerService.searchSpecial(request)); + } + /** * 批量更新排序 */ diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java index 1d0a92d6..7428e79f 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java @@ -408,6 +408,10 @@ public class QmsPdiStatusItemControllerService { * 查询PDI检测项,按部件分组返回 */ public PageData search(QmsPdiStatusItemSearchQO request) { + if (isSpecialStatus(request.getStatus())) { + throw new NflgException(STATE.BusinessError, "特殊检测项请调用特殊检测项查询接口"); + } + // 1. 根据detectionRulesId和status查询检测项 List items = statusItemService.lambdaQuery() .eq(QmsPdiDetectionRulesStatusItem::getDetectionRulesId, request.getDetectionRulesId()) @@ -435,6 +439,7 @@ public class QmsPdiStatusItemControllerService { } // 2. 提取所有componentsId并去重 + List componentIds = items.stream() List componentIds = items.stream() .map(QmsPdiDetectionRulesStatusItem::getComponentsId) .filter(Objects::nonNull) @@ -475,6 +480,22 @@ public class QmsPdiStatusItemControllerService { return pageGroups(request, voList); } + /** + * 查询特殊检测项,扁平返回。 + */ + public PageData searchSpecial(QmsPdiStatusItemSearchQO request) { + request.setStatus(SPECIAL_STATUS); + List voList = statusItemService.lambdaQuery() + .eq(QmsPdiDetectionRulesStatusItem::getDetectionRulesId, request.getDetectionRulesId()) + .eq(QmsPdiDetectionRulesStatusItem::getStatus, SPECIAL_STATUS) + .orderByAsc(QmsPdiDetectionRulesStatusItem::getSort) + .list() + .stream() + .map(this::toItemVO) + .collect(Collectors.toList()); + return pageItems(request, voList); + } + private PageData pageGroups(QmsPdiStatusItemSearchQO request, List voList) { int total = voList.size(); int pageNum = request.getPage(); @@ -500,6 +521,30 @@ public class QmsPdiStatusItemControllerService { /** * 转换检测项为VO */ + private PageData pageItems( + QmsPdiStatusItemSearchQO request, + List voList) { + int total = voList.size(); + int pageNum = request.getPage(); + int pageSize = request.getPageSize(); + int fromIndex = (pageNum - 1) * pageSize; + int toIndex = Math.min(fromIndex + pageSize, total); + + List pagedList; + if (fromIndex >= total) { + pagedList = List.of(); + } else { + pagedList = voList.subList(fromIndex, toIndex); + } + + PageData pd = new PageData<>(); + pd.setPage(pageNum); + pd.setPageSize(pageSize); + pd.setTotal(total); + pd.setItems(pagedList); + return pd; + } + private QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO toItemVO(QmsPdiDetectionRulesStatusItem item) { QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO vo = new QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO(); vo.setId(item.getId());