traffic-audit-server/src/main/java/com/trafficaudit/reportexport/calc/FreightReadinessCheck.java
@@ -120,6 +120,14 @@
            if (totalT != null) sumTurnover += totalT;
            if (totalF == null && abF == null) continue;      // 两侧都没数 → 交给缺数清单(另算)
            if (totalF == null && abF != null) {
                issues.add(String.format("货运体检:%s %s 缺②全口径(规上 %.4f 在、全口径缺)→ 规下无法计算"
                        + "(需先导《货运量周转量表》当月档)", period, city, abF));
            }
            if (totalT == null && abT != null) {
                issues.add(String.format("货运体检:%s %s 缺②全口径周转量(规上 %.4f 在、全口径缺)→ 规下无法计算",
                        period, city, abT));
            }
            double belowF = (totalF == null ? 0 : totalF) - (abF == null ? 0 : abF);
            double belowT = (totalT == null ? 0 : totalT) - (abT == null ? 0 : abT);
            if (belowF < -TOL) issues.add(String.format("货运体检:%s %s 规下货运量为负(全口径 %.4f − 规上 %.4f = %.4f)", period, city, totalF, abF, belowF));