# KPI 税合计数据源全局修复 (2026-08-01)

## 根因

`shipment_status.json` 中 **75% 订单 taxTotal=0**（MCP pipeline pitfall #40: `double_value` 0 被 Python falsy 吞掉）。

典型症状：看板/订单管理所有税合计偏低 ~4-5 倍。

## 全局修复模式

三个函数必须改用 KPI 数据源：

### 1. renderDashboard → fullYearTax

```javascript
// ❌ orders.reduce() — 只统计物流订单，75% 零税
// ✅ KPI 数据
var dash = state.data.kpiDashboard || {};
var prog = state.data.kpiProgress || {};
var fullYearTax = (dash.total_h1 || 0) + (prog.total || 0); // H1 实际 + H2 当月
```

### 2. getShipmentOrders → fullYearTax

```javascript
// ❌ var fullYearTax = shipments.full_year_tax || 0; // 始终为 0
// ✅ 
var dash = state.data.kpiDashboard || {};
var prog = state.data.kpiProgress || {};
var fullYearTax = (dash.total_h1 || 0) + (prog.total || 0);
```

### 3. renderOrders → 本月/本季/本年

```javascript
// 本月
if (orderState.analysisPeriod === 'month') {
    var kpiProg = state.data.kpiProgress || {};
    if (kpiProg.total && kpiProg.total > ps.taxTotal) ps.taxTotal = kpiProg.total;
}
// 本年
if (orderState.analysisPeriod === 'year') {
    ps.taxTotal = fullTax; // fullTax 已从 KPI 取
}
// 本季
if (orderState.analysisPeriod === 'quarter') {
    ps.taxTotal = prog.total || ps.taxTotal;
}
```

## 数据验证

```bash
curl -s "<url>/数据/kpi_dashboard.json" | python3 -c "import json,sys;d=json.load(sys.stdin);print(f'total_h1: {d[\"total_h1\"]/1e4:.1f}万')"
curl -s "<url>/数据/kpi_progress.json" | python3 -c "import json,sys;d=json.load(sys.stdin);print(f'total: {d[\"total\"]/1e4:.1f}万')"
```
