西藏巴青项目

供应商结算管理功能需求.md 19KB

供应商结算管理 — 功能需求

1. 文档说明

说明
模块名称 供应商结算管理(交易市场平台)
目标 交易订单完成支付后自动生成的结算单进行查询、完成结算付款(上传结算凭证)及凭证打印;完成结算为本模块及平台业务链的终点,与 交易订单管理 共同形成「交易 → 订单支付 → 结算付款」闭环
当前版本 1.1
依据 同目录 供应商结算管理-草稿.md、原型 Snipaste_2026-05-22_13-55-35.jpg
关联 ../交易订单管理/交易订单管理功能需求.md(订单支付触发本模块数据;费用快照在订单侧生成)
范围 仅功能与业务规则;不含库表、接口、报文、技术栈

1.1 使用角色与入口

角色 场景
财务/结算人员 查询待结算单、完成结算、打印结算凭证
交易市场运营人员 查询结算进度、查看与订单的对照(不在本模块创建结算单
系统管理员 菜单与权限配置

默认进入 供应商结算单列表

1.2 模块关系(业务视角)

供应商管理 ──────► 收费方式/费率(订单完成支付时快照至结算单)
交易订单管理 ────► 完成支付 → 自动生成一条结算单(待结算)
       │
       ▼
供应商结算管理 ────► 待结算 → 完成结算(结算凭证)→ 已完成(**流程终点**,无后续必办)
关联模块 关系 约束
交易订单管理 唯一数据来源 结算单仅由订单「完成支付」成功时自动产生;一对一
供应商管理 展示供应商名称;费用依据生成时快照 结算单生成后随供应商主数据改费率而重算
承销商管理 不直接出现在结算单主信息 承销商信息在关联订单中查看
市场进栏登记 无直接操作 订单完成支付后释放进栏耳标,与本模块无界面交互

职责边界: 订单侧负责「买方的支付凭证」;本模块负责「付给供应商的结算凭证」。两种凭证、两个业务阶段,不可混用。


2. 核心业务概念

2.1 一条供应商结算单

针对一笔已完成支付的交易订单,系统生成一条结算记录,用于向该订单供应商支付扣除服务费后的金额

信息项 说明
结算单编号 系统生成,业务唯一;规则见 §3.1
关联订单编号 来源订单编号;用于业务追溯与列表筛选
供应商 与关联订单一致
交易总头数 生成时取自订单,单位「头」
交易总金额 生成时取自订单,单位「元」,保留 2 位小数展示
服务费金额 生成时按供应商收费规则计算并固化,单位「元」
实际应付结算金额 生成时计算并固化,单位「元」
结算状态 待结算 / 已完成
结算凭证 本模块「完成结算」时上传;此前为空
结算创建时间 结算单生成时刻(= 订单完成支付成功时刻)
结算完成时间 「完成结算」成功时写入;此前为空

2.2 状态与流转

状态 含义 允许操作(见 §8.2)
待结算 订单已支付,尚未上传结算付款凭证 完成结算、查看
已完成 已上传结算凭证并完成付款登记 查看、打印凭证
  • 流转: 待结算 → 已完成,不可逆
  • 已完成不可再次「完成结算」、不可修改金额类字段、不可删除结算单(本期无作废)。
(无)──订单完成支付──► 待结算 ──完成结算+凭证──► 已完成

2.3 数据生命周期

阶段 说明
产生 交易订单「完成支付」成功时自动插入一条,初始为待结算
维护 用户在本模块完成结算、查询、打印
删除 本期不提供用户删除;订单已完成后亦不可通过删订单消除结算单

3. 字段与展示规则

3.1 结算单编号

  • 用户不可录入;生成时系统分配;全生命周期不可改
  • 规则:JSD + YYYYMMDD + 3 位当日序号001999,左补零),如 JSD20260520001
  • 订单编号相互独立;业务关联靠 关联订单编号
  • 当日序号用尽(超过 999)时,订单侧完成支付若无法生成结算单应失败(由订单模块事务保证,本模块不出现无编号记录)。

3.2 关联订单编号

  • 只读;生成时写入,与订单主表编号一致。
  • 列表支持按该字段模糊筛选。
  • 详情中仅展示关联订单编号(只读);本期不提供跳转、链接至交易订单详情或新开订单页(用户若需核对订单,自行至 交易订单管理 查询)。

