气合网

履约保证金扣减管理

李

李明(运营专员)

用户端 / 运营端原型演示

业务流程说明

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

一、业务背景

气合网平台合同执行过程中,若买卖任一方发生违约行为(如未按期交货、数量短缺、未按时付款等), 由守约方在订单列表发起「违约标记」并提交举证材料;对方确认后违约才生效,合同执行状态置为「标记违约」。

违约生效后,由平台运营管理端依据违约相关材料执行扣减:运营人员只读查看材料, 再发起履约保证金扣减,提交后系统立即执行,无审核环节;买卖双方不参与扣减操作,仅在订单列表只读查看结果。 该功能为低频非常规业务场景。

命名约定:本模块统一使用「履约保证金」,与系统中的「保证金」(另一业务)相区分。 二者逻辑独立,本原型涵盖「违约标记 → 违约生效 → 履约保证金扣减」完整链路。

二、完整交互时序图
履约保证金扣减(违约标记 + 运营管理端主导)— 完整时序图
买卖双方(标记方 / 对方)
气合网平台系统
运营管理端(仅执行扣减)
前提:合同已签署并在平台执行中;买卖任一方发现对方违约
① 标记方发起违约标记
(违约类型 / 违约事实 / 举证附件)
提交违约标记 + 举证材料
② 生成违约单(待对方确认)
推送待确认通知 · 违约暂不生效
推送待确认通知
③ 对方查看举证材料
确认违约成立 / 提出异议
(异议须附申诉材料)
确认 / 异议
④ 已确认 → 合同置「标记违约」
已提出异议 → 买卖双方线下处理
(运营端不处理异议)
违约生效后,运营管理端才会介入;未确认或有异议时运营端不发起扣减
仅推送已标记违约合同
⑤ 查看违约相关材料
仅填写扣减金额
发起履约保证金扣减
发起履约保证金扣减
⑥ 系统立即执行扣减
更新履约保证金余额
生成扣减记录(已执行)
推送扣减结果通知
⑦ 接收通知
订单列表查看扣减结果(只读)
全流程结束:扣减提交即执行、不可撤销,合同永久禁止恢复执行

注:实线为主动操作;虚线为系统自动推送与通知。异议由买卖双方线下处理;只有合同状态已变为「标记违约」后, 才进入运营管理端扣减列表。

三、状态流转
违约标记单状态流转(违约生效的前置条件)
(合同执行中)
一方发起违约标记并上传举证材料
待对方确认
待对方确认
对方确认违约成立 → 合同置「标记违约」
已确认(违约生效)
待对方确认
对方提出异议(附申诉材料)→ 线下协商
已提出异议
已提出异议
买卖双方线下达成一致并同步结果 → 违约生效
已确认(违约生效)
已提出异议
买卖双方线下确认驳回 → 违约不生效,可重新标记
已驳回

· 只有「已确认」的违约单,合同执行状态才置为「标记违约」,运营管理端才可发起扣减

· 「已提出异议」由买卖双方线下处理;运营管理端不参与,违约生效前不进入扣减列表

· 一个违约单只允许扣减一次;一个合同最多产生一次成功扣减

· 扣减后合同保持「标记违约」,永久禁止恢复执行、再次发起违约或再次扣减

· 因此同一合同同一时刻至多存在一个未闭环违约单(待对方确认 / 已提出异议 / 已确认未扣减)

扣减记录状态流转
(违约已生效)
运营人员提交申请,系统立即执行
已执行

· 「待发起」的判定口径:该合同存在「已确认且尚未扣减」的违约单 —— 与合同执行状态无关,避免"合同停在标记违约就能反复扣款"

· 「已执行」为扣减状态终态:流程无审核环节,提交即执行;已执行的行不再出现「发起扣减」

· 每条扣减记录必须且只能关联一个已生效的违约标记单(1 违约单 : 1 扣减),作为扣减依据

· 扣减执行后合同保持「标记违约」,并永久禁止恢复执行

四、角色与操作权限
角色可执行操作触发条件
买方 / 卖方(守约方)
  • · 发起违约标记:填写违约类型、违约事实,上传举证材料
  • · 查看自己发起的违约单及对方确认进度
合同已签署且在平台执行中,且无进行中的违约单
买方 / 卖方(被指认方)
  • · 查看对方提交的举证材料与违约事实
  • · 确认违约成立(违约即生效)或提出异议(可附申诉材料)
存在状态为「待对方确认」的违约单且自己为被指认责任方
运营人员(运营管理端)
  • · 查看违约单全部材料(举证材料 / 申诉材料 / 处理时间线)
  • · 对违约已生效的合同发起履约保证金扣减(被扣减方 / 违约类型 / 依据 / 附件自动带出)
  • · 查看扣减详情及处理时间线,搜索、导出扣减记录(CSV)
