From 0d30ee2df567d12e62fb1bf268bf0cec313856c6 Mon Sep 17 00:00:00 2001 From: kkfluous Date: Wed, 29 Apr 2026 19:41:57 +0800 Subject: [PATCH] =?UTF-8?q?fix(energy):=20=E6=B0=A2=E8=83=BD=E7=AB=99?= =?UTF-8?q?=E7=82=B9=20fallback=20=E5=8C=BA=E5=88=86=E3=80=8C=E6=9C=AA?= =?UTF-8?q?=E5=85=B3=E8=81=94=E3=80=8D=E4=B8=8E=E3=80=8C=E6=9C=AA=E7=9F=A5?= =?UTF-8?q?=20#ID=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 之前两张 site 表都查不到的账单,UI 一律显示「未知站点」。 其中 137 条 station_id 为 NULL(账单未填站点),3 条 station_id 有值但站点表没收录(站点删除/字典漂移)。账单上的 cost_price 是真实的, 所以会出现「未知站点 25 元/Kg」这种可追溯但难定位的情况。 现在 SQL fallback 改为: - station_id IS NULL → 「未关联站点」 - station_id 不为空但 join 不上 → 「未知站点 #ID」 方便定位具体是哪条字典记录缺失。 Co-Authored-By: Claude Opus 4.7 (1M context) --- src/server/routes/energy/index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/server/routes/energy/index.ts b/src/server/routes/energy/index.ts index 24979ba..bdedcef 100644 --- a/src/server/routes/energy/index.ts +++ b/src/server/routes/energy/index.ts @@ -85,7 +85,9 @@ app.get('/hydrogen/overview', async (c) => { // Top5 加氢站(本年) const [top5Rows] = await pool.query( `SELECT b.hydrogen_station_id AS id, - COALESCE(s.short_name, s.name, os.fixed_station_name, os.station_name, '未知站点') AS name, + COALESCE(s.short_name, s.name, os.fixed_station_name, os.station_name, + CASE WHEN b.hydrogen_station_id IS NULL THEN '未关联站点' + ELSE CONCAT('未知站点 #', b.hydrogen_station_id) END) AS name, SUM(b.hydrogen_quantity) AS kg, SUM(b.cost_expense) AS fee FROM tab_energy_hydrogen_bill b @@ -162,7 +164,9 @@ app.get('/hydrogen/daily', async (c) => { const [stationRows] = await pool.query( `SELECT DATE_FORMAT(${HYDROGEN_LOCAL}, '%Y-%m-%d') AS d, b.hydrogen_station_id AS stationId, - COALESCE(s.short_name, s.name, os.fixed_station_name, os.station_name, '未知站点') AS stationName, + COALESCE(s.short_name, s.name, os.fixed_station_name, os.station_name, + CASE WHEN b.hydrogen_station_id IS NULL THEN '未关联站点' + ELSE CONCAT('未知站点 #', b.hydrogen_station_id) END) AS stationName, SUM(b.hydrogen_quantity) AS kg, AVG(b.cost_price) AS pricePerKg FROM tab_energy_hydrogen_bill b