From 26e08d0a0e2b66f2c4e8cf8c99e7fa5b3615009c Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Thu, 11 Jun 2026 10:54:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?pdi=E6=9F=A5=E8=AF=A2=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E9=A1=B9=E6=96=B9=E6=B3=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsPdiStatusItemController.java | 8 ++++ .../QmsPdiStatusItemControllerService.java | 45 +++++++++++++++++++ 2 files changed, 53 insertions(+) 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()); From 869d49941eae919c698906415fa2530e99d8416a Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Thu, 11 Jun 2026 11:42:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?pdi=E6=9F=A5=E8=AF=A2=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E9=A1=B9=E6=96=B9=E6=B3=95=E4=BF=AE=E6=94=B9=20pqc=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=80=BC=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...QmsPdiDetectionRulesControllerService.java | 2 ++ .../QmsPdiStatusItemControllerService.java | 1 - .../QmsPqcTaskRecordControllerService.java | 28 +++++++++++++++---- .../pojo/vo/QmsPqcUnqualifiedItemVO.java | 5 ++++ 4 files changed, 29 insertions(+), 7 deletions(-) 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 7428e79f..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 @@ -439,7 +439,6 @@ public class QmsPdiStatusItemControllerService { } // 2. 提取所有componentsId并去重 - List componentIds = items.stream() List componentIds = items.stream() .map(QmsPdiDetectionRulesStatusItem::getComponentsId) .filter(Objects::nonNull) 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; + /** * 检查内容 */