合同执行状态为「标记违约」,且违约单已确认

注:运营人员只查看材料并执行扣减,不修改具体业务数据、不参与买卖双方异议处理;扣减不可撤销。

五、业务规则

违约标记规则(买卖双方)

  • • 由买卖任一方(守约方)在订单列表对对方发起违约标记,须选择违约类型、填写违约事实并上传举证材料(至少 1 份)
  • • 提交后违约单状态为「待对方确认」,此时违约不生效、合同执行状态不变、运营管理端不介入
  • • 对方确认后违约生效,合同执行状态置为「标记违约」;对方提出异议则由买卖双方线下协商处理
  • • 发起前置:该合同不存在未闭环违约单(待对方确认 / 已提出异议 / 已确认未扣减),且合同不处于「标记违约」状态
  • • 合同产生扣减记录后永久保持「标记违约」,禁止恢复执行、再次发起违约或再次扣减

扣减发起规则(运营管理端)

  • • 仅存在「已确认且尚未扣减」违约单的合同可发起扣减,入口在运营管理端管理表的「发起扣减」操作
  • • 一个违约单只允许扣减一次,一个合同最多产生一次成功扣减;扣减执行后不再出现任何发起入口
  • • 发起扣减时,被扣减方(违约方)、违约类型、违约事实及扣减依据、佐证附件均由已确认违约单带出且只读,运营人员只填写扣减金额
  • • 管理表中可随时打开「违约材料」查看该合同全部违约单(含已闭环历史单)的举证材料、申诉材料与处理时间线,作为扣减判定的依据
  • • 合同停在「标记违约」不代表可以继续扣减;只有已确认、未扣减且合同不存在历史扣减记录的违约单才能发起扣减
  • • 履约保证金余额扣减至 0 后不可再发起新的扣减

争议(异议)处理规则

  • • 被指认方如不认可违约事实,须在待确认阶段提出异议并说明理由,可附申诉材料
  • • 异议不影响合同执行状态,由买卖双方自行线下处理,运营管理端不提供异议待处理入口
  • • 线下处理结果同步为成立后,合同置「标记违约」并进入运营扣减列表;同步为驳回则不扣减
  • • 线下协商结论同步后须记录在违约单时间线中,供审计追溯

扣减金额规则

  • • 支持部分扣减,金额须 > 0 且 ≤ 当前履约保证金余额,最多保留 2 位小数
  • • 单次扣减对应一个违约单;合同成功扣减后流程永久闭环

违约类型(枚举)

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

材料要求

  • • 违约标记的举证材料、对方的申诉材料、扣减的佐证附件均支持 PDF、图片(JPG/PNG)、Excel,单文件 ≤ 20 MB,单次最多 10 个
  • • 举证材料建议:计量报告、交付记录、催告函件、合同条款截图等
  • • 申诉材料建议:不可抗力证明、管线压力记录、往来沟通记录等
  • • 材料存储于对象存储(OSS),数据库仅保存文件 URL;原型内仅记录所选附件名称,不做真实上传

执行与通知规则

  • • 扣减提交后系统立即执行,无审核环节,操作不可撤销;前端须弹窗二次确认被扣减方、扣减金额、余额变化及“永久禁止恢复执行”规则
  • • 违约标记提交、对方确认/异议、线下结果同步、扣减执行均须推送通知相关方(站内信 + 短信)
  • • 执行扣减时同步更新合同履约保证金余额,订单列表与运营管理端数据实时一致

记录导出规则(运营管理端)

  • • 运营管理端管理表可将当前筛选结果导出为 Excel 可直接打开的 CSV 文件(UTF-8 带 BOM,中文不乱码),文件名含导出时间戳
  • • 导出字段:订单编号、合同编号、合同执行状态、履约保证金余额、违约单号、违约单状态、违约标记方、扣减单号、被扣减方、违约类型、扣减金额、扣减状态、发起人、发起时间
  • • 导出范围受当前组合查询条件约束,不受分页限制
  • • 原型内为前端即时导出;真实系统由后端返回 Excel 流,大数据量建议异步导出并回传下载链接
六、系统页面入口说明
订单列表/

