Files
uniprop-manual/prop-acc/scenarios/deposit/deposit-on-behalf-by-company.md
2026-05-25 22:22:37 +08:00

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-on-behalf-by-company
场景-装修公司代缴
场景
prop-acc
保证金
缴纳
三方账户
业户
业务人员
已发布 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 余额"很简洁,但会出大问题:

  1. 退款时谁的钱是谁的算不清 —— 501 装修完先退,要从 ¥15,000 里退 ¥5,000,剩 ¥10,000 是哪两户的?
  2. 每户的扣罚责任无法独立 —— 502 砸了公共墙,要从 502 的 ¥5,000 里扣,但账户里钱已经混了
  3. 业主侧无法查询自己的押金状态 —— 业主在小程序看"我的押金",看不到自己 ¥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 账户:退给公司 / 承包商(需手工指定回款渠道)

详见 refund-with-payment-channel-switch

[!question] 装修公司倒闭了,押金怎么办? 走 force-close-retain 强制关账并保留资金,等待法律程序确定归属。

[!question] 装修公司转包给装修队,业主想押金挂装修队怎么办? 重新开账户,payer_type=Contractor,payer_name= 装修队负责人。原公司账户走 refund-full-no-damage 退款给装修公司,装修队再缴一笔新账户。不要试图改账户的 payer 字段 —— 缴款人变更等于换主体,审计无法追溯。

[!question] 三户分账户开比一户一户开慢,有批量功能吗? 当前没有批量。3 户开 3 次就行,每次 ~3 分钟。如果业务上常发(装修公司频繁代缴 10+ 户)再加批量入口。

异常分支

  • 装修公司不还业主对应押金 → 业务层面问题,系统不解决(账面退款已退给公司,后续是公司与业主民事关系)
  • 业主提出"装修公司不给退我的押金,物业能直接退给我吗" → 不能。账面缴款人是公司,退款只能退公司。如有纠纷走 freeze-during-dispute 冻结 + 调解

相关文档