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/QmsPdiDetectionRulesControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiDetectionRulesControllerService.java index a56ca597..5b6d303e 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiDetectionRulesControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiDetectionRulesControllerService.java @@ -259,6 +259,8 @@ public class QmsPdiDetectionRulesControllerService { .map(item -> new QmsPdiComponentAnagement() .setDetectionRulesId(newId) .setComponentName(item.getComponentName()) + .setSort(item.getSort()) + .setStatus(item.getStatus()) .setCreateBy(operator) .setCreateTime(now)) .collect(java.util.stream.Collectors.toList()); 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..05d2d433 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()) @@ -475,6 +479,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 +520,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()); diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java index 93bbcf82..07cc8331 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java @@ -1036,7 +1036,8 @@ public class QmsPqcTaskRecordControllerService { } // 6. 同步生成工单;仅当任务总体不合格时才额外生成重检任务 - List unqualifiedItems = buildUnqualifiedItems(request); + Map detailIdMap = getTaskDetailIdMap(taskRecord.getId()); + List unqualifiedItems = buildUnqualifiedItems(request, detailIdMap); if (!unqualifiedItems.isEmpty()) { handleUnqualifiedTask(taskRecord, currentUserId, currentUserName, now); return SubmitResult.unqualified(unqualifiedItems); @@ -1439,27 +1440,41 @@ public class QmsPqcTaskRecordControllerService { .collect(Collectors.joining(",")); } - private List buildUnqualifiedItems(QmsPqcTaskRecordDraftQO request) { + private Map getTaskDetailIdMap(Long taskId) { + return pqcTaskRecordDetailsService.lambdaQuery() + .eq(QmsPqcTaskRecordDetails::getTaskId, taskId) + .list() + .stream() + .filter(detail -> detail.getInspectionPointItemId() != null) + .collect(Collectors.toMap( + QmsPqcTaskRecordDetails::getInspectionPointItemId, + QmsPqcTaskRecordDetails::getId, + (first, second) -> first + )); + } + + private List buildUnqualifiedItems(QmsPqcTaskRecordDraftQO request, Map detailIdMap) { List items = new ArrayList<>(); if (request.getProcessInspections() != null) { for (QmsPqcTaskRecordDraftQO.ProcessInspectionItem item : request.getProcessInspections()) { if (Boolean.FALSE.equals(item.getEnable())) { - items.add(buildUnqualifiedItem(item)); + items.add(buildUnqualifiedItem(item, detailIdMap)); } } } if (request.getProcessInspectionsLevel3() != null) { for (QmsPqcTaskRecordDraftQO.ProcessInspectionLevel3Item item : request.getProcessInspectionsLevel3()) { if (Boolean.FALSE.equals(item.getEnable())) { - items.add(buildUnqualifiedItem(item)); + items.add(buildUnqualifiedItem(item, detailIdMap)); } } } return items; } - private QmsPqcUnqualifiedItemVO buildUnqualifiedItem(QmsPqcTaskRecordDraftQO.ProcessInspectionItem item) { + private QmsPqcUnqualifiedItemVO buildUnqualifiedItem(QmsPqcTaskRecordDraftQO.ProcessInspectionItem item, Map detailIdMap) { QmsPqcUnqualifiedItemVO vo = new QmsPqcUnqualifiedItemVO(); + vo.setId(detailIdMap.get(item.getInspectionPointItemId())); vo.setInspectionContent(item.getInspectionContent()); vo.setInspectionMethods(item.getInspectionMethods()); vo.setInspectionLevel(item.getInspectionLevel()); @@ -1473,8 +1488,9 @@ public class QmsPqcTaskRecordControllerService { return vo; } - private QmsPqcUnqualifiedItemVO buildUnqualifiedItem(QmsPqcTaskRecordDraftQO.ProcessInspectionLevel3Item item) { + private QmsPqcUnqualifiedItemVO buildUnqualifiedItem(QmsPqcTaskRecordDraftQO.ProcessInspectionLevel3Item item, Map detailIdMap) { QmsPqcUnqualifiedItemVO vo = new QmsPqcUnqualifiedItemVO(); + vo.setId(detailIdMap.get(item.getInspectionPointItemId())); vo.setInspectionContent(item.getInspectionContent()); vo.setInspectionMethods(item.getInspectionMethods()); vo.setInspectionLevel(item.getInspectionLevel()); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcUnqualifiedItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcUnqualifiedItemVO.java index 8d0615c2..7ea159f4 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcUnqualifiedItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcUnqualifiedItemVO.java @@ -10,6 +10,11 @@ import java.util.List; @Data public class QmsPqcUnqualifiedItemVO { + /** + * PQC任务明细ID + */ + private Long id; + /** * 检查内容 */