气合网

履约保证金扣减管理

张三(平台管理员)

当前角色切换演示

业务流程说明

履约保证金扣减业务规则、操作流程及注意事项 — 供业务沟通与开发实现参考

一、业务背景

气合网平台合同执行过程中,若买卖任一方发生违约行为(如未按期交货、数量短缺等), 守约方有权发起履约保证金扣减申请

扣减流程采用"发起方申请 → 被申请方确认/拒绝 → 系统执行"的双方协商机制, 不经平台单方审批,保障双方权益对等。该功能为低频非常规业务场景, 仅在合同执行状态为「标记违约」时可触发。

命名约定:本模块统一使用「履约保证金」,与系统中的「履约保证金」(另一业务)相区分。 二者逻辑独立,本原型仅涵盖履约保证金的扣减流程。

二、完整交互时序图
履约保证金扣减 — 完整时序图
买方(申请方)
气合网平台系统
卖方(被申请方)
前提:合同执行状态已被标记为「违约」
① 填写扣减申请
(违约类型/金额/原因/附件)
提交申请
② 创建扣减记录
状态→「待对方确认」
推送通知
③ 收到通知
查看申请详情
分支一:卖方同意扣减
确认扣减(附意见)
④ 执行扣减
更新履约保证金余额
状态→「已确认」
通知双方结果
分支二:卖方拒绝扣减
拒绝(附原因)
⑤ 更新记录
状态→「已拒绝」
通知买方
⑥ 可选:修改后
重新提交申请
分支三:超时自动关闭(7 个工作日未处理)
系统定时检测
超期 → 自动关闭
状态→「已关闭」
通知双方

注:虚线为系统自动通知;实线为用户主动操作;「系统」泳道代表气合网平台后端逻辑。

三、扣减申请状态机
扣减申请状态机
(初始)
发起方提交申请
待对方确认
待对方确认
对方确认
已确认
待对方确认
对方拒绝
已拒绝
待对方确认
7工作日超时
已关闭(超时)
待对方确认
发起方撤回
已撤回
已拒绝
重新申请
待对方确认

注:「已确认」「已关闭」「已撤回」为终态,不可再流转

四、角色与操作权限
角色可执行操作触发条件
买方
  • · 发起扣减申请
  • · 撤回己方申请(待确认阶段)
  • · 确认/拒绝卖方发起的申请
  • · 申请被拒后重新提交
合同执行状态为「标记违约」
卖方
  • · 发起扣减申请
  • · 撤回己方申请(待确认阶段)
  • · 确认/拒绝买方发起的申请
  • · 申请被拒后重新提交
合同执行状态为「标记违约」
平台管理员
  • · 查看全部扣减记录
  • · 查看扣减详情及时间线
  • · 导出扣减记录(Excel)
无限制,管理后台专属
五、业务规则

扣减金额规则

  • 支持部分扣减,金额须 > 0 且 ≤ 当前履约保证金余额
  • 单次申请对应一条违约事项;多次违约需分别发起独立申请
  • 扣减金额由申请方自主填写,被申请方可因金额争议拒绝
  • 履约保证金余额扣减至 0 后不可再发起新申请

违约类型(枚举)

未按期交货质量不达标数量短缺未按时付款违反合同约定其他

佐证材料要求

  • 支持上传 PDF、图片(JPG/PNG)、Excel 格式,单文件建议 ≤ 20 MB
  • 建议提供:合同扫描件、计量报告、违约通知书、催货函件、往来邮件等
  • 被申请方确认/拒绝时,同样可附上反驳材料
  • 附件存储于对象存储(OSS),数据库仅保存文件 URL

超时处理规则

  • 申请提交后,被申请方须在 7 个工作日内确认或拒绝
  • 超时后系统自动将申请状态更新为「已关闭」,并通知双方
  • 申请关闭后,发起方可就同一合同重新发起新的扣减申请
  • 「已关闭」记录保留,不可删除,供审计追溯

重新申请规则

  • 申请被拒绝后,发起方可就同一合同重新发起申请(入口在扣减详情抽屉底部)
  • 重新申请时建议修改金额或补充更完整的证明材料
  • 重新申请后,前一条拒绝记录仍保留,不会被覆盖
  • 同一合同同一时间只允许存在一条「待对方确认」状态的申请

记录导出规则(管理后台)

  • 管理员可在「扣减记录」页面导出当前筛选结果为 Excel 文件
  • 导出字段:扣减单号、合同编号、申请方、被申请方、违约类型、扣减金额、履约保证金变化、状态、申请时间、处理时间
  • 导出范围受当前 Tab(全部/待确认/已完成)及搜索条件约束
六、系统页面入口说明
订单列表/

合同订单主入口,切换买家/卖家视角

  • 标记违约 + 无记录 → 「履约保证金扣减」按钮(红色),发起申请
  • 待确认(发起方)→ 「待确认」按钮(橙色边框),点击查看进度
  • 待确认(接收方)→ 「处理扣减」按钮(橙色实色),进入处理流程
  • 已确认 → 「扣减详情」按钮(绿色边框),查看执行结果
  • 已拒绝 → 「扣减详情」按钮(红色边框),底部可重新申请
  • 订单详情按钮(灰色置灰):系统已有功能,原型中不可点击
履约保证金扣减记录(管理后台)/bond-deduction

平台管理视角,查看所有扣减申请记录

  • Tab 筛选:全部 / 待确认 / 已完成
  • 支持搜索单号、合同编号、申请方
  • 点击「查看」查看扣减详情及操作时间线
  • 「导出记录」按钮:导出当前筛选结果为 Excel
业务流程说明(本页)/business-spec

供业务沟通和开发实现参考

  • 时序图、状态机、角色权限表、业务规则、开发注意事项
七、开发注意事项
并发控制

提交申请前,后端须检查同一合同是否已存在「待对方确认」状态的记录;若存在则拒绝重复提交,返回提示信息。前端检查不能代替后端校验。

状态联动

申请「已确认」后,需同步更新合同表 performanceBondRemaining 字段,确保订单列表与管理后台数据实时一致。建议在事务中执行扣减和余额更新,避免部分失败。

超时任务

需实现定时任务(Cron Job),每日检查「待对方确认」超过 7 个工作日的申请,自动更新状态为「已关闭」并推送通知。注意工作日计算需排除法定节假日。

通知推送

申请提交 → 通知被申请方;对方处理(确认/拒绝)→ 通知申请方;系统超时关闭 → 通知双方。通知渠道可为站内信 + 短信,需持久化通知记录。

权限校验

确认/拒绝操作须严格校验当前用户角色,禁止对己方发起的申请执行确认/拒绝。前端判断不可信,API 层必须二次校验 applicantRole 与当前用户身份。

记录不可删

所有扣减申请记录不可物理删除,需完整保留供审计和纠纷处理。已关闭/已撤回记录可软删除(is_deleted 标志),但后台管理仍可查询。

导出功能

管理后台导出接口需支持分页全量导出(不受分页限制),返回 Excel 流(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet),文件名含导出时间戳。大数据量建议异步导出+下载链接。

附件存储

附件存于 OSS,数据库仅存文件 URL。上传时校验文件类型(白名单:pdf/jpg/png/xlsx),单文件限制 20MB,单次申请附件总数建议 ≤ 10 个。

本文档为交互原型配套说明,最终业务规则以产品评审结论为准