买卖双方门户:查看合同状态、发起/确认违约标记、查看扣减结果

  • 演示用「买方视角 / 卖方视角」切换:决定当前登录身份,用于验证违约标记的发起与确认
  • 无未闭环违约单且合同非「标记违约」的行 → 「发起违约标记」:填写违约类型、违约事实并上传举证材料,提交后待对方确认
  • 合同已执行扣减的行 → 操作列只提供「扣减详情」,合同永久禁止恢复执行、再次标记违约或再次扣减
  • 存在「待对方确认」违约单且当前身份为被指认方 → 橙色「待我确认」按钮:查看举证材料后「确认违约成立」或「提出异议」(异议须填说明,可附申诉材料)
  • 违约单的材料与进度统一从操作列的「违约标记…」按钮进入(无违约单时该入口不显示),订单列表不单独占用一列展示违约单号/状态,保持列表简洁
  • 已执行扣减的行 → 「扣减详情」查看扣减金额、依据与时间线(只读)
  • 订单详情按钮(灰色置灰):系统已有功能,原型中不可点击
履约保证金扣减管理/bond-deduction

扣减业务核心操作入口,运营人员工作台

  • 管理表仅展示合同执行状态为「标记违约」的合同;一行对应一个合同及其扣减记录
  • 查询区支持按买家、卖家、合同编号、订单编号、扣减状态组合查询,不再使用顶部状态页签
  • 列表保留订单编号、合同编号、双方、合同状态、余额、被扣减方、扣减金额和扣减状态;移除违约标记、违约类型、扣减单号列
  • 扣减状态与操作列固定在右侧,横向滚动时仍可直接查看和操作;「查看材料」入口用于只读查看违约相关材料
  • 存在「已确认且未扣减」违约单且余额 > 0 的行 → 「发起扣减」:被扣减方、违约类型、扣减依据、举证附件由该违约单自动带出,填写扣减金额后「提交并执行」(弹窗二次确认);已执行的行不再出现该按钮
  • 已有扣减记录的行 → 操作列仅保留「查看」:打开只读扣减详情、查看处理时间线,并通过「依据违约单 · 查看违约材料」跳转到对应的违约标记单
  • 历史的违约与扣减记录统一从「查看」进入,操作列不再堆叠状态文案,避免干扰
  • 右上角可导出当前筛选结果,或「重置演示数据」恢复初始状态(仅原型提供)
业务流程说明(本页)/business-spec

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

  • 时序图、违约单与扣减记录状态流转、角色权限表、业务规则、开发注意事项
七、开发注意事项
违约单状态机

违约标记单须严格按「待对方确认 → 已确认 / 已提出异议 → 已确认 / 已驳回」流转;确认和异议由合同当事方操作,线下处理结果通过既有流程同步,运营扣减端不参与。

违约为前置

扣减必须以「已确认」的违约标记单为前置条件,服务端须校验合同存在生效违约单,禁止绕过违约单直接扣减;扣减记录须冗余保存违约单号以便追溯。

一单一扣约束

一个违约标记单只允许生成一条扣减记录,须在扣减记录表的违约单号字段上建立唯一约束(或加行锁校验),杜绝同一违约事项被重复扣款;已扣减的违约单不得再出现在任何扣减入口。判定"能否扣减"必须基于违约单状态,禁止以"合同执行状态=标记违约"作为唯一依据。

恢复执行锁定

合同产生扣减记录后保持「标记违约」,永久禁止恢复执行、再次发起违约或再次扣减;发起违约与恢复执行时均须校验该合同不存在已执行扣减记录。

材料与举证

违约标记必须至少上传 1 份举证材料;异议须填写异议说明(申诉材料可选)。全部材料存 OSS 并保留上传人、上传时间、材料类别,按角色控制可见范围(对方与运营可见,无关方不可见)。

并发控制

发起违约标记、确认、异议、线下结果同步、扣减均须做并发校验:同一合同不可存在多个进行中的违约单;扣减须校验合同状态(违约已生效)与余额,防止重复扣减或超额扣减。前端校验不能代替后端校验。

状态联动

违约生效时须在事务中更新合同执行状态为「标记违约」;扣减执行时须在同一事务中更新 performanceBondRemaining 并生成扣减记录,避免部分失败。

权限校验

违约标记仅限合同当事方发起与确认,且只能操作「自己作为被指认方」的违约单;运营管理端仅可查看违约材料并发起扣减,不得修改业务数据或处理异议。API 层必须二次校验当前用户角色与数据权限。

通知推送

违约标记提交 → 通知被指认方待确认;对方确认/异议 → 通知发起方;线下结果同步 → 通知买卖双方;扣减执行 → 通知买卖双方。需持久化通知记录,支持失败重发。

操作不可逆

扣减提交即执行且不可撤销,前端需强提示(弹窗二次确认),后端记录完整操作日志(操作人/时间/IP/入参)供审计追溯。

记录不可删

违约标记单、线下争议处理结论、扣减记录均不可物理删除,需完整保留供审计和纠纷处理。

导出功能

运营管理端导出接口需支持全量导出(不受分页限制),返回 Excel 流,文件名含导出时间戳,字段需包含违约单号与违约单状态。

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