Files
order_site/docs/打手重复奖励核对-2026-10-27.md
T
yml2213 9d5af359fa feat(finance): 完成财务控制、L1 钱包硬化与迁移收敛
- P0/P1:影子总账追加调整、关账/退款/资金/积分幂等、成本版本追溯、对账订单项维度
- 迁移收敛:原 103–114 合并为 103_finance_foundation、104_finance_controls、105_work_order_consignment
- 数据:L1 钱包 BIGINT/CHECK/奖励幂等;重复奖励审计口径修正与人工核对清单
- 报表:销售毛利缺失成本收入提示,旧收支页明确现金流口径
- 文档:同步迁移基线、合并评估、代码复核与上线说明
2026-10-27 16:08:16 +08:00

6.7 KiB
Raw Blame History

打手重复奖励核对清单(2026-10-27)

数据源:本地生产快照 order_site(与 backups/postgres/order_site-20261022-092601.dump 模拟库一致)。 审计视图:v_worker_wallet_duplicate_rewards(迁移 104,已排除寄卖货款并按 worker_id 分组)。 结论:原始按“工单 + 流水类型”分组得到 9 组;排除寄卖货款后,实际疑似重复 8 组。 处理原则:不自动扣回、不删除流水;由财务逐组核对后走人工调整。


一、汇总

指标 数值
原始同工单奖励流水组 9 组
其中寄卖货款误报 1 组(工单 84886)
实际疑似重复 8 组
涉及流水 16 条
两组流水合计 ¥392.40
重复多计(按每组一半估算) ¥196.20
涉及打手 7 人
工单状态 全部 accepted

金额单位:分;下表同时给出元。多计 按“两条金额相同、保留一条”估算,最终以财务核对为准。


二、疑似重复明细(8 组)

# 工单号 工单 ID 打手 ID 打手账号 流水 ID 单条金额 条数 合计 多计 时间差 当前可用余额
1 WO68ae5cc00012 41430 7 18622832733 26738 / 26739 ¥12.60 2 ¥25.20 ¥12.60 0.218s ¥22,817.40
2 WOf9a256424094 67580 28 19391334110 55324 / 55325 ¥47.50 2 ¥95.00 ¥47.50 3.487s ¥329.04
3 WO1ef60bfd41f3 70556 60 18700402637 58633 / 58634 ¥0.20 2 ¥0.40 ¥0.20 3.808s ¥1,397.00
4 WO26092719382700 90262 21 17386836758 85908 / 85909 ¥6.50 2 ¥13.00 ¥6.50 0.595s ¥104.50
5 WO26100215392303 100509 37 13779907018 99520 / 99522 ¥12.80 2 ¥25.60 ¥12.80 0.773s ¥0.48
6 WO26100312143075 102885 51 14718183196 102228 / 102229 ¥100.00 2 ¥200.00 ¥100.00 3.400s ¥1,887.60
7 WO26100316285341 103640 21 17386836758 103021 / 103022 ¥1.60 2 ¥3.20 ¥1.60 3.376s ¥104.50
8 WO26101115455274 125710 1365 15669767683 130982 / 130983 ¥15.00 2 ¥30.00 ¥15.00 0.614s ¥4,407.18

三、逐条流水明细(16 条)

