From 4f0740630c503114b90c3108983f4bd7272deb37 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Fri, 11 Sep 2026 14:58:33 +0800 Subject: [PATCH] =?UTF-8?q?package=20=E6=97=A5=E6=9C=9F=20>=20baseline?= =?UTF-8?q?=EF=BC=9ADelay-{=E5=BD=93=E5=89=8D=E5=B7=A5=E5=BA=8F}=20package?= =?UTF-8?q?=20=E6=97=A5=E6=9C=9F=20=E2=89=A4=20baseline=EF=BC=9AOn=20sched?= =?UTF-8?q?ule-{=E5=BD=93=E5=89=8D=E5=B7=A5=E5=BA=8F}?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SampleProofTrackingServiceImpl.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 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 3ae88b00..49312dfc 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 @@ -459,16 +459,28 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic if (isTrackingProofingCompleted(rowData.getProofingStatus())) { return "Complete"; } - String requiredDeliveryDate = toDateString(rowData.getRequiredDeliveryDate()); - if (isBlank(requiredDeliveryDate)) { + String packageDate = resolveTrackingPackageDateForExport(rowData); + String baseline = toDateString(rowData.getBaseline()); + if (isBlank(packageDate) || isBlank(baseline)) { return ""; } - String today = toDateString(new Date()); - String statusPrefix = today.compareTo(requiredDeliveryDate) <= 0 ? "On schedule" : "Delay"; + // Delay 按 Delivery&Package 相对原计划判定:package 晚于 baseline 即延期, + // 不再用“今天 vs 预计完成日期”,避免计划已改期后仍显示 On schedule。 + String statusPrefix = packageDate.compareTo(baseline) > 0 ? "Delay" : "On schedule"; String pendingProcessLabel = getFirstPendingProcessLabelForExport(rowData, processColumns, selectedBuNo, buProcessConfigMap); return statusPrefix + "-" + pendingProcessLabel; } + private String resolveTrackingPackageDateForExport(ProofTrackingData rowData) { + String packageDate = toDateString(rowData == null ? null : rowData.getRequiredDeliveryDate()); + if (!isBlank(packageDate)) { + return packageDate; + } + // required_delivery_date 与 Delivery&Package 工序日期同一口径,主字段缺失时回退工序实际日期。 + ProofTrackingProcessValueData processValue = resolveProcessValueByCode(rowData, DELIVERY_PACKAGE_PROCESS_CODE); + return toDateString(processValue == null ? null : processValue.getActualDate()); + } + private String getFirstPendingProcessLabelForExport(ProofTrackingData rowData, List processColumns, String selectedBuNo,