保证金数据流转图
一、总览:保证金与往来款的全链路
覆盖范围(需求文档 V1.3+):投标保证金 / 履约保证金 / 租赁押金 / 质保金 / 代理保证金 / 往来款(备用金借出、保证金代垫、企业往来款、分公司往来款)。 核心口径:审批通过 ≠ 已付款,支出方向须经"待支付 → 流水匹配 → 冻结中";收入方向不经待支付,到账即冻结中。
┌──────────────────────────────────────────────────────────────────────────┐
│ 保证金 / 往来款 数据流转全景图 │
├──────────────────────────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │
│ │ 线索管理 │ │ 投标管理 │ │ 合同管理 │ │ 退租管理 │ │借款/ │ │
│ │(投标阶段) │ │(中标/落标)│ │(租赁阶段) │ │(退租阶段) │ │往来款 │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │审批 │ │
│ │ │ │ │ └───┬────┘ │
│ ▼ ▼ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ localStorage 数据桥 │ │
│ │ financeTodos | pendingPayments | syncDeposits │ │
│ └───────────────┬────────────────────────┬───────────────────────┘ │
│ │ │ │
│ ┌─────────┴──────┐ ┌─────────┴────────┐ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ 财务待办 │ │ 付款管理 │ │ 收款管理 │ │ 独立登记入口 │ │
│ │(待支付) │ │(付款/退款)│ │(收款核销) │ │ ·收代理保证金登记 │ │
│ └──────────┘ └────┬─────┘ └────┬─────┘ │ ·收分公司往来款登记│ │
│ │ │ └────────┬─────────┘ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────┐ │
│ │ 保证金/往来款管理 │ │
│ │ (统一展示 + 状态管理 + 生成来源追溯) │ │
│ └──────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────┘
生成来源分类(对应需求文档第三章): - 付款方向:线索/投标审批(3.2)或 保证金付款申请·独立入口(3.5)→ 待支付 → 流水匹配 → 冻结中; - 收款方向·应收核销(3.1):合同押金条款 → 应收单 → 收款核销 → 冻结中; - 收款方向·独立登记(3.4):收代理保证金登记 / 收分公司往来款登记 → 登记即冻结中; - 审批单(3.3):借款/往来款审批通过 → 冻结中(往来款支出方向); - 流水识别(3.8):收入流水备注命中"保证金/往来款"关键词 → 直接生成冻结中。
二、投标保证金 - 缴纳流程
线索管理 clue-list.html 财务待办 付款管理 payment.html 保证金管理 deposit.html
┌─────────────────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ │ │ │ │ │ │ │
│ 1.准予投标的线索 │ │ │ │ │ │ │
│ 点击"保证金审批" │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ 2.填写审批表单 │ │ │ │ │ │ │
│ ┌───────────────┐ │ │ │ │ │ │ │
│ │ 金额:10万 │ │ │ │ │ │ │ │
│ │ 账户:招商银行 │ │ │ │ │ │ │ │
│ │ 截止:08-20 │ │ │ │ │ │ │ │
│ └───────────────┘ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ 3.提交审批(自动通过)│ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
│ ├──写入─────┼──financeTodos────>│ 4.待支付 │ │ │ │ │
│ │ │ {审批号, │ 待办 │ │ │ │ │
│ │ │ 付款单号, │ 显示 │ │ │ │ │
│ │ │ 金额,账户} │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
│ └──写入─────┼──pendingPayments─────────────>│ 5.待支付 │ │ │
│ │ {付款单号, │ │ │ 付款单 │ │ │
│ │ 类型:投标保证金│ │ │ 显示在 │ │ │
│ │ 金额,账户} │ │ │ 列表中 │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ 6.确认已付│ │ │
│ │ │ │ │ (流水匹配)│ │ │
│ │ │ 7.已支付 │<──状态更新────│ │ │ │ │
│ │ │ 完成 │ 冻结中 │ │ │ │ │
│ │ │ │ │ ▼ │ │ │
│ │ │ │ │ 判断类型 │ │ │
│ │ │ │ │ 是保证金?│ │ │
│ │ │ │ │ │ 是 │ │ │
│ │ │ │ │ ▼ │ │ │
│ │ │ │ │ 写入 │ │ │
│ │ │ │ │ syncDeposits──────────────────>│ 8.冻结中 │
│ │ │ │ │ │ {保证金ID, │ 列表显示│
│ │ │ │ │ │ 类型:投标保证金, │ │
│ │ │ │ │ │ 金额,日期, │ │
│ │ │ │ │ │ 来源:付款管理} │ │
└─────────────────────┘ └──────────┘ └──────────┘ └──────────┘
localStorage 数据:
financeTodos: [{ id, type:'保证金缴纳', approvalNo, payNo, amount, status:'待支付'->'冻结中' }]
pendingPayments: [{ id, type:'投标保证金', amount, payee, status:'待支付' }]
syncDeposits: [{ id:'DP-XXX', type:'投标保证金', amount, status:'冻结中', fromModule:'付款管理', source:'pay_approval' }]
2.1 保证金付款申请(独立入口 · 非投标触发)
履约保证金独立缴纳、租赁押金缴付业主、代理公司缴纳代理履约保证金等没有投标前置的场景,走独立"保证金付款申请"入口,链路与 3.2 完全一致(共用"审批→待支付→流水匹配→冻结中"):
保证金付款申请(独立入口) 财务待办 付款管理 payment.html 保证金管理 deposit.html
┌──────────────────────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ │ │ │ │ │ │ │
│ 1.发起申请 │ │ │ │ │ │ │
│ 类型:履约保证金 │ │ │ │ │ │ │
│ 收款方:业主/代理公司 │ │ │ │ │ │ │
│ 金额:XX │ │ │ │ │ │ │
│ 关联项目/合同 │ │ │ │ │ │ │
│ └──写入──financeTodos──>│ 2.待支付 │ │ │ │ │ │
│ └──写入──pendingPayments────────────────────────>│ 3.待支付 │ │ │ │
│ {approvalNo 非BZJ前缀, │ │ │ │ 付款单 │ │ │
│ payNo 自动生成} │ │ │ │ 显示 │ │ │
│ │ │ │ │ 4.确认已付│ │ │
│ │ │ │ │ (流水匹配)│ │ │
│ │ │ │ │ │ │ │ │
│ │ │ │ │ ▼ │ │ │
│ │ │ │ │ 写入 │ │ │
│ │ │ │ │ syncDeposits──────────────────>│ 5.冻结中 │
└──────────────────────────┘ └──────────┘ └──────────┘ └──────────┘
localStorage 数据:
pendingPayments: [{ id, type:'履约保证金', amount, payee, status:'待支付', approvalNo:'XXX-YYY' (非BZJ), source:'保证金付款申请' }]
syncDeposits: [{ id:'DP-XXX', type:'履约保证金', status:'冻结中', fromModule:'付款管理', source:'pay_approval' }]
三、投标保证金 - 退还流程
投标管理 bid-list.html 付款管理 payment.html 保证金管理 deposit.html
┌─────────────────────────┐ ┌──────────┐ ┌──────────┐
│ 9. 中标登记 / 落标登记 │ │ │ │ │
│ │ │ │ │ │
│ 中标弹窗选择保证金处理: │ │ │ │ │
│ ○ 转为履约保证金(充抵) │ │ │ │ │
│ ○ 退回投标保证金 ───────────写入──────>│ 10.待支付│ │ │
│ ○ 没收保证金 │ pendingPayments│ 退款单 │ │ │
│ │ {类型:投标 │ 显示在 │ │ │
│ 落标: │ 保证金退回, │ 列表中 │ │ │
│ 自动发起退款 ──────────────写入────────>│ │ │ │
│ │ isRefund:true}│ │ │ │
│ │ │ │ │ │
│ │ │ 11.确认 │ │ │
│ │ │ 已付 │ │ │
│ │ │ │ │ │ │
│ │ │ ▼ │ │ │
│ │ │ 判断: │ │ │
│ │ │ 是退款? │ │ │
│ │ │ │ 是 │ │ │
│ │ │ ▼ │ │ │
│ │ │ 更新 │ │ │
│ │ │ syncDeposits──────────────────>│ 12.退还中│
│ │ │ │ {状态更新: │ ->已退还│
│ │ │ │ 退还中->已退还} │ │
└─────────────────────────┘ └──────────┘ └──────────┘
localStorage 数据:
pendingPayments: [{ id:'PAY-REF-XXX', type:'投标保证金退回', isRefund:true, amount, status:'待支付' }]
syncDeposits: [{ id:'DP-XXX', status:'冻结中'->'退还中'->'已退还' }]
> 退款入口按记录 type 自动分发表单:保证金类(投标/履约/租赁押金/质保金/**代理保证金**)→"退保证金表";往来款类 →"退往来款表"(见需求文档 6.3)。
四、租赁押金 - 收取流程
合同管理 contracts.html 应收账款 AR 收款管理 receipt.html 保证金管理 deposit.html
┌─────────────────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ │ │ │ │ │ │ │
│ 1.签订租赁合同 │ │ │ │ │ │ │
│ 约定押金条款: │ │ │ │ │ │ │
│ ┌───────────────┐ │ │ │ │ │ │ │
│ │ 押金:135,000 │ │ │ │ │ │ │ │
│ │ 租期:2年 │ │ │ │ │ │ │ │
│ │ 应退:2028-01 │ │ │ │ │ │ │ │
│ └───────────────┘ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ 2.合同生效 │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
│ ▼ │ │ │ │ │ │ │
│ 自动生成押金应收单 │ │ │ │ │ │ │
│ AR-2026-XXX-DEP │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
│ └──写入─────┼────────────>│ 3.待收款 │ │ │ │ │
│ │ │ 押金 │ │ │ │ │
│ │ │ 应收单 │ │ │ │ │
│ │ │ 显示在 │ │ │ │ │
│ │ │ 列表中 │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ 4.租客缴费│ │ │
│ │ │ │ │ 收到押金│ │ │
│ │ │ │ │ 收款单 │ │ │
│ │ │ │ │ RC-XXX │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ │ │ ▼ │ │ │
│ │ │ 5.核销 │<──匹配核销─────│ 匹配应收单│ │ │
│ │ │ 完成 │ │ 确认 │ │ │
│ │ │ 已收款 │ │ 核销 │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ │ │ ▼ │ │ │
│ │ │ │ │ 判断: │ │ │
│ │ │ │ │ 是押金? │ │ │
│ │ │ │ │ │ 是 │ │ │
│ │ │ │ │ ▼ │ │ │
│ │ │ │ │ 写入 │ │ │
│ │ │ │ │ syncDeposits──────────────────>│ 6.冻结中│
│ │ │ │ │ │ {保证金ID, │ 列表显示│
│ │ │ │ │ │ 类型:租赁押金, │ │
│ │ │ │ │ │ 金额:135000, │ │
│ │ │ │ │ │ 来源:收款核销} │ │
└─────────────────────┘ └──────────┘ └──────────┘ └──────────┘
localStorage 数据:
syncDeposits: [{ id:'DP-XXX', type:'租赁押金', amount:135000, status:'冻结中', fromModule:'收款管理', arNo:'AR-XXX-DEP', source:'ar_receipt' }]
4.1 独立登记入口(收代理保证金 / 收分公司往来款)
代理公司缴入保证金、分公司划款进总公司等无应收单、无审批前置的场景,直接登记即冻结中(不经待支付):
独立登记入口(收代理保证金登记 / 收分公司往来款登记) 保证金管理 deposit.html
┌──────────────────────────────────────────────────────┐ ┌──────────┐
│ │ │ │
│ 1.录入 │ │ │
│ ┌──────────────────────────────────────────────┐ │ │ │
│ │ 类型: 代理保证金 / 分公司往来款 │ │ │ │
│ │ 对方单位: XX代理公司 / XX分公司 │ │ │ │
│ │ 金额: XX │ │ │ │
│ │ 到账日期/到账账户 │ │ │ │
│ │ 关联项目/代理合同(选填) │ │ │ │
│ └──────────────────────────────────────────────┘ │ │ │
│ │ │ │
│ 2.登记即确认到账 ──写入──syncDeposits──────────────>│ 3.冻结中 │ │
│ {source:'manual_register', │ │ 列表显示│
│ registerBy, registerAt} │ │ │
└──────────────────────────────────────────────────────┘ └──────────┘
localStorage 数据:
syncDeposits: [{ id:'DP-XXX', type:'代理保证金'/'分公司往来款', amount, status:'冻结中',
source:'manual_register', registerBy:'张三', registerAt:'2026-08-03T10:00:00' }]
适用边界(与需求文档 3.4 对齐): - 代理保证金:收方向独立登记;退还走"退保证金表",可扣代理费后部分退还; - 分公司往来款:收方向独立登记;退还走"退往来款表",归还后可走审批关闭; - 若登记时款尚未到账 → 走"应收单+收款核销"链路(3.1),不用独立登记。
五、租赁押金 - 退还流程(退租)
保证金管理 deposit.html 付款管理 payment.html 保证金管理 deposit.html
┌─────────────────────┐ ┌──────────┐ ┌──────────┐
│ │ │ │ │ │
│ 7.退租/合同到期 │ │ │ │ │
│ 保证金到期应退 │ │ │ │ │
│ 点击"发起退款" │ │ │ │ │
│ │ │ │ │ │ │
│ ▼ │ │ │ │ │
│ 写入退款单 │ │ │ │ │
│ ┌───────────────┐ │ │ │ │ │
│ │退给:租客 │ │ │ │ │ │
│ │金额:135,000 │ │ │ │ │ │
│ │扣除:水电欠费 │ │ │ │ │ │
│ └───────────────┘ │ │ │ │ │
│ │ │ │ │ │ │
│ └──写入─────┼─pendingPayments─────>│ 8.待支付 │ │ │
│ │ {类型: │ │ │ │
│ │ 租赁押金退回│ │ 退款单 │ │ │
│ │ isRefund:│ │ 显示在 │ │ │
│ │ true} │ │ 列表中 │ │ │
│ │ │ │ │ │
│ │ │ 9.确认 │ │ │
│ │ │ 已付 │ │ │
│ │ │ │ │ │ │
│ │ │ ▼ │ │ │
│ │ │ 更新 │ │ │
│ │ │ syncDeposits──────────────────>│ 10.已退还│
│ │ │ │ {状态:退还中->已退还}│ 流程结束│
└─────────────────────┘ └──────────┘ └──────────┘
localStorage 数据:
pendingPayments: [{ id:'PAY-REF-XXX', type:'租赁押金退回', isRefund:true, amount, status:'待支付' }]
syncDeposits: [{ id:'DP-XXX', status:'冻结中'->'退还中'->'已退还' }]
> 退款/归还操作通用此链路:保证金类记录(含**代理保证金**)退还时可扣水电欠费/代理费后部分退还;往来款类记录归还后可走审批关闭(差异见需求文档 6.3)。
六、localStorage 数据桥详解
6.1 financeTodos(财务待办)
写入方: 线索管理(保证金审批通过时)、保证金付款申请(独立入口,非投标触发)
读取方: 财务待办页面、付款管理(更新状态)
用途: 财务人员看到"有一笔保证金待支付"
数据结构:
{
id: 'TODO-BZJ-001-123',
type: '保证金缴纳',
source: '投标保证金审批' | '保证金付款申请(独立入口)',
title: '铭扬数字文化产业园1#楼装修工程 - 投标保证金缴纳',
approvalNo: 'BZJ-001-123', // 审批编号;独立入口时非 BZJ 前缀
payNo: 'PAY-001-123', // 付款单号
amount: 10, // 金额(万元)
bankAccount: '招商银行杭州支行 1234567890',
deadline: '2026-08-20',
clueId: 'XS-2026-001', // 独立入口时可为空
projectName: '铭扬数字文化产业园1#楼装修工程',
party: '杭州铭扬物业管理有限公司',
owner: '张三',
status: '待支付', // 审批通过≠已付款; -> '冻结中'(流水匹配)
createdAt: '2026-08-03'
}
6.2 pendingPayments(付款/退款单)
写入方: 线索管理(缴纳)、投标管理(退回/落标)、保证金管理(退租退款)、
保证金付款申请(独立发起缴纳)
读取方: 付款管理(合并到列表)
用途: 付款管理中显示待处理的付款/退款单
数据结构(缴纳):
{
id: 'PAY-001-123',
type: '投标保证金', // 或 '履约保证金'(独立入口发起)
source: '保证金审批 BZJ-001-123' | '保证金付款申请 XXX-YYY',
projectName: '铭扬数字文化产业园1#楼装修工程',
party: '杭州铭扬物业管理有限公司',
payee: '招商银行杭州支行 1234567890',
amount: 100000, // 金额(元)
payMethod: '银行转账',
deadline: '2026-08-20',
status: '待支付', // 审批通过≠已付款; -> '冻结中'(流水匹配)
clueId: 'XS-2026-001', // 独立入口时可为空
approvalNo: 'BZJ-001-123', // 独立入口时非 BZJ 前缀
isRefund: false // 是否退款
}
数据结构(退回):
{
id: 'PAY-REF-001',
type: '投标保证金退回', // 或 '租赁押金退回' / '代理保证金退回' / '往来款退回'
source: '中标退回投标保证金', // 或 '落标退回' / '退租退回' / '退代理保证金' / '退往来款'
projectName: '...',
party: '...',
payee: '招商银行杭州支行 1234567890',
amount: 100000,
payMethod: '银行转账',
deadline: '2026-08-05',
status: '待支付',
bidId: 'TB-2026-001', // 投标单号(投标保证金退回时)
isRefund: true
}
6.3 syncDeposits(保证金记录)
写入方: 付款管理(付款完成时)、收款管理(核销完成时)、独立登记入口(收代理保证金/收分公司往来款)、
流水识别生成(收入流水命中关键词)
读取方: 保证金管理(合并到列表)
用途: 保证金管理中显示保证金/往来款记录
数据结构:
{
id: 'DP-001', // 保证金/往来款编号
sourcePayId: 'PAY-001-123', // 来源付款单(投标保证金)
// 或 sourceReceiptId: 'RC-XXX', // 来源收款单(租赁押金)
type: '投标保证金', // 投标保证金|履约保证金|租赁押金|质保金|代理保证金|往来款
project: '铭扬数字文化产业园1#楼装修工程', // 或关联代理合同/分公司
party: '杭州XX科技', // 对方单位(代理公司/分公司等)
amount: 100000, // 金额(元)
paidDate: '2026-08-03', // 缴纳/到账日期
dueDate: '2028-01-10', // 应退日期
status: '冻结中', // 待支付|冻结中|待退还|退还中|部分退还|已退还|已转履约|已没收|已逾期
source: 'pay_approval', // 生成来源: ar_receipt|manual_register|pay_approval|
// loan_approval|flow_match|manual_fallback
approvalNo: null, // 审批号(投标审批/付款申请/往来款审批单)
registerBy: null, // 独立登记入口登记人(source=manual_register 时有值)
registerAt: null, // 独立登记入口登记时间
entity: '铭扬商业管理有限公司', // 收款主体
contract: 'HT-2026-001', // 关联合同(租赁押金/代理保证金有)
receiptNo: 'RC-001', // 收款流水号
refundNo: null, // 退款流水号
arNo: null, // 应收单号(租赁押金有)
refunds: [], // 退还记录数组
logs: [], // 操作日志数组
fromModule: '付款管理', // 来源模块
syncedAt: '2026-08-03T10:00:00' // 同步时间
}
6.4 pendingBids(投标记录)
写入方: 线索管理(发起投标时)
读取方: 投标管理(合并到列表)
用途: 投标管理中显示从线索发起的投标记录
数据结构:
{
id: 'TB-2026-123',
name: '铭扬数字文化产业园1#楼装修工程',
party: '杭州铭扬物业管理有限公司',
bidAmount: 500,
deposit: null,
depositStatus: '未缴纳',
deadline: '2026-08-20',
openDate: '2026-08-23',
owner: '张三',
clueId: 'XS-2026-001',
status: '筹备中'
}
七、保证金状态流转图
7.1 投标保证金
┌──────────────────────────────────────────────────┐
│ 投标保证金状态流转 │
└──────────────────────────────────────────────────┘
线索审批通过 流水匹配完成 中标登记 退款完成
│ │ │ │
▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌──────────┐ ┌──────────┐
│ 待支付 │───────>│ 冻结中 │────────>│ 退还中 │─────────>│ 已退还 │
│(审批已过)│ │(流水已匹)│ │ │ │ │
└─────────┘ └────┬────┘ └──────────┘ └──────────┘
│ 中标-退回 │
│ │
│ 中标-转履约 │
├────────────────>┌──────────┐ │
│ │ 已转履约 │ │
│ └──────────┘ │
│ │
│ 中标-没收 / 落标 │
│ (落标=退还) │
└────────────────>┌──────────┐ │
│ │ 已没收 │ │
│ └──────────┘ │
│ │
│ 落标 │
└────────────────>┌──────────┐ │
│ 退还中 │────────────>│
└──────────┘ │
│
▼
┌──────────┐
│ 流程结束 │
└──────────┘
说明:审批通过后进入 待支付(审批通过 ≠ 已付款);导入银行流水匹配成功后才变冻结中。独立"保证金付款申请"入口走同一段流转,仅审批号非 BZJ 前缀。
7.2 租赁押金
┌──────────────────────────────────────────────────┐
│ 租赁押金状态流转 │
└──────────────────────────────────────────────────┘
合同签订 收款核销完成 退租/到期 退款完成
│ │ │ │
▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌──────────┐ ┌──────────┐
│ 应收单 │───────>│ 冻结中 │───────>│ 退还中 │─────>│ 已退还 │
│ 待收款 │ │ │ │ │ │ │
└─────────┘ └─────────┘ └──────────┘ └──────────┘
│
│ 部分扣除(水电欠费)
▼
┌──────────┐ ┌──────────┐
│ 部分退还 │─────>│ 已退还 │
└──────────┘ └──────────┘
7.3 代理保证金
┌──────────────────────────────────────────────────┐
│ 代理保证金状态流转 │
└──────────────────────────────────────────────────┘
独立登记 / 流水识别 / 应收核销 到期/代理合同终止 退款完成
│ │ │
▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌──────────┐
│ 冻结中 │────────────────>│ 退还中 │───────>│ 已退还 │
│(款已到账)│ │ │ │ │
└────┬────┘ └──────────┘ └──────────┘
│
│ 代理合同违约
▼
┌─────────┐
│ 已没收 │
└─────────┘
说明:代理保证金为收款方向,直接冻结中(不经待支付);退还走"退保证金表",可扣代理费后部分退还(部分退还 → 剩余退清 → 已退还)。
7.4 往来款(含分公司往来款)
┌──────────────────────────────────────────────────┐
│ 往来款状态流转 │
└──────────────────────────────────────────────────┘
独立登记(收分公司) / 审批单(支出) / 流水识别 归还/结清 退款完成
│ │ │
▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌──────────┐
│ 冻结中 │──────────────────────────>│ 退还中 │─────>│ 已退还 │
│(款已到账)│ │ │ │ │
└─────────┘ └──────────┘ └──────────┘
说明:往来款收方向不经待支付(到账即冻结中);支出方向(备用金借出等)可走审批单链路。退还走"退往来款表",归还后可走审批关闭。
八、各页面职责与读写权限
┌────────────────┬──────────────────────────┬───────────────────────────────────────┐
│ 页面 │ 读 localStorage │ 写 localStorage │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 线索管理 │ - │ financeTodos, pendingPayments, │
│ │ │ pendingBids │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 投标管理 │ pendingBids │ pendingPayments (退款单) │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 合同管理 │ - │ (应收单数据) │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 应收账款 │ (应收单数据) │ - │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 收款管理 │ (应收单数据) │ syncDeposits (核销后写保证金记录) │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 财务待办 │ financeTodos │ - │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 付款管理 │ pendingPayments │ syncDeposits (付款后写保证金记录), │
│ │ │ financeTodos (更新待办状态) │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 保证金付款申请 │ - │ financeTodos, pendingPayments │
│ │ │ (独立发起缴纳, approvalNo 非BZJ) │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 收代理保证金登记 │ - │ syncDeposits (登记即冻结中, │
│ │ │ source=manual_register) │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 收分公司往来款登记│ - │ syncDeposits (登记即冻结中, │
│ │ │ source=manual_register) │
├────────────────┼──────────────────────────┼───────────────────────────────────────┤
│ 保证金管理 │ syncDeposits │ pendingPayments (退款/归还单) │
│ │ │ (读取,不写syncDeposits) │
└────────────────┴──────────────────────────┴───────────────────────────────────────┘
数据流方向(单向不可逆):
线索管理 ──> 财务待办 ──> 付款管理 ──> 保证金管理
│ ↑
└──> 投标管理 ───────────┘ (退款)
合同管理 ──> 应收账款 ──> 收款管理 ──> 保证金管理
│
└──> 付款管理 (退租退款) ──> 保证金管理
保证金付款申请 ──> 财务待办 ──> 付款管理 ──> 保证金管理 (独立付款, 非投标触发)
收代理保证金登记 ──────────────────────────────> 保证金管理 (独立登记, 直接冻结中)
收分公司往来款登记 ───────────────────────────> 保证金管理 (独立登记, 直接冻结中)
借款/往来款审批 ───────────────────────────────> 保证金管理 (审批通过, 冻结中)
九、Console 日志追踪链路
操作: 线索管理 -> 提交保证金审批
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[线索管理] 保证金审批提交开始 ← clue-list.html Console
[线索管理] 已写入财务待办
[线索管理] 已写入付款管理
[线索管理] 保证金审批提交完成
操作: 打开付款管理页面
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[付款管理] 加载pendingPayments ← payment.html Console
[付款管理] 合并付款单: { id: "PAY-001-123", type: "投标保证金" }
[付款管理] pendingPayments合并完成
操作: 点击确认付款
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[付款管理] 确认付款开始
[付款管理] 付款单状态更新为已支付
[付款管理] 检测到保证金类付款,开始写入保证金管理
[付款管理] 保证金记录已写入syncDeposits
[付款管理] 财务待办状态更新为已付款
[付款管理] 确认付款完成
操作: 打开保证金管理页面
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[保证金管理] 加载syncDeposits ← deposit.html Console
[保证金管理] 新增保证金记录: { id: "DP-001", type: "投标保证金" }
[保证金管理] syncDeposits合并完成
操作: 收代理保证金登记 / 收分公司往来款登记
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[保证金管理] 独立登记开始 ← 收代理保证金登记 / 收分公司往来款登记
[保证金管理] 登记即确认到账,直接冻结中
[保证金管理] 写入syncDeposits: { source: "manual_register", registerBy, registerAt }
[保证金管理] 独立登记完成
操作: 保证金付款申请(独立入口)发起
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[保证金付款申请] 发起申请开始
[保证金付款申请] 已写入财务待办 (状态: 待支付)
[保证金付款申请] 已写入付款管理 (approvalNo 非BZJ 前缀)
[保证金付款申请] 发起申请完成
[付款管理] 确认已付(流水匹配)后 → 写入syncDeposits, 状态: 冻结中