6.8 KiB
title, aliases, tags, audience, status, sub_feature, last_review, code_version
| title | aliases | tags | audience | status | sub_feature | last_review | code_version | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| prop-acc · deposit · 场景 - 装修公司代业户缴纳 |
|
|
|
已发布 | deposit | 2026-05-25 | 2026-05-22 |
场景:装修公司代业户缴纳
装修公司本月承接小区多户业主装修,公司账户一次性垫付多张保证金。每户单独开账户,缴款人记公司而非业主。
典型情境
[!example] 真实情境 王老板的"王装修有限公司"本月在小区承接 3 户业主(12-3-501 / 12-3-502 / 12-3-503)的装修。三户业主都让王老板帮忙付保证金,王老板直接刷公司对公账户一笔转 ¥15,000 到物业。物业要为这 3 户分别开 3 个押金账户。
业户视角(装修公司王老板)
第 1 步:到前台带齐材料
- 营业执照(公司主体证明)
- 三户业主的装修施工合同(每户一份)
- 三户业主的授权书(允许王装修代缴押金)
- 三户房产证复印件
- 公司对公账户银行卡(用于退款时回款)
第 2 步:告诉职员
"我帮 501、502、503 三户业主交装修保证金,每户 ¥5,000,从我公司账户一笔转 ¥15,000 过来。"
第 3 步:对公转账
把 ¥15,000 转到物业指定收款账户(转账备注写"3 户装修押金代缴")。
第 4 步:拿 3 张收据
物业为每户单独建账户、单独出收据。您拿到:
- 收据 1:"装修保证金缴纳 ¥5,000(12-3-501,业主李某某)"
- 收据 2:"装修保证金缴纳 ¥5,000(12-3-502,业主陈某某)"
- 收据 3:"装修保证金缴纳 ¥5,000(12-3-503,业主刘某某)"
每张收据"缴款人"写王装修有限公司(您),但"关联业户"写对应业主。
[!warning] 退款回哪 退款时退到您公司对公账户(因为缴款人是您),不是退给业主。三户结清后您拿到 3 张红字退款收据,自己再跟业主结清。
业务人员视角(物业职员)
[!info] 关键差异 与 deposit-first-time-renovation的最大不同:
payer_type = Company(不是 Owner)- 不绑业户档案(
community_user_profile_id = NULL)- 用
payer_name+payer_contact记公司名 + 联系人- 但仍绑业户档案到
community_user_profile_id是允许的 —— 若你想精确表达"代缴的对象是哪位业主",可以填业主的 profile id,系统不强制三方账户为空
第 1 步:为每户开账户(3 个)
每户单独打开 CreateDepositAccount,填:
| 字段 | 12-3-501 | 12-3-502 | 12-3-503 |
|---|---|---|---|
payer_type |
Company |
Company |
Company |
payer_name |
"王装修有限公司" | "王装修有限公司" | "王装修有限公司" |
payer_contact |
王老板手机 | 王老板手机 | 王老板手机 |
community_user_profile_id |
业主李某某(可选,推荐填) | 业主陈某某(可选) | 业主刘某某(可选) |
asset_id |
12-3-501 房屋 | 12-3-502 房屋 | 12-3-503 房屋 |
fee_type_id |
装修保证金 | 装修保证金 | 装修保证金 |
| 首次缴款金额 | ¥5,000 | ¥5,000 | ¥5,000 |
| 支付方式 | 银行转账 | 银行转账 | 银行转账 |
| 收款银行账户 | 物业指定收款账户 | 同上 | 同上 |
| 备注 | "王装修代缴" | "王装修代缴" | "王装修代缴" |
提交 3 次,生成 3 个独立的 DepositAccount + 3 张 Receipt。
第 2 步:核对对公转账记录
物业会计核对银行流水:王装修一笔转入 ¥15,000 == 3 张 Receipt 合计 ¥15,000 ✅。
第 3 步:把 3 张收据交给王老板
[!tip] 不要把收据交给业主 业主交的不是这笔钱,收据上"缴款人"是公司。给业主反而会让退款时找钱方向混乱。
系统视角:为什么不能一个账户装多户
[!warning] 反模式 看起来"王装修一个账户记 ¥15,000 余额"很简洁,但会出大问题:
- 退款时谁的钱是谁的算不清 —— 501 装修完先退,要从 ¥15,000 里退 ¥5,000,剩 ¥10,000 是哪两户的?
- 每户的扣罚责任无法独立 —— 502 砸了公共墙,要从 502 的 ¥5,000 里扣,但账户里钱已经混了
- 业主侧无法查询自己的押金状态 —— 业主在小程序看"我的押金",看不到自己 ¥5,000,只看到一个公司账户
所以即使是"一笔转账",也必须开 N 个独立账户,每个对应一户。系统设计的"账户 + 流水"模式天然支持这种细颗粒度,详见 deposit-account-vs-transaction。
系统流程
sequenceDiagram
participant 王装修
participant 前台
participant Filament
participant 数据库
participant 监听器
王装修->>前台: 我帮 3 户业主交押金,公司对公转 15000
Note over 前台: 核对转账已到账
loop 3 次(每户一次)
前台->>Filament: CreateDepositAccount (payer=Company, asset=N号房, amount=5000)
Filament->>数据库: 建 DepositAccount + CO (+5000) + DepositTransaction
Filament->>监听器: 触发 CollectionOrderCompleted
监听器->>数据库: 建 Receipt ("装修保证金缴纳 ¥5,000")
end
前台->>王装修: 给 3 张收据
常见问题
[!question] 装修公司账户和业主账户在退款时差异? 业务上差异最大的是"退给谁":
- Owner / Tenant 账户:退给业主本人(通常原路退,看缴款渠道)
- Company / Contractor 账户:退给公司 / 承包商(需手工指定回款渠道)
[!question] 装修公司倒闭了,押金怎么办? 走 force-close-retain 强制关账并保留资金,等待法律程序确定归属。
[!question] 装修公司转包给装修队,业主想押金挂装修队怎么办? 重新开账户,
payer_type=Contractor,payer_name=装修队负责人。原公司账户走 refund-full-no-damage 退款给装修公司,装修队再缴一笔新账户。不要试图改账户的 payer 字段 —— 缴款人变更等于换主体,审计无法追溯。
[!question] 三户分账户开比一户一户开慢,有批量功能吗? 当前没有批量。3 户开 3 次就行,每次 ~3 分钟。如果业务上常发(装修公司频繁代缴 10+ 户)再加批量入口。
异常分支
- 装修公司不还业主对应押金 → 业务层面问题,系统不解决(账面退款已退给公司,后续是公司与业主民事关系)
- 业主提出"装修公司不给退我的押金,物业能直接退给我吗" → 不能。账面缴款人是公司,退款只能退公司。如有纠纷走 freeze-during-dispute 冻结 + 调解