3.3 供应商

  • 只读;与关联订单供应商一致。
  • 展示供应商名称(来自主数据);生成时固化 supplier 业务主键,用户不可改。

3.4 交易总头数、交易总金额

  • 只读;生成时与订单 交易总头数交易总金额 完全一致
  • 订单完成后即使主单展示值被误改(实施应禁止),结算单仍以生成时刻快照为准。

3.5 服务费金额(快照)

生成时按关联订单供应商在 供应商管理 中的收费配置计算,写入后不再自动重算

收费方式(生成时) 服务费金额(元)
按户计费 0
按头计费 交易总头数 × 收费标准(元/头)
按额计费 交易总金额 ×(交易费率 + 管理费率)÷ 100

精度:保留 2 位小数四舍五入至分。按额计费时先合计费率(%)再乘以交易总金额。

详情/列表须能展示当时采用的收费方式及费率快照(便于财务核对),展示形式与原型一致(可为只读标签或字段组)。

3.6 实际应付结算金额(快照)

  • 只读;生成时计算:实际应付结算金额 = 交易总金额 − 服务费金额
  • 与 §3.5 同一时刻固化,保留 2 位小数、四舍五入。
  • 用户不可手工改价、不可改服务费后自动联动(无「改单」能力)。

3.7 结算凭证

阶段 规则
待结算
完成结算 必填单张图片;后缀 jpg / jpeg / png≤ 10MB(与交易订单支付凭证 §3.6 一致)
已完成 列表/详情可查看、打印凭证须能展示

结算凭证表示向供应商付款的凭据,不是订单的支付凭证。

3.8 时间字段

字段 写入时机 规则
结算创建时间 结算单生成成功 系统当前时间;用户不可改
结算完成时间 完成结算成功 系统当前时间;此前为空

4. 结算单来源(本模块不可新建)

4.1 唯一来源

规则 说明
触发点 交易订单管理 → 待支付订单 → 完成支付成功
数量 一笔订单 → 一条结算单
禁止手工建单 本模块无「新增结算单」
禁止合并 不可选择多笔订单生成一张结算单
禁止选订单 用户不能在本模块挑选订单再生成结算

4.2 生成失败时的协同

若订单完成支付过程中结算单生成失败(含编号冲突、事务中断等),按 交易订单管理 §6.3:订单保持待支付,无结算单;用户修正后可重试完成支付。本模块列表不出现半成品记录。

4.3 生成成功后的可见性

  • 生成后立即可在本模块列表查到,状态为待结算
  • 列表默认按 结算创建时间 降序。

5. 列表查询

5.1 筛选项

筛选项 匹配方式
结算单编号 模糊
关联订单编号 模糊
组合 条件同时生效(AND)
  • 仅展示有效结算记录(与项目逻辑删除惯例一致;本期无回收站)。
  • 默认每页 20 条。
  • 工具栏:搜索重置(无「新增」)。

5.2 列表列

列名 说明
结算单编号
结算创建时间
关联订单编号
供应商 名称展示
交易总头数 单位「头」
交易总金额 单位「元」
服务费金额 单位「元」
实际应付结算金额 单位「元」
结算状态 待结算 / 已完成
结算凭证 已完成可查看入口;待结算为空
结算完成时间 已完成有值;待结算为空
操作 见 §8.2

6. 完成结算(本模块业务闭环终点)

本模块业务闭环为:待结算 → 上传结算凭证 → 已完成。完成结算成功后,该结算单在本模块内无后续必办步骤(可查询、打印凭证);引导、依赖跳转订单模块。

6.1 入口

待结算 记录显示「完成结算」→ 弹窗 「完成结算支付」(与原型文案一致)。

6.2 弹窗

  • 结算凭证:必填,§3.7。
  • 确定 / 取消(取消不改变结算单)。

6.3 确定后(须同一业务事务,全部成功或全部回滚)

序号 动作
1 结算状态 → 已完成
2 写入 结算完成时间
3 保存 结算凭证

任一步失败:结算单保持 待结算,提示原因;不得出现「已完成但无凭证」。

