shishengliang
da87d7e144
fix(assets): 移除故障提报来源展示
ci/woodpecker/push/woodpecker Pipeline was successful
2026-10-16 18:23:58 +08:00
shishengliang
097e882886
feat(assets): 合入完整故障管理并升级至 v1.2.3
...
ci/woodpecker/push/woodpecker Pipeline was successful
Integrate fault management from fault_1013_improve at 1674f05 , including overview, trend and weekly reports, multidimensional analysis, authorized fault details, L1 follow-up, source breakdown and Excel exports. Adapt database imports, cross-layer tests and workbook helpers to the main architecture; retain unrelated main functionality.
Validation: TypeScript check, 502 tests, production build, desktop/mobile interactions and six-sheet Excel export passed.
2026-10-16 18:18:36 +08:00
shishengliang
589f06391f
Merge asset analysis exports into main and release v1.2.2
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-28 17:05:52 +08:00
shishengliang
40ef05d49b
feat(assets): release v1.1.18 with two-sheet analysis exports and flow contract details
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-28 17:03:59 +08:00
shishengliang
fd585c991f
Merge asset assistant brand update into main
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-28 13:46:56 +08:00
shishengliang
807453b5fd
fix(asset-ai): rename sidebar brand to 羚牛·资产智能
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-28 13:46:51 +08:00
shishengliang
358e2ecf4f
Merge inventory permission and preview fixes into main
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-28 13:16:53 +08:00
shishengliang
48cf429468
fix(assets): expose full inventory for scoped users and stabilize previews
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-28 13:16:12 +08:00
shishengliang
fb86bbce3c
Merge Profile0928 asset analysis and permission previews into main
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-28 12:34:01 +08:00
shishengliang
f1b3f8d3da
feat(assets): add dimension analysis and authorized user previews
...
ci/woodpecker/push/woodpecker Pipeline was successful
Refactor asset drilldowns with combined dimension filters, parent summaries and progressive loading. Add the hidden /who read-only permission preview with scoped authorization, identity mapping and audit logging. Refine inventory counts and AI问数 presentation.
2026-09-28 12:29:51 +08:00
shishengliang
e7916b9ee2
Merge mobile AI and operating query fixes into main
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 18:49:31 +08:00
shishengliang
6de77adb47
fix(asset-ai): refine mobile viewport and operating query scope
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 18:49:26 +08:00
shishengliang
7d8bff4660
Merge concise AI answers and mobile UI refinements into main
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 18:36:23 +08:00
shishengliang
5be6240bbf
feat(asset-ai): simplify count answers and refine mobile conversation layout
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 18:35:31 +08:00
shishengliang
fd514177c6
ui: remove footer hints and floating feedback entry points
2026-09-23 18:35:31 +08:00
shishengliang
4ebcf355fc
Merge vehicle status answers and chat styling into main
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 18:06:00 +08:00
shishengliang
d3fcec7dce
fix(asset-ai): answer vehicle status from authorized vehicle facts
ci/woodpecker/push/woodpecker Pipeline was canceled
2026-09-23 18:05:10 +08:00
shishengliang
d3a56b2cc1
style(asset-ai): align user messages as compact chat bubbles
2026-09-23 18:05:10 +08:00
shishengliang
04045b41db
Merge AI-generated analysis and inventory drilldowns into main
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 17:54:28 +08:00
shishengliang
dc0923b566
feat(asset-ai): generate contextual presentations and drilldown plans
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 17:52:33 +08:00
shishengliang
b5a48b6417
feat(assets): refine compact inventory drilldowns and exact subtotal scopes
2026-09-23 17:52:33 +08:00
shishengliang
c6bf129564
Merge asset statistics and contextual AI assistant into main
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 16:09:14 +08:00
shishengliang
d20bc71efe
ui(assets): move AI assistant to the bottom feedback position
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 16:02:50 +08:00
shishengliang
7e9760f5db
feat(asset-ai): add contextual analysis and unmet-demand feedback
2026-09-23 16:01:10 +08:00
shishengliang
0a32392215
feat(assets): refine inventory presentation and abnormal vehicle details
2026-09-23 16:00:59 +08:00
shishengliang
0190bd6174
Merge asset UI rollback into main, retaining inventory details and AI
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 14:47:12 +08:00
shishengliang
3d4749f28f
fix(assets): restore classic UI while retaining inventory subsets and AI
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 14:44:12 +08:00
shishengliang
1a48b607b2
fix(auth): allow read-only asset queries for password accounts
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 14:42:55 +08:00
shishengliang
269e3139a3
Merge feature/asset-statistics into main and release v1.2.1
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-23 14:28:26 +08:00
shishengliang
0c4a9bcd05
feat(assets): add DeepSeek assistant with streaming results and voice input
2026-09-23 14:16:36 +08:00
shishengliang
822aabf2ca
feat(assets): migrate asset views and reconcile inventory drilldowns
2026-09-23 14:16:22 +08:00
shishengliang
b0cba26fbb
feat: improve asset inventory statistics and responsive UX (v1.1.16)
2026-09-23 11:07:36 +08:00
shishengliang
9b0980e349
fix: refresh vehicle asset statistics every 5 seconds
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-22 19:50:58 +08:00
shishengliang
96b64a7872
fix: count deliveries awaiting customer signature
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-20 17:12:03 +08:00
shishengliang
61406497cc
fix: show mileage query loading animation and bump version to 1.1.15
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-20 10:07:08 +08:00
shishengliang
b15951f08b
fix: collapse daily vehicle flow details by default
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-20 09:54:36 +08:00
shishengliang
8fb574599b
fix: align asset customer data with OneOS and refine statistics display
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-20 09:51:31 +08:00
shishengliang
746edeb72c
fix(mileage): preserve anomalous odometer readings and show data quality
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-18 09:54:08 +08:00
shishengliang
9c13ab6d3b
fix(energy): use new hydrogen site master data
...
ci/woodpecker/push/woodpecker Pipeline was successful
Use new_hydrogen_site for daily and overview station names and regional aggregation, with empty-name fallback. Include the OneOS mileage reconciliation investigation report.
2026-09-16 11:54:27 +08:00
shishengliang
c2f21a3a8a
fix: restore post-v1.1.14 features while preserving asset updates
...
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/manual/woodpecker Pipeline was canceled
Undo the full-tree rollback in 6ea1b3d and restore the pre-rollback v1.2.0 code. Preserve the new asset flow rules, abnormal inventory separation, range drilldowns and date picker; adapt the regression test to the restored routes layout.
2026-09-16 10:48:32 +08:00
shishengliang
0c26b973ef
feat(assets): align flow statistics and separate abnormal inventory
...
ci/woodpecker/push/woodpecker Pipeline failed
Use operations signing times and delivery completion statuses; include replacement deliveries in delivery totals with range drilldowns and exports. Separate abnormal vehicles from inventory, add a date range picker, and enable CI for feature/asset-statistics.
2026-09-16 10:35:50 +08:00
shishengliang
6ea1b3d5dd
revert: restore v1.1.14 ( 37a9f303)
ci/woodpecker/push/woodpecker Pipeline failed
2026-09-16 09:29:30 +08:00
shishengliang
c49a02e3d9
fix: restore local mileage monitoring queries
ci/woodpecker/push/woodpecker Pipeline was successful
2026-09-16 09:10:39 +08:00
shishengliang
7c8e886663
fix(energy): 无车牌或未关联羚牛车辆的订单不再计入待核对
...
待核对原先只看「未核对 + 期初之后」,会把没有核对对象的流水也算进
待核对笔数与金额,虚高 KPI 并污染下钻列表。
在 unverified 过滤条件里补两条限定:
- NULLIF(TRIM(license_plate), '') IS NOT NULL:无车牌无核对对象
- COALESCE(vehicle_id, 0) <> 0:vehicle_id 为 NULL/0 即未关联羚牛车辆库
条件加在 buildFilterClauses 的 unverified 分支,汇总 KPI 与下钻共用,
因此两处口径自动一致;all / verified 不受影响。下钻弹窗提示同步说明口径。
2026-09-11 11:26:55 +08:00
shishengliang
c4e2c03348
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 口径不变。
2026-09-11 11:17:38 +08:00
dsh-agent
25e53b8f66
refactor(stage16): 里程域移入 repository,后端分层全部完成
...
改动
- 新增 mileage/repository.ts:18 个查询函数,覆盖
vehicle-info(含搬走的 VEHICLE_INFO_SQL 共享常量)、trend、监控缓存、targets(8 条)、
daily-report-store(5 条)、daily-report-service。
- 6 个含 SQL 的文件改为调用 repository;路由/服务层不再出现 SQL 文本。
- 日报写入的两个函数改为返回 affectedRows(调用方本来只用它),而不是行数组。
- 架构守护的"已完整分层"清单加入 mileage —— 至此八个域全部在守护范围内。
SQL 保持性验证
- 逐字比对:改造前 6 个文件里的 19 条 SQL 字面量,除"动态 INSERT 关键字"一处外,
全部在 repository.ts 中原样出现。
- 那一处是 `${insert} INTO ${TABLE}`(insert 为 'REPLACE' | 'INSERT IGNORE'),
改为 `${replace ? "REPLACE" : "INSERT IGNORE"}`;已渲染两个分支与原文本逐字比对,均为 identical。
验证
- 全量 lint / test(191) / build 全绿,可达性 0 未引用文件。
- 里程域的模型层测试(cache-model / oneos-model / daily-report-model)以及依赖里程的
调度、车辆热力图契约测试全部通过。
2026-09-11 10:57:29 +08:00
dsh-agent
9750d35ba4
refactor(stage15): 氢能 v2 移入 repository,能源域完成并加入守护清单
...
改动
- hydrogen-bi-v2.ts 的 14 条查询移入 energy/repository.ts(SQL 与参数表达式逐条对应)。
- 片段组装也随之搬走,因为它们本质是 SQL 构造,留在路由里会让"路由不含 SQL"形同虚设:
resolvedWhere / stationMasterRegionSql / buildFilterClauses / buildGroupSelect /
buildGroupExpression / buildScopedWhere。
- 承担方映射片段(CUSTOMER/COMPANY/OTHER_BEARING_ORDER)移入 constants.ts 供多处共享。
- 结果形状从 mysql2 的 [rows, fields] 改为直接返回 rows,路由侧 13 处 [0] 索引同步调整。
- 架构守护的"已完整分层"清单加入 energy(现为 7 个域)。
提取方式与一次失误
- 查询文本用"反引号定界 + 括号配对"扫描提取。第一次用纯括号配对扫描时,
因为把 SQL 文本里的括号也算了进去,导致调用点跨度越界、文件被改坏;
已从 git 恢复并改用反引号定界(并对跨度做了"严格递增且不重叠"的断言)后一次通过。
- 中途还有一次变量写错文件(把 repository 内容写进了路由文件),
被随后的正常写入覆盖,未造成实际损坏;已核对两个文件的首行与关键符号确认无误。
验证
- energy/routes.test.ts 的 13 个用例(含氢能 v2 的口径、利润、账单、路由顺序、
SQL 与参数指纹)在提取前后全部通过。
- 全量 lint / test(191) / build 全绿,可达性 0 未引用文件。
2026-09-11 10:53:56 +08:00
dsh-agent
7802e5b0eb
refactor(stage14): 单站日报 10 条查询移入 repository(能源域四分之三)
...
改动
- energy/hydrogen-station-board.ts 的 10 条查询全部移入 energy/repository.ts,
参数表达式逐条对应(含区间、站点、以及租户与手工充值来源的固定顺序)。
- 相关 SQL 片段助手搬进 constants.ts 并导出:
NORMALIZED_PLATE / NORMALIZED_PLATE_UNICODE / EXTERNAL_CUSTOMER_MAP_CTE,
以及 HYDROGEN_TENANT_ID / MANUAL_RECHARGE_SOURCE。
它们本质是 SQL,继续留在路由里会让"路由不含 SQL"形同虚设;放 constants.ts
是因为被多条查询共享,避免复制。
- 路由文件随之删掉 4 个只为 SQL 服务的 constants 导入(HYDROGEN_BASE_WHERE /
_B / HYDROGEN_LOCAL / HYDROGEN_TABLE),它们已不再被该文件使用。
- 架构守卫允许 constants.ts 存放共享 SQL 片段,并注明理由。
提取方式
- 用平衡括号扫描从原文件按顺序取出 10 条 SQL 与各自的参数数组(含查询 10 的多行参数),
按调用点跨度精确替换,避免手工转写 200 余行 SQL。
验证
- energy/routes.test.ts 的 13 个既有用例在提取前后均通过,其中包含单站看板的
SQL 与参数断言(迁移未改变查询文本、参数顺序与响应口径)。
- 全量 lint / test(191) / build 全绿,可达性 0 未引用文件。
未完成
- hydrogen-bi-v2.ts 仍有 7 条带 ${sqlWhere} / ${groupOrder} 等动态插值的查询,
需要把 where 组装函数一并搬进 repository;完成后再把 energy 加入守护清单。
2026-09-11 10:48:35 +08:00
dsh-agent
e4c8195ede
refactor(stage13): 能源域先行搬迁电能与 ETC 的 SQL(该域完成一半)
...
改动
- 新增 energy/repository.ts:电能总览 KPI、本月逐日、最近有数据月份、昨日电量、
按日区间查询、ETC 汇总,共 6 个查询函数(SQL 与参数逐字保留)。
- electric.ts / etc.ts 改为调用 repository;两者本就是 register*(app, deps) 形态,
因此这次是纯粹的 SQL 位置迁移,没有改接口契约。
- 车辆归属筛选片段 electricKindClause 也移入 repository:
它本质是 SQL,留在路由里会让"路由不含 SQL"这条规则形同虚设。
验证
- energy/routes.test.ts 的 13 个既有用例直接作为安全网(其中多处对 SQL 与参数做断言),
迁移后全部通过,说明查询文本、参数顺序与口径未变。
- 全量 lint / test(191) / build 全绿,可达性 0 未引用文件。
未完成(已在文档中写明)
- hydrogen-station-board.ts 仍有 10 条查询 + 4 个本地 SQL 片段助手;
- hydrogen-bi-v2.ts 仍有 7 条带动态插值的查询。
因此 energy 暂不加入架构守护的"已完整分层"清单,避免给出已完成的不实信号。
2026-09-11 10:46:58 +08:00
dsh-agent
5196db5df7
refactor(stage12): 调度域拆出 repository,跨域数据源改为显式注入
...
改动
- 新增 scheduling/repository.ts:通知/干预与建议列表的全部 SQL(13 条)。
- notify.ts / suggestions.ts 改为 register*(app, deps) 可注入,保留默认导出与 create*Router 工厂。
- suggestions.ts 的两处跨域依赖(里程车辆信息、OneOS 里程)改为依赖注入:
既让本域可独立测试,也让"建议依赖里程数据"在类型上可见,而不是藏在 import 里。
- 跨域引用修正:mapRegion 原本从 '../vehicles/routes.js' 引入(为一个纯函数把整个
车辆路由拖进依赖图),改为直接从 '../vehicles/model.js' 引入。
契约测试(新增 10 个用例)
- 逐条锁定 SQL 与参数顺序:干预登记的三步(查重 → INSERT → 回读)、409 阻断、
批量循环、历史列表的状态过滤与 limit 上限(500/默认 200)、状态更新的 UPDATE 形状、
400/404 分支、活跃映射与近 7 天计数、建议列表五条基础查询的内容与顺序。
- 架构守护升级:不再只看 routes.ts,而是要求该域**除 repository.ts 外的任何非测试文件
都不得含 SQL**;匹配用"语句形状"正则(如 update <table> set)而非裸关键字,
避免把 UpdateNotification 或日志 "update error" 误判。已验证 6/6 个 repository 被识别、
其余文件零误判。
等价性验证
- 把 notify.ts / suggestions.ts 改造前的实现从 git 取出,与改造后跑同一批请求
(9 个场景,含建议列表整条链路 8 次查询),对比落库 SQL、参数、HTTP 状态与响应体:
完全一致。
- 期间修正了两处**验证工具自身**的缺陷(旧文件误引用新 notify;跨域默认实现的调用
被记到另一侧),修正后结论可信。
lint / test(191) / build 全绿,可达性 0 未引用文件。
2026-09-11 10:44:52 +08:00