流水 ID 工单 ID 打手 ID 金额 余额后 冻结后 备注 payload 创建时间
26738 41430 7 1260 1515880 0 验收通过结算报酬 {} 2026-08-26 19:15:09.638
26739 41430 7 1260 1517140 0 验收通过结算报酬 {} 2026-08-26 19:15:09.856
55324 67580 28 4750 124321 6000 验收通过结算报酬 {} 2026-09-03 21:05:22.924
55325 67580 28 4750 129071 6000 验收通过结算报酬 {} 2026-09-03 21:05:26.411
58633 70556 60 20 76280 0 验收通过结算报酬 {} 2026-09-04 21:18:52.540
58634 70556 60 20 76300 0 验收通过结算报酬 {} 2026-09-04 21:18:56.348
85908 90262 21 650 221195 0 验收通过结算报酬 {} 2026-09-27 19:50:13.522
85909 90262 21 650 221845 0 验收通过结算报酬 {} 2026-09-27 19:50:14.117
99520 100509 37 1280 57160 12000 验收通过结算报酬 {} 2026-10-02 15:52:18.017
99522 100509 37 1280 58440 12000 验收通过结算报酬 {} 2026-10-02 15:52:18.790
102228 102885 51 10000 331210 0 验收通过结算报酬 {} 2026-10-03 12:29:32.277
102229 102885 51 10000 341210 0 验收通过结算报酬 {} 2026-10-03 12:29:35.677
103021 103640 21 160 74193 0 验收通过结算报酬 {} 2026-10-03 16:48:16.927
103022 103640 21 160 74353 0 验收通过结算报酬 {} 2026-10-03 16:48:20.303
130982 125710 1365 1500 469690 0 验收通过结算报酬 {} 2026-10-11 17:17:22.873
130983 125710 1365 1500 471190 0 验收通过结算报酬 {} 2026-10-11 17:17:23.487

16 条流水的 payload_json 都为空、备注都是“验收通过结算报酬”,且同一打手、同一工单、时间差 0.2–3.8 秒,重复特征明显。


四、误报排除:工单 84886

原始 9 组里包含工单 84886,但它不是重复奖励:

流水 ID 打手 ID 金额 备注 payload
87769 25 13000 验收通过结算报酬 {}
87770 37 13000 寄卖货款结算 #84886 {"inventoryId":159,"workOrderId":84886,"costPriceFen":13000,"submissionNo":"SUB26092515093529"}
  • 两条流水属于不同打手;
  • 一条是工单验收奖励,一条是寄卖货款结算;
  • 金额相同只是巧合,不能按重复扣回。

因此审计视图已修正为:

  • 按 worker_id + work_order_id + ledger_type + share_id 分组;
  • 排除 payload_json ? 'inventoryId' 的寄卖货款;
  • 结果从 9 组降为 8 组。

五、人工核对建议

每组按以下顺序确认:

  1. 查工单 accepted 时间、验收人、work_order_shares 是否有同打手多份额;
  2. 确认两条流水是否都是“验收通过结算报酬”,且没有对应的冲正/扣回流水;
  3. 对比 worker_wallets.total_settled_amount 与全部结算流水,确认多计已进入余额;
  4. 确认打手当前余额是否足够扣回;不足时登记欠款,不要直接把余额改成负数;
  5. 处理方式建议:
    • 余额足够:人工新增负数调整流水(ledger_type 建议 manual_adjustment,备注“重复结算追回 + 工单号”);
    • 余额不足:登记 worker_after_sales_debts 或线下追缴,后续结算抵扣;
    • 不删除原流水,不直接改 worker_wallets 历史余额。

六、复核 SQL

-- 当前疑似重复(已排除寄卖货款、按打手分组)
SELECT *
FROM v_worker_wallet_duplicate_rewards
ORDER BY ledger_count DESC, related_work_order_id;

-- 指定工单的全部奖励流水
SELECT id, worker_id, ledger_type, amount, balance_after, frozen_after,
       note, payload_json, created_at
FROM worker_wallet_ledgers
WHERE related_work_order_id = 41430
  AND ledger_type IN ('reward_settlement', 'sharing_reward', 'reward_pending_unfreeze')
ORDER BY id;

七、结论

  • 需要人工核对的疑似重复:8 组,16 条流水,合计 ¥392.40,多计约 ¥196.20;
  • 工单 84886 是寄卖货款 + 工单奖励,不是重复,不要扣回;
  • 历史重复不自动修复,避免误伤正常寄卖/多份额结算;
  • 迁移 104 已为未来奖励流水加 event_key 唯一约束,新重复会被数据库直接拒绝。