fix(energy): 待核对上线期初改为 2026-01-01,并统一前后端口径
待核对订单的起算日原先硬编码为 2026-05-01,散落在后端 SQL、看板诊断卡 和下钻提示三处,改一处就会与另两处口径不一致。 - 新增 shared/hydrogen-verify.ts 的 HYDROGEN_VERIFY_START_DATE 作为唯一来源 - repository 的 unverified 过滤条件改为引用该常量,起算日提前到 2026-01-01 - 看板桌面/移动诊断卡与待核对下钻提示同步显示新日期 - 契约测试锁定字面量,防止日期被无意改动 仅影响 verifyScope=unverified;all / verified 口径不变。
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
export const HYDROGEN_MIN_DATE = '2024-01-01';
|
||||
|
||||
// 核对功能上线期初(含当日):待核对口径的唯一起算日,前端文案同样引用该常量。
|
||||
export { HYDROGEN_VERIFY_START_DATE } from '../../../shared/hydrogen-verify.js';
|
||||
|
||||
// hydrogen_fuel_ledger.refuel_time 已是业务本地时间字面值,直接使用即可(不再 +8 小时)
|
||||
export const HYDROGEN_TABLE = 'hydrogen_fuel_ledger';
|
||||
export const HYDROGEN_LOCAL = `refuel_time`;
|
||||
|
||||
@@ -13,6 +13,7 @@ import {
|
||||
HYDROGEN_MIN_DATE,
|
||||
HYDROGEN_TABLE,
|
||||
HYDROGEN_TENANT_ID,
|
||||
HYDROGEN_VERIFY_START_DATE,
|
||||
MANUAL_RECHARGE_SOURCE,
|
||||
NORMALIZED_PLATE,
|
||||
NORMALIZED_PLATE_UNICODE,
|
||||
@@ -765,7 +766,8 @@ export function buildFilterClauses(input: {
|
||||
if (verifyScope === "unverified")
|
||||
clauses.push(
|
||||
"LOWER(COALESCE(NULLIF(TRIM(b.verify_status), ''), 'unverified')) <> 'verified'",
|
||||
"b.refuel_time >= '2026-05-01'",
|
||||
// 待核对只统计核对上线期初(含当日)之后的订单,期初之前的历史订单不算待核对。
|
||||
`b.refuel_time >= '${HYDROGEN_VERIFY_START_DATE}'`,
|
||||
);
|
||||
return { clauses, params };
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import {
|
||||
registerHydrogenBiV2Routes,
|
||||
type HydrogenBiV2Dependencies,
|
||||
} from "./hydrogen-bi-v2.js";
|
||||
import { HYDROGEN_VERIFY_START_DATE } from "./constants.js";
|
||||
|
||||
interface QueryCall {
|
||||
sql: string;
|
||||
@@ -32,6 +33,9 @@ interface CacheCall {
|
||||
}
|
||||
|
||||
test("待核对的汇总和下钻统一从核对上线期初起统计,不影响其他核对范围", async () => {
|
||||
// 期初日期以字面量锁定:它同时被前端文案引用,改动必须是有意的。
|
||||
assert.equal(HYDROGEN_VERIFY_START_DATE, "2026-01-01");
|
||||
const cutoverClause = `b.refuel_time >= '${HYDROGEN_VERIFY_START_DATE}'`;
|
||||
for (const scope of ["unverified", "all", "verified"]) {
|
||||
for (const endpoint of ["overview", "drill"]) {
|
||||
const calls: QueryCall[] = [];
|
||||
@@ -44,7 +48,7 @@ test("待核对的汇总和下钻统一从核对上线期初起统计,不影
|
||||
const ledgerQueries = calls.filter(({ sql }) => sql.includes("FROM hydrogen_fuel_ledger b"));
|
||||
assert.ok(ledgerQueries.length > 0);
|
||||
for (const { sql } of ledgerQueries) {
|
||||
assert.equal(sql.includes("b.refuel_time >= '2026-05-01'"), scope === "unverified");
|
||||
assert.equal(sql.includes(cutoverClause), scope === "unverified");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user