跳转至

DIP1 工作日志 — UAT 第一轮 16 项 Bug 修复

DWLG 编号:DWLG-20260810-04 日期:2026-08-10 参与方:DIP1 Code Agent 关联文档DWLG-20260810-03 UAT 可用性排查报告(§四 修复策略 1-16) 关联 Issue:无


一、工作内容

按 UAT 排查报告 §四 策略全部 16 项执行修复(7 P0 + 5 P1 + 4 P2):

后端(9 项)

Bug 修复 文件
BUG-01 🔴 看板 pool 键不匹配 4 时间池 → 6 阶段池(POOL_L1_NEW_LEADS / L3_PENDING_QUOTE / L4_PENDING_ASSIGN / L6_INSTALL_TODAY / L8_PENDING_FOLLOWUP / EXCEPTION),DONE/CANCELLED 不入池;CptOrderCard.pool_label Literal 同步 cpt_service.py / dtos/cpt.py / test_cpt_api.py
BUG-02 🔴 GET /qsv/quotes 405 新增列表端点(分页 + status/customer_id/order_id 过滤 + join 客户名/品类 code,权限 qsv:calc) repositories/qsv.py / qsv_service.py / api/qsv.py
BUG-03 🔴 试算路径 404 前端改调 /qsv/calculator/preview(见前端)
BUG-04 🔴 categories 裸数组致白屏 /mds/categories 改分页结构 api/mds.py / dtos/mds.py / test_mds_api.py
BUG-05 🔴 PATCH /qsv/quotes/{id} 405 新增状态流转端点(DRAFT→CONFIRMED/REJECTED/EXPIRED,CONFIRMED→EXPIRED;终态 409/3001;写 confirmed_by/at、reject_reason;权限 qsv:confirm) qsv_service.py / api/qsv.py / dtos/qsv.py
BUG-06 🔴 客户历史订单空 list_orders 增加 customer_id 精确过滤参数(repo/service/api 三层) repositories/cpt.py / cpt_service.py / api/cpt.py
BUG-07 🔴 /qsv/params/versions 404 新增参数版本列表端点(方案 A) repositories/qsv.py / qsv_service.py / api/qsv.py
BUG-08 🟡 登录缺 user 字段 TokenResponse 增加 user(user_id/username/display_name/roles 数组/permissions) api/auth.py / test_auth_api.py
BUG-09 🟡 /me role vs roles UserMeResponse role:strroles:list[str] api/auth.py / test_auth_api.py
BUG-14 🟢 admin 角色空 seed cli 补 sys_user_roles(admin→TL,幂等 on_conflict) seed/cli.py

前端 opr-admin(8 项)

Bug 修复 文件
BUG-03 🔴 试算路径 /qsv/calculate/qsv/calculator/preview;字段 base_fee→base_fee_hkd、capped→capped_flag;factor_breakdown 对象→Object.entries 渲染 quotes/new/page.tsx
BUG-10 🟡 报价详情 calc→平铺字段 + calc_snapshot;金额字符串→number 归一化 quotes/[id]/page.tsx / types.ts
BUG-11 🟡 权限矩阵键改从后端响应动态提取(删 21 条硬编码假键) admin/page.tsx
BUG-12 🟡 導出 PDF → window.print()(导出端点属 P3) quotes/[id]/page.tsx
BUG-13 🟢 formatMoney 兼容 string|number + 新增 toNumber helper format.ts
BUG-15 🟢 驾驶舱移除 pool_label = OVERDUE 调试文案;逾期卡改「異常暫停訂單」(对接 POOL_EXCEPTION) (main)/page.tsx
BUG-16 🟢 楼宇联想改用专用端点 /mds/buildings/autocomplete(数组响应适配) buildings/page.tsx
BUG-06 🔴 客户详情订单查询 q:customerIdcustomer_id:customerId customers/[id]/page.tsx

顺手修复

  • get_current_param_version 增加 created_at 倒序决胜(同日多版本时保证确定性,消除演示数据与测试夹具竞争);
  • demo.py _cleanup 增强:级联清理测试期间挂在 DEMO 客户/订单上的衍生报价/订单/阶段子表(UAT 实测发现的 FK 阻塞,报告 F1 同类问题的完整版)。

二、验证结果

验证 结果
后端 pytest 全量 73 passed, 0 failed(含改写的看板 6 池测试:force 跳转 6 阶段逐池断言)
ruff app+tests All checks passed
opr-admin typecheck + build ✅ 17 路由全部生成
端到端 curl 复测 9 项 ✅ login user 字段 / me roles / quotes 列表(客户名+品类code)/ params versions / categories 分页 / board 6 池 {L1:1, L3:1, L6:1} / customer_id 过滤 2 单 / PATCH 确认 / 重复确认 409
演示数据 修复后已重置(2 报价/4 订单/3 客户/3 师傅),后端服务运行中

三、遗留问题

# 问题 状态 负责人
1 报价导出 PDF 端点(真导出) 🟡 P3 对象存储依赖 TL(凭据)
2 OpenAPI yaml 的 CptOrderCard.pool_label 枚举仍为旧 4 池,需同步 6 池 🟡 待 DT 同步契约文档 DT
3 订单看板拖拽流转(当前详情页按钮流转替代) 🟡 P2 体验优化 Code Agent

四、状态矩阵更新(DIP1-IMP §7.1)

  • C-B1(QSV 报价域):🟡 ~60% → 🟢(列表/状态流转/参数版本端点补齐,UAT 报价管理流程断裂点修复)
  • C-B2(CPT):🟢 不变(看板 6 池对齐 CPT-D 语义,回归全绿)
  • C-C2(opr-admin):🟢 → 🟢+(7 个阻断页面全部恢复可用,待 DT 复测确认)

修订记录

版本 日期 修订人 修订内容
V1.0 2026-08-10 DIP1 Code Agent 创建:UAT 第一轮 16 项修复全程记录

修复原则遵循报告 §四「前后端成对修复避免再次错配」;全部修复后已通过 pytest/ruff/build/curl 四重验证,可通知 DT 复测。