文件
hyb-oa/issues/2026-05-17_09-38-55-launch-deploy-finance.csv
T

10 行
11 KiB
CSV

"ID","Title","Description","Acceptance","Test_Method","Tools","Dev_Status","Review1_Status","Regression_Status","Files","Dependencies","Notes"
"LDF-0","LAUNCH-DEPLOY-FINANCE 合同建档","建立 CASHIER-VOUCHER-V1 后部署与公网复检合同;按用户确认,先本地测试所有正式启用范围流程、PC/移动/企业微信页面和业务链路,确认无阻断后再部署并测试公网系统。","1) CSV 校验通过;2) 基线为 ab80d48;3) 本轮允许部署最新代码到公网并应用加性 migration;4) 部署脚本保持 SYNC_ENV=0,不覆盖远端 env;5) 不接真实支付、不接 ERP、不开放图片 OCR、不导入银行流水、不重置数据库;6) payment_batch_v1 正式常开不从本合同自动继承。","受影响流程:CASHIER-VOUCHER-V1 已开发 -> 本地全量门禁 -> 受控部署 -> 公网复检;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-17_09-38-55-launch-deploy-finance.csv;人工核对本轮边界和用户批准。","python3|manual","DONE","DONE","DONE","issues/2026-05-17_09-38-55-launch-deploy-finance.csv","[]","完成:CSV 校验通过;用户已批准先本地全量测试再部署公网;基线 ab80d48;本合同只部署和受控复检,不自动保持 payment_batch_v1 常开;正式启用公告和代账交接 SOP 由后续合同承接。"
"LDF-1","本地基础代码门禁","部署前先跑后端、前端、迁移和 CASHV focused 门禁,确认最新代码可构建、可迁移、可回归。","1) 工作区干净或仅本合同变更;2) prisma validate 通过;3) paymentBatches/apOperations/exports node --check 通过;4) paymentBatches/exports/financeLedger focused 单测通过;5) client typecheck/build 通过;6) git diff --check 通过。","受影响流程:付款批次回单附件、AP 台账、导出、报销付款、前端付款批次页;验证步骤:cd server && npm run prisma:validate;cd server && node --check src/routes/paymentBatches.js src/routes/apOperations.js src/routes/exports.js;cd server && npm test -- tests/unit/routes/paymentBatches.reimbursement.test.js tests/unit/routes/exports.apOperations.test.js tests/unit/services/financeLedger.test.js;cd client && npm run typecheck && npm run build;git diff --check。","npm|node|git","DONE","DONE","DONE","server/prisma/schema.prisma|server/prisma/migrations/20260517090437_cashier_payment_receipts/migration.sql|server/src/routes/paymentBatches.js|client/src/pages/PaymentBatchesPage.tsx|client/src/api/paymentBatches.ts","[""LDF-0""]","完成:prisma validate PASS;paymentBatches/apOperations/exports node --check PASS;focused 单测 3 files/12 tests passed;client typecheck/build PASS;仅本合同 CSV 为未提交变更。"
"LDF-2","本地正式启用范围业务流回归","在本地隔离临时库跑正式启用范围业务流,覆盖 PC 业务、审批、报销、付款批次回单、请假、采购、权限和企业微信入口自动化。","1) auth、reimbursement、approval、leave、procurement、governance 均通过;2) reimbursement 覆盖付款批次银行回单上传后执行;3) 权限直连无越权;4) 报告写入 artifacts/qa-flow;5) 如扩展模块失败但不属正式启用范围,必须记录为后续维护项,不能阻断本合同部署。","受影响流程:登录/企业微信入口 -> 报销/PDF OCR/mock -> 审批 -> 付款批次回单 -> 请假 -> 采购 -> 权限直连;验证步骤:QA_ISSUE_ID=LDF BUSINESS_FLOW_GROUPS=auth,reimbursement,approval,leave,procurement,governance bash scripts/qa/run-business-flow-gates.sh local。","bash|playwright","DONE","DONE","DONE","scripts/qa/run-business-flow-gates.sh|client/tests/e2e","[""LDF-1""]","完成:报告 artifacts/qa-flow/business-flow-20260517-094407/summary.txt;auth 12 passed;reimbursement 10 passed/1 skipped,含付款批次银行回单上传后执行;approval 3 passed;leave 6 passed;procurement 1 passed;governance 9 passed。"
"LDF-3","本地 PC、移动和企业微信页面矩阵","部署前跑本地 PC/移动/企业微信 UA 页面矩阵,确认页面布局、导航、移动入口和企业微信渲染无阻断。","1) 项目级视觉或核心页面矩阵通过;2) 移动 320/360/375/390/393/414/430 视口矩阵通过;3) 企业微信 UA/渲染矩阵通过;4) 无横向滚动、PC 壳误入移动页或关键按钮遮挡;5) 视觉报告或 Playwright 结果可追溯。","受影响流程:PC 工作台/财务/审批/报销页面,/mobile 首页、报销、审批、请假、采购、通知、企业微信 UA;验证步骤:QA_ISSUE_ID=LDF bash scripts/qa/run-web-gates.sh qg6-visual-matrix-local;cd client && E2E_BASE_URL=<local-url> npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts tests/e2e/r124-mobile-entry-matrix.spec.ts tests/e2e/r6-wecom-mobile-rendering-hardening.spec.ts --workers=1 --reporter=list 或采用同等本地报告。","bash|playwright","DONE","DONE","DONE","client/src/layouts/AppShellLayout.tsx|client/src/lib/runtimeContext.ts|client/tests/e2e/r110-mobile-pc-routing.spec.ts|client/tests/e2e|scripts/qa/run-web-gates.sh","[""LDF-1""]","完成:QG6 视觉矩阵 PASS,报告 artifacts/qa-flow/LDF-visual-matrix-20260517-095505/summary.json;R108 移动企微视觉 PASS,修复 /mobile/approvals?taskId 深层页底部导航遮挡;R109 移动报销反馈 PASS;R110 手机/PC 路由分流 PASS,补充 /leave-requests?action=create -> /mobile/leave?view=form,普通 /leave-requests 保持请假记录默认视图;自动化不能替代未来真实企业微信最终确认。"
"LDF-4","受控部署最新代码到公网","本地门禁通过后,用部署脚本把 ab80d48 及本合同回填提交部署到公网,应用新增回单附件 migration,保持远端 env 不覆盖。","1) 部署脚本成功;2) 远端 compose config、init、Prisma migrate status、/ready、external deps smoke、runtime smoke 均通过;3) SYNC_ENV=0;4) 不打印远端 env 或 secret;5) 不执行数据库重置或生产恢复。","受影响流程:公网运行时、Prisma migration、Caddy 反代后的 OA 服务;验证步骤:SYNC_ENV=0 bash deploy/trialrun/deploy.sh;部署脚本内置 /ready、external deps smoke、runtime smoke 和 public bundle 检查。","bash|ssh|rsync|docker","DONE","DONE","DONE","deploy/trialrun/deploy.sh|server/prisma/migrations/20260517090437_cashier_payment_receipts/migration.sql","[""LDF-2"",""LDF-3""]","完成:首次部署镜像构建成功但 Prisma status 发现 20260517090437_cashier_payment_receipts 未应用并安全停止;已修复 deploy.sh 使 init 显式执行 migrate/seed;重跑 SYNC_ENV=0 部署 PASS,远端 env 未同步,migration 应用成功,Prisma status up to date,部署后 live smoke 3 passed,public bundle scanned=57 focused=4 findings=0;部署 commit ab5ab4d。"
"LDF-5","公网部署后 readiness 与核心业务复检","部署后先跑公网 readiness、public bundle、live smoke、PDF live OCR 和移动/企业微信自动化,确认公网系统基础可用。","1) /ready 通过;2) public bundle 文案扫描通过;3) live smoke 和 PDF live OCR 通过或可解释 SKIP;4) 公网移动矩阵通过;5) 企业微信 UA/渲染矩阵通过。","受影响流程:公网登录、企业微信配置、PDF OCR、移动入口、企业微信 UA;验证步骤:set -a && source ~/.hyb-oa/live-smoke.env && set +a;QA_ISSUE_ID=LDF LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;cd client && E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts tests/e2e/r124-mobile-entry-matrix.spec.ts tests/e2e/r6-wecom-mobile-rendering-hardening.spec.ts --workers=1 --reporter=list。","bash|node|playwright","DONE","DONE","DONE","scripts/qa/run-live-smoke-readiness.sh|client/tests/e2e","[""LDF-4""]","完成:报告 artifacts/qa-flow/live-smoke-readiness-20260517-102904;publicReady=true,wecom=ready,liveSmokeReady=true,liveOcrReady=true;public bundle scanned=57 focused=4 findings=0;live smoke 3 passed;真实 PDF OCR 1 passed,样票重复为可解释终态;pending OCR 因本地 DATABASE_URL 未注入按规则 SKIP;公网移动/企业微信 UA 组合 14 passed,覆盖 320/360/375/390/393/414/430。"
"LDF-6","公网 CASHV 受控验证","部署后用公网测试账号短窗口验证新回单附件能力:创建测试报销、审批、临时开启 payment_batch_v1、上传银行回单、执行付款、核验 AP/审计,并最终恢复关闭态。","1) 只使用测试账号和测试报销;2) 回单附件上传/下载或列表可用;3) 银行渠道执行前回单阻断已覆盖;4) 付款批次执行后报销 paid、票据 archived、AP 台账 paid、审计可查;5) 最终 payment_batch_v1 恢复 force_off,除非另有 FIN-PROD-ENABLE 批准。","受影响流程:公网报销审批 -> 出纳付款批次 -> 管理员/复核 -> 银行回单 -> OA 已付款标记 -> AP 导出/审计 -> flag 回滚;验证步骤:P2_FIN_LIVE_APPROVED=1 QA_ISSUE_ID=LDF P2_FIN_LIVE_MARKER_PREFIX=LDF LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-p2-fin-live-window.sh;必要时补手工确认回单附件区和审计动作。","bash|playwright","DONE","DONE","DONE","scripts/qa/run-p2-fin-live-window.sh|client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts|client/src/pages/PaymentBatchesPage.tsx","[""LDF-5""]","完成:报告 artifacts/qa-flow/p2-fin-live-20260517-103450;pre flag-off PASS;临时 force_on 后测试报销 BX-20260517-0025 审批到 approved;银行渠道无回单执行返回 409;回单上传成功、列表命中、下载 200;付款批次 executed,报销 paid,票据 archived,AP 台账 paid,AP 导出 200,PAYMENT_BATCH_RECEIPT_UPLOADED/PAYMENT_BATCH_EXECUTED/REIMBURSEMENT_PAYMENT_MARKED/EXPORT_AP_OPERATIONS 审计可查;公网移动矩阵 6 passed、企业微信渲染矩阵 8 passed;最终 payment_batch_v1=flag_force_off。"
"LDF-7","收口回填与提交","回填 LDF CSV、文档索引、事实源矩阵和人工试运行报告,提交中文 commit,明确部署状态和下一步 FIN-PROD-ENABLE/ACCOUNTING-HANDOFF-V1。","1) CSV 状态按证据回填;2) docs/文档索引.md、docs/文档事实源状态矩阵.md、docs/trialrun/人工试运行报告.md 更新;3) validate、audit-docs、rg、git diff --check 通过;4) 中文 commit 引用 LDF;5) 最终说明公网 commit、/ready、public bundle、live smoke、付款批次最终 flag 状态。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-17_09-38-55-launch-deploy-finance.csv;node scripts/qa/audit-docs.mjs --check-registry;rg -n 'LDF|LAUNCH-DEPLOY-FINANCE|CASHIER-VOUCHER|银行回单|payment_batch_v1|FIN-PROD-ENABLE|ACCOUNTING-HANDOFF' docs issues;git diff --check;git status --short。","python3|node|rg|git","DONE","DONE","DONE","issues/2026-05-17_09-38-55-launch-deploy-finance.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts","[""LDF-6""]","完成:CSV、索引、事实源矩阵和人工试运行报告已回填;部署 commit ab5ab4d;公网 https://oa.hyinda.com /ready、public bundle、live smoke、PDF live OCR、移动/企微矩阵和 CASHV 短窗口均通过;最终 payment_batch_v1=flag_force_off;下一步为 FIN-PROD-ENABLE 正式常开和 ACCOUNTING-HANDOFF-V1 代账交接 SOP。"