# 申请交通费用自动预估开发 TODO ## 调研与契约 - [x] 确认申请预览当前金额字段仍为用户手填。证据:`expenseApplicationPreview.js` 中 `amount` 标签为“用户预估费用”。 - [x] 确认住宿与补助已有规则测算入口。证据:前端申请预览调用 `calculateTravelReimbursement` 并读取 `hotel_amount`、`allowance_amount`。 - [x] 确认后端对话仍追问金额。证据:`user_agent_application.py` 的缺失字段包含 `amount`。 ## 算法 - [x] 新增前端申请估算工具模块,提供火车、飞机、轮船 mock 交通费。证据:`expenseApplicationEstimate.js`。 - [x] 将前端规则测算结果合成为交通 + 住宿 + 补助总额。证据:`expenseApplicationPreview.js` 的规则测算合成逻辑和前端定向测试。 - [x] 新增后端申请估算工具模块,提供无前端上下文时的兜底估算。证据:`application_system_estimate.py`。 ## 前端 - [x] 将申请预览金额标签改为“系统预估费用”。证据:`expenseApplicationPreview.js` 字段定义。 - [x] 将 `amount` 改为系统估算字段,不再作为用户必填项阻塞。证据:`amount` 字段 `required: false` 且 `editable: false`。 - [x] 更新交通费用口径文案,明确是模拟票价估算。证据:`buildTransportPolicyText` 输出模拟票价口径。 - [x] 在规则测算成功后写入系统预估总费用。证据:前端测试 `application preview merges rule center travel estimate into highlighted rows`。 ## 后端 - [x] 选择出行方式后自动生成系统预估费用。证据:后端测试 `test_user_agent_application_builds_system_estimate_after_transport_choice`。 - [x] 缺失字段追问不再包含 `amount`。证据:后端申请流程定向测试。 - [x] 后端预览和提交摘要统一展示“系统预估费用”。证据:`user_agent_application.py` 摘要表字段。 ## 测试与验证 - [x] 更新前端申请预览定向测试。证据:`expense-application-fast-preview.test.mjs`。 - [x] 更新后端用户 Agent 申请流程测试。证据:`test_user_agent_service.py`。 - [x] 更新编排流申请提交测试。证据:`test_orchestrator_review_flow.py`。 - [x] 运行前端定向测试,记录结果。证据:`node --test web/tests/expense-application-fast-preview.test.mjs`,14 passed。 - [x] 在 `x-financial-main` 容器内运行后端定向测试,记录结果。证据:申请相关 7 个 UserAgent 用例通过、2 个 Orchestrator 用例通过;整包定向存在无关查询动作测试失败。