fix: 优化报销制单下载与付款进度(09-08-reimbursement-payment-closeout)
这个提交包含在:
@@ -1,5 +1,29 @@
|
||||
# 执行顺序(本地技术审查/修复已批准,真实业务动作另批)
|
||||
|
||||
## 2026-09-10 当前执行
|
||||
|
||||
### 合并候选验证与发布边界
|
||||
|
||||
- 最终页面回归:合并构建产物 preview,Playwright system-action-confirmation.spec.ts 按“财务先制单/制单失败/付款/银行回单/报销”选择,19/19,退出 0;ui-final.log 为最终证据,ui.log 为中断记录。已检查桌面与手机截图:操作卡下接进度,窄屏无横向溢出,底栏动作可达。当前本地实现与联合验证完成,等待独立复核及提交发布授权。
|
||||
|
||||
- 本轮独立付款副本基线 e5685f1;与退回删除按补丁合入 artifacts/isolated-worktrees/20260910-reimbursement-payment-integration,没有提交或覆盖主 checkout 的既有改动。
|
||||
- 合并 focused 后端:23 文件、296/296;另下载文件名解析 7/7。命令以删除 task 的 focused 列表加 paymentOrderXls.test.js 为准;文件名测试为 tests/unit/utils/client-download-filename.test.js。记录见合并副本 artifacts/qa-flow/20260910-combined/unit.log、filename.log。
|
||||
- 真实隔离执行:RUN_ISOLATED_DB_TEST=1 RUN_RETAINED_DELETE_TEST=1 RUN_BROWSER_TEST=1 RUN_PAYMENT_EXPERIENCE_TEST=1 node scripts/qa/test-invoice-first-http.cjs;BIFF8 使用既有受控测试解释器。real-db-browser.log 为 PASS_REAL_DB_HTTP,退出 0,数据库、合成文件及浏览器完成清理。
|
||||
- 联合验证涵盖上传选票填明细、退回重提与三步审批、退回留痕删除与票据复用、并发/事务回滚、财务组批、CEO 复核、非授权下载拒绝、桌面/手机真实下载中文 BIFF8、不要求理由、再次下载警告。不执行真实银行付款,OCR 为真实 worker + mock provider,不能称为本轮腾讯 OCR 新验证。
|
||||
- 前端 typecheck/build、Prisma validate、UI strict/self-test、错误解释 strict、process baseline、task validate、Trellis governance、diff 检查通过。文档 registry errors=0 / warnings=1,为既有 22 个未登记文件,不扩修。
|
||||
- 最初真实付款 fixture 缺环境功能开关导致 409,修正仅限隔离配置;浏览器实际复现中文名称被旧解析器丢弃,已修产品代码并补七项解析测试。合并页面首轮受 SIGTERM 中断(143),不能视为通过,单独重跑结果另记。
|
||||
- 保留生产边界:未提交/推送/部署,未触碰真实单据/账户;六个 view_all 与审批角色不变,不能宣称经理只能看相关报销。退回留痕删除含新增迁移,旧镜像可能重新显示留痕删除记录,不能复用“无迁移、只改权限”旧例外。
|
||||
- 主会话执行本地自审与自动验证;独立只读 reviewer 未执行。下一步先复核两份独立补丁,再按明确授权分别提交、冻结统一候选、重新发布预检和部署后自动验收,不交给员工发现基础缺陷。
|
||||
|
||||
联调发现并已修:共享下载客户端只解析 filename,忽略 filename*,导致服务端中文名仍被 ASCII fallback 替代。现优先解析 UTF-8 扩展名;损坏编码、不支持编码、空值回退原 filename。新增 7 项客户端解析回归,已通过。付款路由/BIFF8 93 项通过;最终浏览器和合并验证见本节记录,本地通过不代表已发布。
|
||||
|
||||
用户批准本轮报销/付款改动全部完成、合并验证后再部署。付款在独立副本实施,基线 e5685f1,不混入退回删除的迁移。既有历史阶段不代表当前发布状态。
|
||||
|
||||
1. 中文制单文件名、无手填理由的敏感下载确认、操作卡下方处理进度。
|
||||
2. 制单独立请求合同允许省略原因;旧客户端真实填写的原因仍保留,系统用途及来源独立记录,不伪造用户原因。
|
||||
3. 路由、BIFF8、桌面/移动浏览器定向回归,再与退回删除合并做隔离数据库全链验证。
|
||||
4. 独立复核、提交和发布尚未完成;生产动作另行授权,不以员工正式业务代测。
|
||||
|
||||
## 2026-09-08 获批技术执行
|
||||
|
||||
1. 检查 CLI/项目/npm 稳定版本及官方 update dry-run;保留现有定制,稳定通道无新版则不切 beta、不强刷文件。
|
||||
@@ -144,3 +168,18 @@ T0 是新增代码工作的前置;T1 数据库路径获成功证据后推进 T
|
||||
## 2026-09-09 提交与推送授权
|
||||
|
||||
用户对“AP 与付款修复分两笔提交并推送,不部署、不执行真实恢复、不混入后续准备文档”明确回复“是”。本次只提交本 task 对应已隔离交审文件及当前授权记录;原恢复 task、错误豁免后续阶段和另外两个未跟踪 task 不进入这两笔。实际提交 SHA 与远端结果以 Git 回执为准,不提前宣称 push 成功;生产仍未部署,业务验收状态不随提交改变。
|
||||
## 2026-09-09 后续工作执行顺序(按已确认选票流程更新规划)
|
||||
|
||||
本节为最新规划,旧阶段结果保留;已确认付款独立复核和制单下载,不确认实际付款。当前只更新已有 task 需求与设计,没有创建 task、改代码、运行产品测试或部署。
|
||||
|
||||
- [x] 收口用户取向:报销制单中文名;首次/再次不强制手填理由但保留确认与审计;处理进度右移;退回单可以删除后新建;验证由执行端承担。
|
||||
- [x] 将删除阶段归入 09-04-reimbursement-state-gap-finance-view,将“选票自动生成明细并关联”归入 08-29-reimbursement-expense-policy-invoice-guard,付款优化留本 task;对应 PRD/design/implement 同步。明确替换旧手工关联方案,不新建 task。
|
||||
- [ ] 综合方案确认后,先为第一批补齐存储/绑定接口设计与隔离端到端夹具,复现两个原始阻断;评估是否涉及迁移,不默认免迁移。
|
||||
- [ ] 第一批在干净副本实施:退回单删除留痕与发票占用释放、选票自动生成明细并关联及已有明细直接加票;验证所有旧状态的拒绝边界,核实真实腾讯 OCR,异常不交给员工发现。
|
||||
- [ ] 并行准备部署后专用合成测试条件;缺失项由执行端列出具体配置和授权请求,不调用真人单据或凭据。
|
||||
- [ ] 第一批完成真实后端角色链、桌面/窄屏验证及只读交审,取得明确提交推送授权后收口;不把另一批产品变更叠入同一脏树。
|
||||
- [ ] 第二批按已确认付款方案实施中文名、独立下载原因合同和布局;完成文件内容/审计/权限/布局回归及本批交审。若第一批遇真正外部阻塞,第二批可在独立副本提前完成,不扩大范围。
|
||||
- [ ] 每批冻结候选并提出发布方案,附可执行的部署后自动检查;部署另批,上线后由执行端运行验证、报告失败与回滚建议,必要回滚按具体授权执行。
|
||||
- [ ] 功能交付后回到统一待办投影;同期维护原错误豁免截止日队列,不批量归档或延期。
|
||||
|
||||
首个实施动作明确为“用空报销合成数据复现发票顺序问题,并核查退回删除事务/材料关系”,不是继续生产清理或让 majianyong 再尝试一次。主工作树在旧基线且有治理差异,执行副本须从最新 origin/main 核验建立,按任务登记分批文件清单与测试命令。
|
||||
|
||||
在新工单中引用
屏蔽一个用户