寄售对账历史数据处理方案 — 财务沟通资料

会议日期:2026-08-19
需求方:5楼财务毋茜茜
编写人:应高
版本:v1.1


第一部分:提货单场景 — 客户线下付款

场景说明:客户通过线下方式向平台打款,平台需将线下收款按清分公式拆分为各科目,解决"全记担保金"导致的账实不符。


一、核心问题

历史线下收款订单(约 3000 笔)未按线上清分逻辑生成分账明细,财务只能把客户线下打款全部记为担保金回款,导致:

典型订单 202608054YT024(不亏不赚场景):

项目

金额

说明

客户应付总额

11,500

运费1000+干线500+优惠券100+货款9900

其中现金应付

11,400

扣除优惠券100(非现金)

客户实付现金

10,400

线下打款

差额(坏账)

1,000

客户少付,收不回 → 商务费用

处理前(错误): 担保金回款 = 10,400(全记担保金,多记 400,运费/干线漏记 1,500)


提货单最终结论

实际财务操作:

已支付:运费1000+干线500+货款9900,该部分已经计入到“其他应收款(担保金)”

实际现金回款:10400,该部分已经冲减了“其他应收款(担保金)”

差款部分(无论是坏账还是商务)还差1000元,还在“其他应收款(担保金)”应做成本

优惠券部分还在“其他应收款(担保金)”应做成本


后续历史数据处理逻辑

  1. 优惠券+亏损+商务-利润就是历史数据的成本

  2. 担保金账户最新明细,其中未回款金额减去历史数据(分账表)中的担保金金额之和,应该就是目前实际应收担保金金额

  3. 提货单多打款金额,单独出一份数据,进“收入”





二、方案核心思路

  1. 复用线上清分公式,为每笔历史线下收款生成分账明细,落库 ord_payment_detail_record

  2. 只调账,不动资金:历史数据只做总账科目重分类,不触发营销费账户/商家账户的实际资金流(避免历史时点倒挂)

  3. 优惠券、商务费用、亏损补贴 在分账明细中记录,但在总账中作为损失/费用入账,不从营销费账户实际支出


三、平台总账视角的资金结构

关键认知

资金性质分类

资金类型

资金性质

是否现金

总账归属

运费支付

平台代收代付

运费

干线运费支付

平台代收代付

干线运费

货款支付

垫资回收来源

是(部分)

担保金回款组成

优惠券支付

平台损失

否(非现金)

优惠券损失/营销费用

亏损补贴

平台损失

否(非现金)

亏损补贴/营销费用

寄售利润

平台利润

寄售利润收入

商务费用

坏账损失

否(非现金)

坏账损失

担保金

垫资回收

担保金回款(= 垫资额)

仓储费 平台代收代付 是 仓储费


四、三场景数据推演(提货单侧)

场景一:不亏不赚(订单 202608054YT024)

基础数据: 发货单成本 10,000 元,单价 1,000 元/吨,10 吨,末端运费 1,000 元,使用 100 元优惠券

资金类型

金额

资金性质

现金/非现金

运费支付

1,000

平台收入

现金

干线运费支付

500

平台收入

现金

优惠券支付

100

平台损失

非现金

货款支付

9,900

垫资回收来源

现金(实付 8,900)

亏损补贴

0

商务费用

1,000

坏账

非现金

担保金

10,000

垫资全额回收

平衡验证:

应付总额   = 1,000 + 500 + 100 + 9,900 = 11,500
现金应付   = 11,500 - 100(优惠券)= 11,400
实付现金   = 10,400
坏账       = 11,400 - 10,400 = 1,000(商务费用)

担保金回款 = 货款现金 8,900 + 坏账 1,000 + 优惠券 100 = 10,000 ✓

平台总账:
  担保金回款 10,000 + 运费 1,000 + 干线 500
  - 坏账 1,000 - 优惠券 100
  = 10,400 = 实收现金 ✓

场景二:亏损(订单 202608054YT025)

基础数据: 同上,售价低于垫资单价产生亏损

资金类型

金额

资金性质

现金/非现金

运费支付

1,000

平台收入

现金

干线运费支付

500

平台收入

现金

优惠券支付

100

平台损失

非现金

货款支付

9,000

垫资回收来源

现金(实付 8,000)

亏损补贴

900

平台损失

非现金

商务费用

1,000

坏账

非现金

担保金

10,000

垫资全额回收

平衡验证:

应付总额   = 1,000 + 500 + 100 + 9,000 = 10,600
现金应付   = 10,500
实付现金   = 9,500
坏账       = 1,000

担保金回款 = 货款现金 8,000 + 坏账 1,000 + 优惠券 100 + 亏损补贴 900 = 10,000 ✓

平台总账:
  担保金回款 10,000 + 运费 1,000 + 干线 500
  - 坏账 1,000 - 优惠券 100 - 亏损补贴 900
  = 9,500 = 实收现金 ✓

场景三:盈利(订单 202608054YT026)

基础数据: 同上,售价高于垫资单价产生盈利

资金类型

金额

资金性质

现金/非现金

运费支付

1,000

平台收入

现金

干线运费支付

500

平台收入

现金

优惠券支付

100

平台损失

非现金

货款支付

10,000

垫资回收来源

现金(实付 9,000)

寄售利润

100

平台利润

非现金

商务费用

1,000

坏账

非现金

担保金

10,000

垫资全额回收

平衡验证:

应付总额   = 1,000 + 500 + 100 + 10,000 = 11,600
现金应付   = 11,500
实付现金   = 10,500
坏账       = 1,000

担保金回款 = 货款现金 9,000 + 坏账 1,000 = 10,000 ✓
(优惠券 100 由寄售利润 100 抵消,平台净影响 0)

