feat(员工代收款): 新增员工代收款账单闭环
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m20s

- 新增 6 张表与成对迁移 000212,扩展企业微信审批场景业务类型白名单
- 后台线下套餐订单与两条代理线下充值入账路径在来源成功事务内建账,来源唯一键幂等
- 核销申请、审批尝试记录、账单分摊预占与驳回重提,审批业务类型 employee_collection_approval
- 企业微信终态消费幂等:通过转已核销、驳回释放预占、通过后撤销不回滚并转异常终态
- 退款成功事务内按 bill_id+refund_id 幂等冲销账单或仅写退款关联提示
- 线下收款方式字典、账单查询/统计/关闭、申请查询与代办权限,均写入事务内审计

OpenSpec Change: add-employee-collection-bills
This commit is contained in:
2026-09-10 18:24:05 +08:00
parent dc4e0d4103
commit ce24d5612e
54 changed files with 5975 additions and 465 deletions

View File

@@ -6,10 +6,10 @@
## What Changes
- 新增员工代收款账单:后台线下套餐订单创建成功后,或代理线下预存款/主钱包充值经企业微信审批通过并完成入账后,按确定金额为实际经办账号创建唯一账单。
- 新增员工代收款账单:后台线下套餐订单创建成功后,或代理线下预存款/主钱包充值完成入账后,按确定金额为实际经办账号创建唯一账单。线下充值以“平台账号发起的线下充值入账成功”这一既有事实为锚点,既有企业微信终审通过入账与既有线下充值人工确认入账均适用;建账只由来源成功事务触发,不扫描或补建历史记录。
- 新增核销申请和账单分摊:员工按一笔外部付款创建一张申请,可选择多张账单并填写各自分摊金额;同一账单可由多笔已通过申请分次核销。
- 新增固定分类的线下收款方式字典;申请冻结字典名称、外部付款、附件、账单分摊和审批快照。OCR 仅可预填流水号和付款金额,人工确认值才是业务事实。
- 核销申请仅由企业微信最终通过驳回驱动;提交失败、回调延迟或结果未知复用既有审批查询/恢复闭环,禁止本地人工绕过终审。
- 新增固定分类的线下收款方式字典;申请冻结字典名称、外部付款、附件、账单分摊,每次提交或重提另存一条审批尝试记录。OCR 仅可预填流水号和付款金额,人工确认值才是业务事实。
- 核销申请仅由企业微信最终结果驱动(通过驳回、通过后撤销);提交失败、回调延迟或结果未知复用既有审批查询/恢复闭环,禁止本地人工绕过终审,通过后撤销不回滚已核销金额
- 新增账单、核销申请、分摊、附件与审批记录的权限受控查询;超级管理员关闭未结清账单、来源订单退款时的账单冲销均保留审计。
- **BREAKING**:会生成员工账单的后台线下套餐订单不再在创建时强制上传付款凭证;凭证和外部付款信息改为核销申请必填。赠送套餐等不生成账单的既有线下订单继续保持原凭证要求。
@@ -17,7 +17,7 @@
### New Capabilities
- `employee-collection-bill`: 员工代收款账单、线下收款方式、分摊核销申请、企业微信审批闭环、退款冲销和财务查询。
- `employee-collection-bill`: 员工代收款账单、线下收款方式、分摊核销申请、企业微信审批闭环、退款冲销和受控查询。
### Modified Capabilities
@@ -25,7 +25,9 @@
## Impact
- 数据:新增账单、收款方式字典、核销申请、分摊审批快照等表;订单/充值来源只保存可追溯关联,不回填历史记录。
- 数据:新增账单、收款方式字典、核销申请、分摊审批尝试记录和退款冲销关联等表;订单/充值来源只保存可追溯关联,不回填历史记录。
- 写侧:后台线下套餐下单、代理线下充值入账、核销提交/重提/关闭、企业微信审批结果消费、套餐退款。
- 读取:财务账单与申请列表、详情、导出;员工仅看本人,财务/超级管理员按既有数据范围看全部。
- 读取:账单与申请列表、详情,以及与列表同筛选、同数据范围的统计聚合;欠款人仅看本人,超级管理员看全部;不新增导出
- 配置:不新增任何运行时开关或配置来表达上线切割点;新表对既有旧代码无影响,单批发布即可。
- 权限:本期不引入“财务”角色,也不启用 `RequirePermission` 路由鉴权体系;财务独立可见性留待后续权限 Change。
- 依赖复用既有企业微信通用审批实例、可靠提交和状态恢复机制OCR 与外部付款渠道不在本 Change 新建契约。