fix: classify equivalent outbound no-stock results

This commit is contained in:
zgw
2026-09-15 10:56:11 +08:00
parent 8dbdd411bf
commit acc6994385
3 changed files with 152 additions and 1 deletions

View File

@@ -236,7 +236,7 @@ public class ShadowPlanningEngine {
int inserted = inputMapper.insertComparison(
UUID.randomUUID().toString(), observation.warehouseId(), "OUTBOUND_COMPARE",
observation.snapshotGeneration(), observation.snapshotSynchronizedAt(),
observation.sourceSignature(), "LEGACY_" + nullSafe(legacyResultCode),
observation.sourceSignature(), outboundComparisonCode(observation, legacyResultCode),
outboundComparisonReason(observation, legacyResultCode));
requireComparisonInserted(inserted);
});
@@ -600,6 +600,15 @@ public class ShadowPlanningEngine {
? result + "_CONSERVATIVE" : result;
}
private String outboundComparisonCode(OutboundShadowObservation observation, String legacyCode) {
if (observation.observed()
&& "ERROR_STOCK_NOT_FOUND".equals(observation.resultCode())
&& "3".equals(legacyCode)) {
return "MATCH_NO_INVENTORY";
}
return "LEGACY_" + nullSafe(legacyCode);
}
private boolean isBlank(String value) {
return value == null || value.isBlank();
}