traffic-audit-server/src/main/java/com/trafficaudit/reportexport/calc/FreightReadinessCheck.java
@@ -120,10 +120,24 @@
            if (totalT != null) sumTurnover += totalT;
            if (totalF == null && abF == null) continue;      // 两侧都没数 → 交给缺数清单(另算)
            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));
            if (belowT < -TOL) issues.add(String.format("货运体检:%s %s 规下周转量为负(全口径 %.4f − 规上 %.4f = %.4f)", period, city, totalT, abT, belowT));
            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));
            }
            // 2026-10-12:②全口径缺(未导)时不再报「规下为负」——上面已单独报「缺②全口径」,
            // 若这里仍按 0 − 规上 算,会对每个市州多刷一条假阳性(值不是负、是缺),把真问题淹没。
            if (totalF != null) {
                double belowF = totalF - (abF == null ? 0 : abF);
                if (belowF < -TOL) issues.add(String.format("货运体检:%s %s 规下货运量为负(全口径 %.4f − 规上 %.4f = %.4f)", period, city, totalF, abF, belowF));
            }
            if (totalT != null) {
                double belowT = totalT - (abT == null ? 0 : abT);
                if (belowT < -TOL) issues.add(String.format("货运体检:%s %s 规下周转量为负(全口径 %.4f − 规上 %.4f = %.4f)", period, city, totalT, abT, belowT));
            }
            if (totalF != null && abF == null) issues.add(String.format("货运体检:%s %s 有全口径但无规上记录 → 规下等于全口径(%.4f),疑①漏报", period, city, totalF));
            if (totalF != null && abF != null && totalF < abF) issues.add(String.format("货运体检:%s %s 全口径 %.4f 小于规上 %.4f", period, city, totalF, abF));