Skip to content

工资发放 → 个人记账自动同步

标记结算单 已发放POST /acc/settlement/mark-paid,Web / 小程序「发放工资」)成功后,系统自动为相关用户写入 个人记账 流水(mini_book_entries),不经过 X-Site-Id,与 miniapp-bookkeeping-user-scope.md 一致。

记账规则

对象条件账本(自动创建)类型分类金额
领取工资的工人AccWorker.userId 已绑定系统用户「工资」收入 income工资结算单 netAmount(元→分)
确认发放的人当前登录经理(mark-paid 操作者)「经营」支出 expense工资发放同上
  • 业务时间:结算单 paidAt
  • 备注含 sync:acc_settlement_paid:{结算单id}同一结算单对同一用户只同步一次(幂等)
  • 工人 未绑定 系统账号:仅跳过工人侧,经理侧仍记支出

实现

  • backend/src/libs/shared/bookkeeping/bookkeeping-settlement-paid-sync.service.ts
  • SettlementService.markPaidsafeSyncFromSettlementPaid(失败只打日志,不阻断发放)

验收

  1. 工人档案绑定系统用户;经理、工人各至少有一个账本或依赖自动创建「工资」「经营」。
  2. 小程序/Web 对「已结算」单上传凭证并标记发放。
  3. 工人微信登录 → 个人记账 →「工资」账本可见 收入 流水。
  4. 经理登录 → 个人记账 →「经营」账本可见 支出 流水(摘要含单号与工人名)。
bash
pnpm --filter taskflow-backend exec jest bookkeeping-settlement-paid-sync.service.spec.ts --no-cache

TaskFlow 内部文档 Released under the MIT License.