6.4 前置校验

除结算凭证外,须满足:

  • 结算单仍为 待结算
  • 关联订单仍为 已完成 且有效(未被逻辑删除);
  • 不得已存在结算完成时间或已完成状态(防重复提交)。

6.5 重试与幂等

情况 处理
待结算下再次点击「完成结算」 允许重新上传凭证后确定
已完成 不显示完成结算
并发重复提交 以首次成功为准;后续应提示已完成或操作无效

6.6 对关联订单的影响

  • 完成结算不回写订单状态(订单保持已完成)。
  • 不可因结算完成而撤销或修改订单支付凭证。
  • 不在本模块内打开或跳转订单界面;闭环在结算单状态变为已完成时结束。

7. 查看

  • 所有状态均可「查看」。
  • 详情为只读:§3 全部展示项 + 收费快照明细 + 结算凭证预览 + 审计信息(创建人/时间等,与项目惯例一致)。
  • 不可在详情页修改金额或状态(无编辑入口)。
  • 详情页「查看订单」「跳转订单」等按钮或链接。

8. 功能清单

8.1 本期不提供

能力 说明
新增结算单 仅订单完成支付自动生成
修改结算单 金额、供应商、关联订单均不可改
删除 / 作废结算单
部分结算 / 分期付款
批量导入导出
在本模块完成订单支付 属交易订单管理
替换或上传订单支付凭证 属交易订单管理

8.2 按状态操作矩阵

状态 操作
待结算 完成结算查看
已完成 打印凭证查看

无权限则不显示对应按钮。

8.3 打印凭证

规则
范围 仅已完成
内容 结算单编号、关联订单编号、供应商、交易总头数、交易总金额、服务费、实际应付、结算状态、结算创建/完成时间、结算凭证图像
不含 订单支付凭证、采购明细耳标(若需耳标级明细,在订单模块打印订单凭证)

待结算不提供「打印凭证」;已完成不提供「完成结算」。


9. 业务流程图

9.1 结算主流程(本模块)

flowchart TD
    L[结算单列表] --> F{筛选?}
    F --> L
    L --> V[查看详情]
    L --> P{待结算?}
    P -->|是| Pay[完成结算+结算凭证]
    Pay --> OK{成功?}
    OK -->|否| L
    OK -->|是| Done[已完成]
    Done --> Pr[打印凭证]
    P -->|否| Pr2[打印凭证]
    Pr2 --> L
    Pr --> L

9.2 与交易订单端到端

sequenceDiagram
    participant ME as 市场进栏
    participant O as 交易订单
    participant S as 供应商结算
    participant SUP as 供应商管理
    ME->>O: 建单待支付
    O->>O: 完成支付(订单支付凭证)
    O->>SUP: 读取收费配置
    O->>S: 生成结算单(待结算,金额快照)
    O->>ME: 删除已成交进栏耳标
    S->>S: 完成结算(结算凭证)
    Note over O,S: 订单保持已完成

9.3 状态对照(订单 × 结算)

stateDiagram-v2
    [*] --> 订单待支付: 保存订单
    订单待支付 --> 订单已完成: 完成支付
    订单已完成 --> 结算待结算: 自动生成
    结算待结算 --> 结算已完成: 完成结算
    note right of 订单待支付: 无结算单
    note right of 结算已完成: 订单仍为已完成

10. 关联需求分析(交易订单管理)

详细规则以 ../交易订单管理/交易订单管理功能需求.md 为准;本节保证两模块可联调、无歧义

10.1 职责对照

能力 交易订单管理 供应商结算管理(本模块)
采购明细、耳标
订单支付凭证
触发创建结算单 ✓(完成支付事务内) 被动接收
服务费 / 实际应付计算 ✓(生成时计算并快照) 只读展示
结算凭证、结算完成
按结算单号 / 订单号查询
打印订单小票/凭证
打印结算凭证

10.2 关键字段一致性(生成时刻)

概念 订单侧 结算侧 一致性要求
业务关联键 订单编号 关联订单编号 相等
供应商 订单供应商 结算供应商 相等
交易总头数 相等
交易总金额 相等
服务费 按 §3.5 公式,生成时一次计算
实际应付 总金额 − 服务费
编号体系 YYYYMMDD+3 位 JSD+日期+3 位 独立编号,勿混用

