From 5bb2f41a0c725707092de765f15e859857a9ad0a Mon Sep 17 00:00:00 2001 From: funny <834502597@qq.com> Date: Wed, 27 May 2026 11:00:25 +0800 Subject: [PATCH] =?UTF-8?q?PQC=E4=BB=BB=E5=8A=A1=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsPqcTaskRecordControllerService.java | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) 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 534ff373..aa707359 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 @@ -876,6 +876,23 @@ public class QmsPqcTaskRecordControllerService { private void saveTaskDetails(Long taskId, QmsPqcTaskRecordDraftQO request) { LocalDateTime now = LocalDateTime.now(); + // 删除前:先记录旧详情的 inspectionPointItemId,按 type 分组 + List oldDetails = pqcTaskRecordDetailsService.lambdaQuery() + .eq(QmsPqcTaskRecordDetails::getTaskId, taskId) + .list(); + + // type=1 的 inspectionPointItemId 列表(关键物料) + List type1ItemIds = oldDetails.stream() + .filter(d -> d.getType() != null && d.getType() == 1) + .map(QmsPqcTaskRecordDetails::getInspectionPointItemId) + .collect(Collectors.toList()); + + // type=0 的 inspectionPointItemId 列表(工序检查,一二级+三级按顺序) + List type0ItemIds = oldDetails.stream() + .filter(d -> d.getType() != null && d.getType() == 0) + .map(QmsPqcTaskRecordDetails::getInspectionPointItemId) + .collect(Collectors.toList()); + // 删除旧详情 pqcTaskRecordDetailsService.lambdaUpdate() .eq(QmsPqcTaskRecordDetails::getTaskId, taskId) @@ -883,10 +900,12 @@ public class QmsPqcTaskRecordControllerService { // 保存关键物料采集 if (request.getMaterialCollections() != null) { - for (QmsPqcTaskRecordDraftQO.MaterialCollectionItem item : request.getMaterialCollections()) { + for (int i = 0; i < request.getMaterialCollections().size(); i++) { + QmsPqcTaskRecordDraftQO.MaterialCollectionItem item = request.getMaterialCollections().get(i); QmsPqcTaskRecordDetails detail = new QmsPqcTaskRecordDetails() .setTaskId(taskId) .setType((short) 1) + .setInspectionPointItemId(i < type1ItemIds.size() ? type1ItemIds.get(i) : null) .setSelfTestData(item.getSerialNo()) .setReviewData(item.getBatchNo()) .setSelfTestAttachments(serializeFileList(item.getFiles())) @@ -897,10 +916,12 @@ public class QmsPqcTaskRecordControllerService { // 保存工序检查(一二级) if (request.getProcessInspections() != null) { - for (QmsPqcTaskRecordDraftQO.ProcessInspectionItem item : request.getProcessInspections()) { + for (int i = 0; i < request.getProcessInspections().size(); i++) { + QmsPqcTaskRecordDraftQO.ProcessInspectionItem item = request.getProcessInspections().get(i); QmsPqcTaskRecordDetails detail = new QmsPqcTaskRecordDetails() .setTaskId(taskId) .setType((short) 0) + .setInspectionPointItemId(i < type0ItemIds.size() ? type0ItemIds.get(i) : null) .setSelfTestData(item.getSelfTestData()) .setReviewData(item.getReviewData()) .setReviewEnable(item.getEnable()) @@ -913,12 +934,16 @@ public class QmsPqcTaskRecordControllerService { } } - // 保存工序检查(三级) + // 保存工序检查(三级),index 接在一二级后面 if (request.getProcessInspectionsLevel3() != null) { - for (QmsPqcTaskRecordDraftQO.ProcessInspectionLevel3Item item : request.getProcessInspectionsLevel3()) { + int offset = request.getProcessInspections() != null ? request.getProcessInspections().size() : 0; + for (int i = 0; i < request.getProcessInspectionsLevel3().size(); i++) { + QmsPqcTaskRecordDraftQO.ProcessInspectionLevel3Item item = request.getProcessInspectionsLevel3().get(i); + int idx = offset + i; QmsPqcTaskRecordDetails detail = new QmsPqcTaskRecordDetails() .setTaskId(taskId) .setType((short) 0) + .setInspectionPointItemId(idx < type0ItemIds.size() ? type0ItemIds.get(idx) : null) .setQcTestData(item.getQcTestData()) .setReviewEnable(item.getEnable()) .setQcTestAttachments(serializeFileList(item.getQcTestFiles()))