From b0065b342061e08941ab8a1bf41e433b9b54ba49 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Mon, 17 Aug 2026 11:47:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E5=88=97=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SampleProofTrackingServiceImpl.java | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/sampletracking/service/impl/SampleProofTrackingServiceImpl.java b/src/main/java/com/xujie/sys/modules/sampletracking/service/impl/SampleProofTrackingServiceImpl.java index 642391ff..c3912c74 100644 --- a/src/main/java/com/xujie/sys/modules/sampletracking/service/impl/SampleProofTrackingServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/sampletracking/service/impl/SampleProofTrackingServiceImpl.java @@ -496,7 +496,7 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic return new ArrayList<>(); } ProofTrackingBuProcessConfigData row = - buildBuProcessConfigRow(DEFAULT_PROCESS_CONFIG_SITE, DEFAULT_PROCESS_CONFIG_BU, defaultRows); + buildBuProcessConfigRow(DEFAULT_PROCESS_CONFIG_SITE, DEFAULT_PROCESS_CONFIG_BU, defaultRows, null); List rows = new ArrayList<>(); if (row != null) { rows.add(row); @@ -513,11 +513,14 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic if (isBlank(buNo)) { continue; } + // 仅将 BU 专属落库行视为“已勾选”;默认模板新增工序若未在 BU 落库,应回显为未勾选。 + List buRows = fetchAllProcessColumns(site, buNo); List processRows = resolveProcessColumnsForBuConfig(site, buNo); if (processRows.isEmpty()) { continue; } - ProofTrackingBuProcessConfigData row = buildBuProcessConfigRow(site, buNo, processRows); + List activeCodes = buRows.isEmpty() ? null : extractActiveProcessCodes(buRows); + ProofTrackingBuProcessConfigData row = buildBuProcessConfigRow(site, buNo, processRows, activeCodes); if (row != null) { rows.add(row); } @@ -584,7 +587,8 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic private ProofTrackingBuProcessConfigData buildBuProcessConfigRow(String site, String buNo, - List processRows) { + List processRows, + List preferredActiveCodes) { if (isBlank(buNo) || processRows == null || processRows.isEmpty()) { return null; } @@ -592,7 +596,25 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic if (processOrderCodes.isEmpty()) { return null; } + List activeCodes = (preferredActiveCodes == null || preferredActiveCodes.isEmpty()) + ? extractActiveProcessCodes(processRows) + : preferredActiveCodes; + List validCodes = normalizeProcessCodes(activeCodes, processOrderCodes); + boolean showAll = validCodes.size() >= processOrderCodes.size(); + ProofTrackingBuProcessConfigData row = new ProofTrackingBuProcessConfigData(); + row.setSite(site); + row.setBuNo(buNo); + row.setShowAll(showAll); + row.setProcessOrderCodes(new ArrayList<>(processOrderCodes)); + row.setProcessCodes(showAll ? new ArrayList<>(processOrderCodes) : validCodes); + return row; + } + + private List extractActiveProcessCodes(List processRows) { List activeCodes = new ArrayList<>(); + if (processRows == null || processRows.isEmpty()) { + return activeCodes; + } for (ProofTrackingProcessColumnData item : processRows) { if (item == null || isBlank(item.getCode())) { continue; @@ -602,15 +624,7 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic activeCodes.add(item.getCode().trim()); } } - List validCodes = normalizeProcessCodes(activeCodes, processOrderCodes); - boolean showAll = validCodes.size() >= processOrderCodes.size(); - ProofTrackingBuProcessConfigData row = new ProofTrackingBuProcessConfigData(); - row.setSite(site); - row.setBuNo(buNo); - row.setShowAll(showAll); - row.setProcessOrderCodes(new ArrayList<>(processOrderCodes)); - row.setProcessCodes(showAll ? new ArrayList<>(processOrderCodes) : validCodes); - return row; + return activeCodes; } private void saveProcessColumnConfig(String site,