10.3 时间与状态协同

订单状态 结算单 说明
待支付 不存在 完成支付前本模块无数据
已完成 必有待结算或已完成 完成支付成功即生成待结算
已完成(不变) 已完成 结算完成后订单不回退
时间字段 订单 结算
业务起始 订单创建时间 结算创建时间(≈ 订单完成时间)
业务结束 订单完成时间 结算完成时间

10.4 费用快照协同

  • 订单「完成支付」时,若供应商收费方式未配置,订单应拒绝支付,不生成结算单(见订单 §6.5、§11)。
  • 结算单保存的费率、收费标准为生成瞬间供应商主数据快照;事后修改 供应商管理 中的费率,已生成结算单金额不变
  • 财务以结算单金额为准进行付款,不以最新主数据重算。

10.5 凭证双轨

凭证 所属阶段 上传模块 用途
支付凭证 买方支付订单 交易订单管理 证明承销商/买方已付款
结算凭证 向供应商付款 供应商结算管理 证明平台已向供应商结算

两种凭证不可互替;打印、查看各自在对应模块完成。

10.6 异常与边界(联调清单)

场景 处理原则
订单完成支付失败 无结算单;本模块无记录
订单完成支付成功 必有且仅有 1 条待结算单
订单待支付被逻辑删除 不应存在对应结算单
订单已完成 不可删订单;结算单保持
结算待支付重复「完成结算」失败 保持待结算,可重试
结算已完成 不可再次完成结算;订单仍已完成
供应商主数据后续变更 不影响已生成结算单金额
进栏耳标在支付后删除 订单/结算历史数据不变;仅影响后续新订单耳标池

10.7 端到端业务链(平台视角)

市场进栏登记 → 交易订单(待支付) → 完成支付(订单凭证+生成结算单+释放耳标)
    → 供应商结算(待结算) → 完成结算(结算凭证) → 闭环

11. 权限(业务层)

查询列表、查看详情、完成结算、打印凭证 — 由实施按角色配置,本文不列权限编码。

建议分工示例:

角色 建议能力
财务/结算 列表、查看、完成结算、打印凭证
运营 列表、查看(可选)
管理员 全部 + 菜单配置

12. 提示语(示例)

情况 示例
缺结算凭证 请上传结算凭证
凭证格式/大小 文件格式或大小不符合要求
非待结算操作 仅待结算状态可完成结算
已完成重复操作 结算单已完成,无需重复操作
完成结算失败 完成结算失败:{原因}
打印 仅已完成结算单可打印凭证

13. 非功能建议

建议
权限 完成结算与查询分权
审计 完成结算留痕
事务 完成结算与状态、凭证、时间同一事务
易用性 完成结算二次确认(宜展示结算单号、供应商、实际应付)

14. 已确认业务决策(评审纪要)

序号 决策
1 结算单由交易订单完成支付自动生成,本模块不可新增
2 一笔订单对应一条结算单,不可合并多订单
3 服务费、实际应付以生成时快照为准,不随供应商主数据变更重算
4 金额 2 位小数、四舍五入
5 结算凭证规则与订单支付凭证一致(图片、10MB、jpg/jpeg/png)
6 结算完成后不回写订单状态
7 待结算可完成结算;已完成可打印凭证、查看
8 列表按结算单编号、关联订单编号模糊筛选
9 完成结算即本模块业务闭环终点;详情/列表不跳转交易订单
10 关联订单编号仅作展示与筛选,跨模块查订单由用户自行进入订单模块

15. 草稿对照

草稿条目 章节
列表查询 1~2 §5
服务费、实际应付 3~4 §3.5、§3.6
编号 5 §3.1
订单生成 6 §4
状态 7 §2.2
完成结算 8 §6
查看 9 §7
操作 10~11 §8.2
异常格式、技术栈 12~13 不纳入本文

16. 修订记录

版本 说明
1.0 初稿:对齐交易订单 v1.2;结算来源/状态/完成结算/打印;关联分析 §10;不含库表接口
1.1 拍板:完成结算为模块闭环终点;不提供跳转/链接至交易订单(§3.2、§6、§7、§14)