业务流程说明
履约保证金扣减业务规则、操作流程及注意事项 — 供业务沟通与开发实现参考
气合网平台合同执行过程中,若买卖任一方发生违约行为(如未按期交货、数量短缺、未按时付款等), 由守约方在订单列表发起「违约标记」并提交举证材料;对方确认后违约才生效,合同执行状态置为「标记违约」。
违约生效后,由平台运营管理端依据违约相关材料执行扣减:运营人员只读查看材料, 再发起履约保证金扣减,提交后系统立即执行,无审核环节;买卖双方不参与扣减操作,仅在订单列表只读查看结果。 该功能为低频非常规业务场景。
命名约定:本模块统一使用「履约保证金」,与系统中的「保证金」(另一业务)相区分。 二者逻辑独立,本原型涵盖「违约标记 → 违约生效 → 履约保证金扣减」完整链路。
(违约类型 / 违约事实 / 举证附件)
推送待确认通知 · 违约暂不生效
确认违约成立 / 提出异议
(异议须附申诉材料)
已提出异议 → 买卖双方线下处理
(运营端不处理异议)
仅填写扣减金额
发起履约保证金扣减
更新履约保证金余额
生成扣减记录(已执行)
订单列表查看扣减结果(只读)
注:实线为主动操作;虚线为系统自动推送与通知。异议由买卖双方线下处理;只有合同状态已变为「标记违约」后, 才进入运营管理端扣减列表。
· 只有「已确认」的违约单,合同执行状态才置为「标记违约」,运营管理端才可发起扣减
· 「已提出异议」由买卖双方线下处理;运营管理端不参与,违约生效前不进入扣减列表
· 一个违约单只允许扣减一次;一个合同最多产生一次成功扣减
· 扣减后合同保持「标记违约」,永久禁止恢复执行、再次发起违约或再次扣减
· 因此同一合同同一时刻至多存在一个未闭环违约单(待对方确认 / 已提出异议 / 已确认未扣减)
· 「待发起」的判定口径:该合同存在「已确认且尚未扣减」的违约单 —— 与合同执行状态无关,避免"合同停在标记违约就能反复扣款"
· 「已执行」为扣减状态终态:流程无审核环节,提交即执行;已执行的行不再出现「发起扣减」
· 每条扣减记录必须且只能关联一个已生效的违约标记单(1 违约单 : 1 扣减),作为扣减依据
· 扣减执行后合同保持「标记违约」,并永久禁止恢复执行
| 角色 | 可执行操作 | 触发条件 |
|---|---|---|
| 买方 / 卖方(守约方) |
| 合同已签署且在平台执行中,且无进行中的违约单 |
| 买方 / 卖方(被指认方) |
| 存在状态为「待对方确认」的违约单且自己为被指认责任方 |
| 运营人员(运营管理端) |
| 合同执行状态为「标记违约」,且违约单已确认 |
注:运营人员只查看材料并执行扣减,不修改具体业务数据、不参与买卖双方异议处理;扣减不可撤销。
违约标记规则(买卖双方)
- • 由买卖任一方(守约方)在订单列表对对方发起违约标记,须选择违约类型、填写违约事实并上传举证材料(至少 1 份)
- • 提交后违约单状态为「待对方确认」,此时违约不生效、合同执行状态不变、运营管理端不介入
- • 对方确认后违约生效,合同执行状态置为「标记违约」;对方提出异议则由买卖双方线下协商处理
- • 发起前置:该合同不存在未闭环违约单(待对方确认 / 已提出异议 / 已确认未扣减),且合同不处于「标记违约」状态
- • 合同产生扣减记录后永久保持「标记违约」,禁止恢复执行、再次发起违约或再次扣减
扣减发起规则(运营管理端)
- • 仅存在「已确认且尚未扣减」违约单的合同可发起扣减,入口在运营管理端管理表的「发起扣减」操作
- • 一个违约单只允许扣减一次,一个合同最多产生一次成功扣减;扣减执行后不再出现任何发起入口
- • 发起扣减时,被扣减方(违约方)、违约类型、违约事实及扣减依据、佐证附件均由已确认违约单带出且只读,运营人员只填写扣减金额
- • 管理表中可随时打开「违约材料」查看该合同全部违约单(含已闭环历史单)的举证材料、申诉材料与处理时间线,作为扣减判定的依据
- • 合同停在「标记违约」不代表可以继续扣减;只有已确认、未扣减且合同不存在历史扣减记录的违约单才能发起扣减
- • 履约保证金余额扣减至 0 后不可再发起新的扣减
争议(异议)处理规则
- • 被指认方如不认可违约事实,须在待确认阶段提出异议并说明理由,可附申诉材料
- • 异议不影响合同执行状态,由买卖双方自行线下处理,运营管理端不提供异议待处理入口
- • 线下处理结果同步为成立后,合同置「标记违约」并进入运营扣减列表;同步为驳回则不扣减
- • 线下协商结论同步后须记录在违约单时间线中,供审计追溯
扣减金额规则
- • 支持部分扣减,金额须 > 0 且 ≤ 当前履约保证金余额,最多保留 2 位小数
- • 单次扣减对应一个违约单;合同成功扣减后流程永久闭环
违约类型(枚举)
材料要求
- • 违约标记的举证材料、对方的申诉材料、扣减的佐证附件均支持 PDF、图片(JPG/PNG)、Excel,单文件 ≤ 20 MB,单次最多 10 个
- • 举证材料建议:计量报告、交付记录、催告函件、合同条款截图等
- • 申诉材料建议:不可抗力证明、管线压力记录、往来沟通记录等
- • 材料存储于对象存储(OSS),数据库仅保存文件 URL;原型内仅记录所选附件名称,不做真实上传
执行与通知规则
- • 扣减提交后系统立即执行,无审核环节,操作不可撤销;前端须弹窗二次确认被扣减方、扣减金额、余额变化及“永久禁止恢复执行”规则
- • 违约标记提交、对方确认/异议、线下结果同步、扣减执行均须推送通知相关方(站内信 + 短信)
- • 执行扣减时同步更新合同履约保证金余额,订单列表与运营管理端数据实时一致
记录导出规则(运营管理端)
- • 运营管理端管理表可将当前筛选结果导出为 Excel 可直接打开的 CSV 文件(UTF-8 带 BOM,中文不乱码),文件名含导出时间戳
- • 导出字段:订单编号、合同编号、合同执行状态、履约保证金余额、违约单号、违约单状态、违约标记方、扣减单号、被扣减方、违约类型、扣减金额、扣减状态、发起人、发起时间
- • 导出范围受当前组合查询条件约束,不受分页限制
- • 原型内为前端即时导出;真实系统由后端返回 Excel 流,大数据量建议异步导出并回传下载链接
买卖双方门户:查看合同状态、发起/确认违约标记、查看扣减结果
- 演示用「买方视角 / 卖方视角」切换:决定当前登录身份,用于验证违约标记的发起与确认
- 无未闭环违约单且合同非「标记违约」的行 → 「发起违约标记」:填写违约类型、违约事实并上传举证材料,提交后待对方确认
- 合同已执行扣减的行 → 操作列只提供「扣减详情」,合同永久禁止恢复执行、再次标记违约或再次扣减
- 存在「待对方确认」违约单且当前身份为被指认方 → 橙色「待我确认」按钮:查看举证材料后「确认违约成立」或「提出异议」(异议须填说明,可附申诉材料)
- 违约单的材料与进度统一从操作列的「违约标记…」按钮进入(无违约单时该入口不显示),订单列表不单独占用一列展示违约单号/状态,保持列表简洁
- 已执行扣减的行 → 「扣减详情」查看扣减金额、依据与时间线(只读)
- 订单详情按钮(灰色置灰):系统已有功能,原型中不可点击
扣减业务核心操作入口,运营人员工作台
- 管理表仅展示合同执行状态为「标记违约」的合同;一行对应一个合同及其扣减记录
- 查询区支持按买家、卖家、合同编号、订单编号、扣减状态组合查询,不再使用顶部状态页签
- 列表保留订单编号、合同编号、双方、合同状态、余额、被扣减方、扣减金额和扣减状态;移除违约标记、违约类型、扣减单号列
- 扣减状态与操作列固定在右侧,横向滚动时仍可直接查看和操作;「查看材料」入口用于只读查看违约相关材料
- 存在「已确认且未扣减」违约单且余额 > 0 的行 → 「发起扣减」:被扣减方、违约类型、扣减依据、举证附件由该违约单自动带出,填写扣减金额后「提交并执行」(弹窗二次确认);已执行的行不再出现该按钮
- 已有扣减记录的行 → 操作列仅保留「查看」:打开只读扣减详情、查看处理时间线,并通过「依据违约单 · 查看违约材料」跳转到对应的违约标记单
- 历史的违约与扣减记录统一从「查看」进入,操作列不再堆叠状态文案,避免干扰
- 右上角可导出当前筛选结果,或「重置演示数据」恢复初始状态(仅原型提供)
供业务沟通和开发实现参考
- 时序图、违约单与扣减记录状态流转、角色权限表、业务规则、开发注意事项
违约标记单须严格按「待对方确认 → 已确认 / 已提出异议 → 已确认 / 已驳回」流转;确认和异议由合同当事方操作,线下处理结果通过既有流程同步,运营扣减端不参与。
扣减必须以「已确认」的违约标记单为前置条件,服务端须校验合同存在生效违约单,禁止绕过违约单直接扣减;扣减记录须冗余保存违约单号以便追溯。
一个违约标记单只允许生成一条扣减记录,须在扣减记录表的违约单号字段上建立唯一约束(或加行锁校验),杜绝同一违约事项被重复扣款;已扣减的违约单不得再出现在任何扣减入口。判定"能否扣减"必须基于违约单状态,禁止以"合同执行状态=标记违约"作为唯一依据。
合同产生扣减记录后保持「标记违约」,永久禁止恢复执行、再次发起违约或再次扣减;发起违约与恢复执行时均须校验该合同不存在已执行扣减记录。
违约标记必须至少上传 1 份举证材料;异议须填写异议说明(申诉材料可选)。全部材料存 OSS 并保留上传人、上传时间、材料类别,按角色控制可见范围(对方与运营可见,无关方不可见)。
发起违约标记、确认、异议、线下结果同步、扣减均须做并发校验:同一合同不可存在多个进行中的违约单;扣减须校验合同状态(违约已生效)与余额,防止重复扣减或超额扣减。前端校验不能代替后端校验。
违约生效时须在事务中更新合同执行状态为「标记违约」;扣减执行时须在同一事务中更新 performanceBondRemaining 并生成扣减记录,避免部分失败。
违约标记仅限合同当事方发起与确认,且只能操作「自己作为被指认方」的违约单;运营管理端仅可查看违约材料并发起扣减,不得修改业务数据或处理异议。API 层必须二次校验当前用户角色与数据权限。
违约标记提交 → 通知被指认方待确认;对方确认/异议 → 通知发起方;线下结果同步 → 通知买卖双方;扣减执行 → 通知买卖双方。需持久化通知记录,支持失败重发。
扣减提交即执行且不可撤销,前端需强提示(弹窗二次确认),后端记录完整操作日志(操作人/时间/IP/入参)供审计追溯。
违约标记单、线下争议处理结论、扣减记录均不可物理删除,需完整保留供审计和纠纷处理。
运营管理端导出接口需支持全量导出(不受分页限制),返回 Excel 流,文件名含导出时间戳,字段需包含违约单号与违约单状态。