Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
2.0 KiB
2.0 KiB
差旅计算器只读流程触发规则资产提交
日期:2026-07-17 文档路径:document/development/2026-07-17/dev-logs/bugs/travel-calculator-rule-sync-transaction.md
修复记录
- 13:48:记录 bug 修复:差旅计算器只读流程触发规则资产提交。(bug-log:242d68c3)
- Git 提交检查:已执行
git fetch --all --prune、git status -sb、upstream 解析及双向日志检查;origin/main无新提交,本地mainahead 17。ahead 摘要:242d68c3/28b834ed/4940ebc4为审批与风险处置,ee88a36b至a662cfe6为 AI 费用学习和申请闭环,5ed34c2b/11275e4b为历史回填与迁移安全,1347366b/22669a90/a616b30c/661990b2为费用事件与事务,653eda05为认证会话;本轮未改写这些提交。 - 根因:差旅计算器为读取规则先调用
AgentAssetService.list_assets(),该入口可能执行资产初始化并提交共享 Session,导致外层报销事务被提前提交;同时规则目录未带认证企业,企业覆盖规则可能退回到错误的全局目录。 - 修改:
travel_reimbursement_calculator.py删除计算路径中的资产同步调用,改为使用当前 Session 和认证用户tenant_id直接只读加载ExpenseRuleRuntimeService目录;规则初始化只保留在启动/管理边界,不再混入金额计算事务。 - 操作:保留地点、职级、住宿、补助和交通估算算法,仅收紧规则读取的事务与租户边界;测试夹具同步补齐结构化企业身份。
- 验证:容器内差旅计算器 4 项金额、地区拒绝和地点归一化回归通过;AgentAsset service/foundation 28 项、报销服务 121 项及后端全量分片通过;相关新文件 Ruff、compileall 和
git diff --check通过。 - 影响:用户计算差旅标准时不会意外提交正在编辑的报销单;企业规则按当前登录企业解析,读取失败会明确报错而不会静默使用另一企业或全局可写状态。
- Git 提交检查:已执行