fix: preserve complete historical dashboard days

This commit is contained in:
2026-10-13 13:43:13 +08:00
parent 496fc11b0a
commit cebcdfb66e
2 changed files with 33 additions and 1 deletions
@@ -17,7 +17,9 @@ public final class DashboardSalesPolicy {
Instant upper=c.salesCoveredUntil()==null?null:(c.salesCoveredUntil().isBefore(end)?c.salesCoveredUntil():end);
boolean intersects=lower!=null&&upper!=null&&lower.isBefore(upper);
boolean invalid=actual!=null&&actual.invalidRowCount()!=null&&actual.invalidRowCount()>0;
boolean trusted="VALID".equals(c.salesStatus())&&!c.rebuildRequired();
// Global recency describes how far collection has progressed, not whether an
// already published historical day has complete coverage. Keep STALE on context.
boolean trusted=("VALID".equals(c.salesStatus())||"STALE".equals(c.salesStatus()))&&!c.rebuildRequired();
boolean complete=sourceKnown&&trusted&&!invalid&&day.isBefore(c.anchorDate())&&c.completeDayFrom()!=null&&c.completeDayUntil()!=null
&&!day.isBefore(c.completeDayFrom())&&day.isBefore(c.completeDayUntil())&&intersects&&lower.equals(start)&&upper.equals(end);
BigDecimal known=sourceKnown&&actual!=null?actual.observedQuantity():null;