Files
junhong_cmp_fiber/openspec/changes/add-employee-collection-bills/tasks.md
break 370fd3e67f
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 10m49s
update
2026-09-03 09:28:28 +08:00

27 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 1. 账单数据与基础契约
- [ ] 1.1 盘点现有订单、代理充值、通用企业微信审批、附件、Outbox 和审计模型,确定来源事件、附件键和审批快照的复用点;不得复制敏感付款内容。
- [ ] 1.2 新增成对迁移及 GORM 模型:线下收款方式字典、员工代收款账单、核销申请、申请—账单分摊、退款冲销/审批快照关联;为来源唯一性、审批实例唯一性、账单查询和分摊锁定建立约束/索引。
- [ ] 1.3 定义金额分、账单状态、申请状态、来源类型和稳定错误码实现中文名称、DTO 枚举说明及金额/附件/分摊校验。
- [ ] 1.4 实现超级管理员维护线下收款方式字典的新增、编辑、启停和受引用不可删除规则,并写配置审计。
## 2. 来源建账与账单读取
- [ ] 2.1 在后台线下套餐订单成功路径识别应建账场景,以实际操作后台账号和 `actual_paid_amount` 可靠、幂等地创建账单;调整仅该场景的创建时付款凭证要求,保留赠送等非建账订单的既有要求。
- [ ] 2.2 在代理线下预存款/主钱包充值企业微信通过且完成入账路径可靠、幂等地创建账单,金额取充值 `amount`;线上充值和未入账审批不得建账。
- [ ] 2.3 实现账单列表、详情和统计 Query按来源、状态、时间、员工、客户筛选员工仅见本人财务/超级管理员按数据范围见全部;返回应收、已核销、预占和未核销金额及审批中标识。
- [ ] 2.4 实现账单关闭用例:仅超级管理员、仅允许无审批中申请的未结清账单、必须填写原因,并在事务内保存状态变化与成功审计。
## 3. 核销申请、审批与退款联动
- [ ] 3.1 实现核销申请创建和已驳回重提:锁定选中账单、按时间预填、校验付款金额与分摊、预占余额、冻结收款方式/外部付款/附件/账单摘要,并创建新的企业微信审批实例和可靠提交请求。
- [ ] 3.2 接入企业微信最终通过、驳回、提交失败和状态查询恢复:通过时一次性增加已核销并释放预占,驳回时释放预占;用审批实例、状态条件更新和账单锁保证重复/乱序回调不重复核销。
- [ ] 3.3 实现代办权限、申请/分摊/审批历史查询及附件授权访问;超级管理员代办创建、修改或重提时强制记录实际代办人和原因。
- [ ] 3.4 在套餐退款成功处理链路实现账单冲销:无已通过分摊的全额退款自动关闭、部分退款冲减应收;存在已通过分摊时只保留退款关联提示,不恢复欠款。
- [ ] 3.5 为建账、申请提交/重提、审批通过/驳回、账单关闭和退款冲销补齐事务内审计;检查日志、错误和导出不暴露附件内容、完整交易敏感体或 OCR 原始结果。
## 4. 路由、文档与验证
- [ ] 4.1 注册账单、申请、字典和导出所需路由及 RouteSpec补齐 `internal/bootstrap``cmd/api/docs.go``cmd/gendocs/main.go` 装配Handler 使用 `pkg/response` 和稳定错误。
- [ ] 4.2 在隔离数据库按显式 `DB_*``scripts/migrate.sh` 验证迁移 up/down/up人工核对上线前来源不建账、来源幂等、并发预占、审批重放、驳回重提、关闭限制及退款三类联动。
- [ ] 4.3 运行 `gofmt -w`(变更 Go 文件)、`go build ./cmd/api ./cmd/worker``go run cmd/gendocs/main.go``openspec validate add-employee-collection-bills --strict``openspec doctor --json``./scripts/context-health.sh`;自动化测试按项目决策为 N/A。