新增「财务规则 · 科目映射表」可维护页面 #279

Merged
yueyang merged 4 commits from feature/yueyang-account-mapping-page into main 2026-09-29 10:41:54 +08:00
Collaborator

这个页面做什么

按财务自动化逻辑给电商平台账单分类用的一张映射表,落在财务平台里维护(原来只有一份 Excel)。

表仍是「科目对 + 方向基准」模型:每条规则只锁定走哪两个科目、以及方向基准,不存最终借贷方向;
实际记账时按账单在平台上的真实收支代入,收支与基准相反才互换借贷。

新增能力

  • 导入追加:兼容旧版 9 列表头(借/贷(借)出现两次、无方向基准列),
    按「平台 + 账单项目 + 财务备注」判重,预览显示「识别 N 行 / 可新增 X / 重复 Y」,
    可勾选让文件内容覆盖重复项
  • 单条修改:行内编辑,科目用「一级下拉 + 二级联动下拉」,
    改一级会清掉不属于它的二级,改大类会顺带带过方向基准
  • 新增、删除
  • 实时校验:一级科目名 → 编码(查不到即错误);二级名在「一级科目子树」里找
    (0 命中 / 同名歧义为警告,一级与二级同名时跳过);方向基准与大类是否一致

不动其他页面

  • 只新增一个菜单分组「财务规则」和一个页面;分组放在「财务SW报表」之后,
    避免影响 NavigationTest 里「财务经营风险管控 → 财务SW报表」的相邻断言
  • 维护接口挂在独立的 workspace/financial-rules/account-mapping/actions 前缀下,不碰既有路由
  • 无数据库迁移:数据落 storage 目录下的 app/account-mapping,将来换数据表只改 Store 一个类

改动范围

类型 文件
新增页面 resources/views/business/pages/financial-rules/account-mapping.blade.php
新增控制器 app/Http/Controllers/Business/AccountMappingActions.php
新增服务 modules/EcommerceFinance/Services/AccountMapping{Store,Coa,Validator,WorkbookImporter}.php
新增数据 resources/data/coa.json(账套科目索引)、resources/data/account-mapping.json(初始 112 条规则)
新增测试 tests/Feature/Business/AccountMappingPageTest.php
追加改动 app/Http/Controllers/Business/Pages.php(+56)、config/business_navigation.php(+11)、routes/admin.php(+18)

验证

  • NavigationTest 10 passed
  • AccountMappingPageTest(本次新增)6 passed
  • PagesTest + NavigationTest + AccountMapping + SupplierPayable 共 98 passed / 0 failed(1233 断言)
  • 预览环境(18089)真机点过:导入预览 → 确认导入、行内编辑保存、新增、删除全部走通
## 这个页面做什么 按财务自动化逻辑给电商平台账单分类用的一张映射表,落在财务平台里维护(原来只有一份 Excel)。 表仍是「科目对 + 方向基准」模型:每条规则只锁定走哪两个科目、以及方向基准,**不存最终借贷方向**; 实际记账时按账单在平台上的真实收支代入,收支与基准相反才互换借贷。 ## 新增能力 - **导入追加**:兼容旧版 9 列表头(借/贷(借)出现两次、无方向基准列), 按「平台 + 账单项目 + 财务备注」判重,预览显示「识别 N 行 / 可新增 X / 重复 Y」, 可勾选让文件内容覆盖重复项 - **单条修改**:行内编辑,科目用「一级下拉 + 二级联动下拉」, 改一级会清掉不属于它的二级,改大类会顺带带过方向基准 - **新增、删除** - **实时校验**:一级科目名 → 编码(查不到即错误);二级名在「一级科目子树」里找 (0 命中 / 同名歧义为警告,一级与二级同名时跳过);方向基准与大类是否一致 ## 不动其他页面 - 只新增一个菜单分组「财务规则」和一个页面;分组放在「财务SW报表」**之后**, 避免影响 NavigationTest 里「财务经营风险管控 → 财务SW报表」的相邻断言 - 维护接口挂在独立的 `workspace/financial-rules/account-mapping/actions` 前缀下,不碰既有路由 - 无数据库迁移:数据落 storage 目录下的 app/account-mapping,将来换数据表只改 Store 一个类 ## 改动范围 | 类型 | 文件 | | --- | --- | | 新增页面 | resources/views/business/pages/financial-rules/account-mapping.blade.php | | 新增控制器 | app/Http/Controllers/Business/AccountMappingActions.php | | 新增服务 | modules/EcommerceFinance/Services/AccountMapping{Store,Coa,Validator,WorkbookImporter}.php | | 新增数据 | resources/data/coa.json(账套科目索引)、resources/data/account-mapping.json(初始 112 条规则) | | 新增测试 | tests/Feature/Business/AccountMappingPageTest.php | | 追加改动 | app/Http/Controllers/Business/Pages.php(+56)、config/business_navigation.php(+11)、routes/admin.php(+18) | ## 验证 - NavigationTest 10 passed - AccountMappingPageTest(本次新增)6 passed - PagesTest + NavigationTest + AccountMapping + SupplierPayable 共 **98 passed / 0 failed**(1233 断言) - 预览环境(18089)真机点过:导入预览 → 确认导入、行内编辑保存、新增、删除全部走通
yueyang added 4 commits 2026-09-29 10:40:01 +08:00
按财务自动化逻辑给电商平台账单分类用的一张映射表,落在财务平台里维护。

表本身仍沿用「科目对 + 方向基准」模型:每条规则只锁定走哪两个科目、
以及方向基准,不存最终借贷方向;实际记账时按账单在平台上的真实收支代入,
收支与基准相反才互换借贷。

新增能力:
- 导入追加:兼容旧版 9 列表头(借/贷(借)出现两次、无方向基准列),
  按 平台|账单项目|财务备注 判重,预览显示「识别 N 行 / 可新增 X / 重复 Y」,
  可勾选让文件内容覆盖重复项。
- 单条修改:行内编辑,科目用「一级下拉 + 二级联动」,改一级会清掉不属于它的二级,
  改大类会顺带带过方向基准。
- 新增、删除。
- 实时校验:一级科目名→编码(查不到即错误)、二级名在「一级科目子树」里找
  (0 命中/同名歧义为警告,一级二级同名时跳过)、方向基准与大类是否一致。

不改动任何既有页面:仅新增一个菜单分组「财务规则」和一个页面,
维护接口挂在 workspace/financial-rules/account-mapping/actions 下独立前缀。
NavigationTest 断言 financial-risk-control 的下一个分组必须是 financial-sw,
原先插在两者之间会让既有测试失败(等于动了别人的页面顺序)。
新分组与既有页面的相对顺序保持不变,仅追加。
覆盖:页面把种子规则与校验汇总渲染进 HTML(专门盯「接口 200 但注入数据为空」
这个曾经踩过的坑)、维护接口返回规则与汇总、新增/修改/删除往返、
账套里查不到的一级科目必须判为错误、导入预览不落盘、确认导入落盘、
非表格扩展名给出人话提示。

测试期间把 storage_path() 指向临时目录,不污染真实 storage。
yueyang merged commit 3c4c47fb94 into main 2026-09-29 10:41:54 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WuYongJie/CaiWuXiTong#279
No description provided.