平台总账:
  担保金回款 10,000 + 运费 1,000 + 干线 500 + 寄售利润 100
  - 坏账 1,000 - 优惠券 100
  = 10,500 = 实收现金 ✓

五、财务操作步骤(提货单场景,以订单 202608054YT024 为例)

步骤 1:录入线下收款记录

步骤 2:录入商务费用记录

步骤 3:系统按清分公式生成分账明细

系统识别到商务费用记录后,按 R3 + R4 生成以下科目并落库 ord_payment_detail_record

运费支付      1,000
干线运费支付    500
优惠券支付     100
货款支付      9,900
亏损补贴        0
商务费用      1,000
担保金       10,000(发货单侧)

步骤 4:财务总账科目重分类

总账科目

处理前

处理后

调整方向

担保金回款

10,400

10,000

冲减 400

运费收入

0

1,000

补记

干线运费收入

0

500

补记

坏账损失

0

1,000

补记

优惠券损失

0

100

补记

实收现金

10,400

10,400

不变

步骤 5:不动的账户


六、提货单场景下的发货单侧担保金回款处理

说明:提货单场景中,客户付款后担保金回款落在发货单侧,按 PRD 10.5 规则处理。

发货单 FHY2026080527(商家:周明):

字段

金额

说明

担保金(垫资)

10,000

平台垫付

线下收款金额

9,000

客户付货款现金部分

多打款金额

0

少打款金额

1,000

客户少付 → 商务费用

线下实收金额

9,000

线下收款 + 多打款

担保金回款

10,000

= 线下收款 9,000 + 少打款 1,000

少打款 1,000 中:900 为坏账(商务费用),100 为优惠券(平台承担)。担保金按垫资全额 10,000 回收。


第二部分:发货单场景 — 发货单修改/关闭,商家退款

场景说明:发货单修改或关闭时,商家向平台退款(资金方向与提货单场景相反),系统记录退款数据,财务据此做总账处理。


七、场景说明


八、系统记录的数据

发货单号

线下实际回款金额

多打款金额

少打款金额

FHY...

4,900

0

100(少打)

FHY...

5,100

110(多打)

0



发货单最终结论

多打款金额减去少打款金额,如果是正的就进“收入”,如果是负,成本增加



九、情形1:商家少打 100(实退 4,900)

应退回金额 = 4,900 + 100 = 5,000
担保金调整 = -5,000(应收垫资减少,货退回)
现金增加   = +4,900
损失       = 100(商家少退,收不回)

验证:现金 4,900 + 损失 100 = 5,000 = 担保金减少 ✓

总账分录:

借:现金          4,900
借:损失(少打款)     100
  贷:应收垫资/担保金  5,000

十、情形2:商家多打 100(实退 5,100)

应退回金额 = 5,100 - 100 = 5,000
担保金调整 = -5,000
现金增加   = +5,100
应付       = 100(多收的,欠商家)

验证:现金 5,100 - 应付 100 = 5,000 = 担保金减少 ✓

总账分录:

借:现金          5,100
  贷:应收垫资/担保金  5,000
  贷:应付商家款        100

十一、数据推导关系

从系统记录的 4 个字段可推导出所有总账科目:

总账科目

推导方式

现金

= 线下实际回款金额

应收垫资调整(担保金)

= 线下实际回款金额 + 少打款金额 - 多打款金额

损失(少打款)

= 少打款金额

应付商家款(多打款)

= 多打款金额


十二、与提货单场景的关键区别

维度

提货单场景(客户付平台)

发货单场景(商家退平台)

资金方向

客户 → 平台(现金流入)

商家 → 平台(退款流入)

担保金方向

担保金回收(应收垫资减少)

担保金减少(货退回,垫资冲减)

少打款性质

客户坏账

商家少退(损失)

多打款性质

客户多付(需退/抵扣)

商家多退(平台欠商家)

方向相反,但科目处理逻辑对称。


第三部分:需确认事项与方案总结


十三、需要和财务确认的事项

确认点 1:商务费用科目口径(提货单 + 发货单通用)

客户少付/商家少退、收不回来的差额,总账走哪个科目?

确认点 2:优惠券损失科目口径(提货单场景)

优惠券 100 元(平台承担、不动营销费账户),总账走哪个科目?

确认点 3:担保金回款口径(提货单场景)

担保金回款按"垫资全额 10,000"记,还是按"客户实付货款现金"记?

确认点 4:分账明细是否需要标记"仅对账"(提货单场景)

历史数据的分账明细不触发资金流,是否需要在 ord_payment_detail_record 表加字段区分?

确认点 5:多打款后续处理(发货单场景)

商家多打的 100 元是平台应付账款(不是收入),后续是退还商家还是抵扣下次结算?需明确,否则会挂账。

确认点 6:补记"应退回金额"字段(发货单场景)

系统目前只记实退、多打、少打,没记应退回金额(5,000)。建议补记,财务不用反推,且能一眼核对差异。


十四、方案总结

维度

提货单场景

发货单场景

资金方向

客户 → 平台

商家 → 平台

分账明细

按清分公式生成,含运费/干线/优惠券/货款/亏损/商务费用/担保金

记录实退/多打/少打

总账调整

科目重分类,实收现金不变

担保金冲减,差额记损失或应付

营销费账户

不动(历史数据只调账)

不涉及

商家账户

不动(避免历史时点倒挂)

多打款挂应付,后续退还或抵扣

担保金

按垫资全额回收,差额由坏账+优惠券+亏损补贴补齐

按应退回金额冲减,差额由少打(损失)或多打(应付)调整

坏账处理

商务费用科目或坏账损失科目(待确认)

与提货单侧统一口径(待确认)

两个场景在平台总账视角下均可对平,且不引入历史时点倒挂的资金流问题。