恢复完整源码测试基线
tests/test_finance.py 当前为 0 字节,导致既有财务、权限、导入、分析与公式导出回归测试缺失。先从可靠备份恢复,再运行 pytest、Ruff、Django、迁移、生产构建及 Playwright。旧 .pyc 的 69 passed、1 failed、1 skipped 使用旧断言,不是当前源码验收证据。
按财务正确性、测试可信度、业务覆盖和发布风险排序;实现状态与验收状态分开记录。
tests/test_finance.py 当前为 0 字节,导致既有财务、权限、导入、分析与公式导出回归测试缺失。先从可靠备份恢复,再运行 pytest、Ruff、Django、迁移、生产构建及 Playwright。旧 .pyc 的 69 passed、1 failed、1 skipped 使用旧断言,不是当前源码验收证据。
人数逻辑使用 CustomerRoster + COUNTIFS。本轮从当前源码生成基础及新增列工作簿,交由 LibreOffice 重算后读取;含自定义列的文件保留 136 个公式单元格,自定义“收入成本差”公式缓存及汇总引用缓存均为 2,000。仍需补足缺失期、零分母及负值等边界对账,并在 Microsoft Excel 桌面版复验。
在目标桌面 Excel 打开、强制重算、保存,读取公式和结果缓存;覆盖缺期、零人数、退款/负数、两种 ROI、毛利来源及编辑金额后的依赖变化。
当前上限 100,000 行/200 组。用原映射和可靠 PostgreSQL 验证完整导出、行数/金额/人数对账、耗时、峰值内存、文件体积及 Excel 首开/重算;未经实测不放宽限制,不静默截断。
签署实际收入/实收、退款、成本归属、毛利、ROI、自营范围和舍入口径;完成外部模型联调、隐私/数据出境审批及故障演练。批准前保持外部 AI 关闭。
新增 cleanup_formula_exports 管理命令和 Compose 常驻清理服务。仅清理过期成品及超过 24 小时的临时文件,限制导出根目录,跳过符号链接;清理异常保留重试线索。已覆盖过期文件、临时文件年龄和目录外路径测试。
用户可描述列名、含义、计算、范围及缺失/零分母策略;缺项时模型必须追问,确认后服务端只接受白名单表达式树并编译为 Excel 公式。工作簿包含汇总及自定义指标页、使用说明和对账页。专项单测覆盖追问、表达式拒绝与公式输出;本轮 Playwright 已验证登录、字段导入、缺项追问、补充确认、工作簿生成和下载。
完成镜像构建、TLS、数据库认证、备份恢复和 RPO/RTO 演练、并发/SLA 测试、渗透测试、密钥轮换、审计告警及商用依赖许可证核查。
多收入字段与消费比率、生效期毛利率、退款切换、结构占比、历史异常阈值和告警投递。
定义保存/版本与差异审阅;新运算符、聚合或缺失策略须通过白名单、独立财务样例和安全审查。
证据期间切换、平板与无障碍优化、可读的公式错误状态、更多电子表格引擎兼容验证。
| 门禁 | 证据 | 状态 |
|---|---|---|
| 源码测试 | 恢复原测试文件并完整执行 | 阻断:源码缺失 |
| 静态与构建 | Ruff、Django、迁移、前端构建 | 本轮独立复跑通过;源码恢复后仍需联跑 |
| 网页工作流 | 新增指标、桌面、手机 Playwright | 3 项通过,1 项原附件全量场景按配置跳过 |
| 公式重算 | 当前版本 LibreOffice 与 Microsoft Excel | LibreOffice 自定义公式重算/缓存通过;边界样例与 Excel 待验 |
| 真实规模 | 原附件全量导出与资源报告 | 待验;当前上限 100,000 行 |
| 商业发布 | 财务签字、AI 合规、安全与灾备 | 待外部审批/目标环境 |