|
|
@ -459,16 +459,28 @@ public class SampleProofTrackingServiceImpl implements SampleProofTrackingServic |
|
|
if (isTrackingProofingCompleted(rowData.getProofingStatus())) { |
|
|
if (isTrackingProofingCompleted(rowData.getProofingStatus())) { |
|
|
return "Complete"; |
|
|
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 ""; |
|
|
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); |
|
|
String pendingProcessLabel = getFirstPendingProcessLabelForExport(rowData, processColumns, selectedBuNo, buProcessConfigMap); |
|
|
return statusPrefix + "-" + pendingProcessLabel; |
|
|
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, |
|
|
private String getFirstPendingProcessLabelForExport(ProofTrackingData rowData, |
|
|
List<ProofTrackingProcessColumnData> processColumns, |
|
|
List<ProofTrackingProcessColumnData> processColumns, |
|
|
String selectedBuNo, |
|
|
String selectedBuNo, |
|
|
|