--- title: prop-acc · deposit · 场景 - 装修业户首次缴 5000 保证金 aliases: - 首次缴装修保证金 - deposit-first-time-renovation - 场景-装修业户首次缴保证金 tags: - 场景 - prop-acc - 保证金 - 缴纳 audience: - 业户 - 业务人员 status: 已发布 sub_feature: deposit last_review: 2026-05-25 code_version: 2026-05-22 --- # 场景:装修业户首次缴 5,000 保证金 最常见的保证金场景。业户准备装修,**第一次**给物业交装修押金,系统**当场建账户 + 收钱 + 出收据**。 ## 典型情境 > [!example] 真实情境 > 张阿姨,72 岁,儿子要装修她家(12-3-501)。装修前一天她带着身份证、房产证、装修施工合同来物业前台,要交 ¥5,000 装修保证金。 ## 业户视角(您要做什么) ### 第 1 步:到前台带齐材料 - 身份证(或户口本) - 房产证(或租赁合同 + 业主授权书) - 装修施工合同(物业要存档,确认装修方信息) ### 第 2 步:告诉职员 "我家要装修了,来交装修保证金,房号 12-3-501。" ### 第 3 步:付款 职员告诉您**多少钱**(常见 ¥3,000-10,000,各小区不同),您可选: - **现金** - **微信扫码** - **POS 刷卡** - **银行转账**(需打印银行凭证) ### 第 4 步:拿收据 - 纸质收据:**当场打印** - 电子收据:发到您的微信或邮箱 > [!success] 完成 > 整个过程 10 分钟内搞定。收据写"装修保证金缴纳 ¥5,000",妥善保管,装修结束时退押凭这个。 ## 业务人员视角(物业职员怎么操作) > [!info] 关键差异 > 这是**首次**开户 + 缴款。之后追加缴款走 [[deposit-additional-topup]],流程更简短。 ### 第 1 步:打开后台 登录 Filament 后台 → 保证金 → **新建账户**(`CreateDepositAccount` 页面)。 ### 第 2 步:填表单(账户信息) | 字段 | 填什么 | |---|---| | **缴款人类型(`payer_type`)** | 选 `Owner`(业主)/ `Tenant`(租户)/ `Contractor`(承包商)等;详见 [[payer-types]] | | **缴款人姓名(`payer_name`)** | "张某某" | | **缴款人联系方式(`payer_contact`)** | 张阿姨手机号 | | **业户档案(`community_user_profile_id`)** | 通过房号 12-3-501 找到张阿姨绑定的业户档案(Owner / Tenant 类型必填) | | **房屋单元(`asset_id`)** | 12-3-501 房屋资产 | | **押金种类(`fee_type_id`)** | "装修保证金"(本物业项目预先配置的 FeeType) | | **备注(`remark`)** | 选填,如 "2026 年春季装修,施工方:王装修有限公司" | ### 第 3 步:填首次缴款信息 `CreateDepositAccount` 页面下半部分有"首次缴款"段,**和开户一起一气呵成**: | 字段 | 填什么 | |---|---| | **缴款金额** | ¥5,000 | | **支付方式(PaymentChannel)** | 现金 / 微信 / POS / 银行转账 | | **收款银行账户** | 微信/POS/转账选对应银行;现金可空 | | **缴款备注** | 选填,如 "首次开户缴款" | ### 第 4 步:提交 点击"创建"。系统在一个数据库事务内完成: 1. 建 `DepositAccount`(`status=Active`,`balance=5000`) 2. 建 `CollectionOrder`(`actual_amount=+5000`,`status=Completed`) 3. 建 `DepositTransaction`(`type=deposit`,`amount=5000`,`balance_before=0`,`balance_after=5000`,关联 CO) 4. 触发 `CollectionOrderCompleted` 事件 5. Listener 自动建 `Receipt` + `ReceiptItem`,文案"装修保证金缴纳 ¥5,000" ### 第 5 步:打印 / 发收据 - 后台收据列表找到刚生成的 Receipt → 点击"打印"或"发送" - 把纸质收据交给张阿姨,或直接微信发她 ## 系统流程 ```mermaid sequenceDiagram participant 业户 participant 前台 participant Filament participant 数据库 participant 监听器 业户->>前台: 我要交装修保证金 5000(现金) 前台->>Filament: CreateDepositAccount 填表 + 提交 Filament->>数据库: 开启事务 Filament->>数据库: 1. 建 DepositAccount (Active, balance=5000) Filament->>数据库: 2. 建 CollectionOrder (actual=+5000, Completed) Filament->>数据库: 3. 建 DepositTransaction (deposit, balance 0→5000) Filament->>监听器: 4. 触发 CollectionOrderCompleted 监听器->>数据库: 5. 建 Receipt + ReceiptItem ("装修保证金缴纳 ¥5,000") Filament->>数据库: 提交事务 Filament-->>前台: 成功通知 + 显示新账户 前台->>业户: 给收据 ``` > [!info] 一气呵成 > 5 个数据库写入在同一事务里。任何一步失败,整笔回滚 —— 不会出现"账户建了但钱没记""收据生成了但流水没建"的半成品状态。 ## 常见问题 > [!question] 业户没带身份证 / 房产证可以办吗? > 各物业政策不同,系统不强制证件检查。属于物业内部审核流程。 > [!question] 装修方是装修公司不是业户,该怎么开? > 走 [[deposit-on-behalf-by-company]] 流程:`payer_type=Company`,不绑业户档案,只记公司名 + 联系人。 > [!question] 业户没带够现金可以拆分付款吗? > 单笔 `CollectionOrder` 只支持一种支付方式。可以**先开账户缴一部分**,过几天 [[deposit-additional-topup|追加缴款]] 补齐。 > [!question] 录错金额(把 ¥5,000 录成 ¥50,000)怎么办? > 不要试图改流水,流水是不可变的。正确做法:建一笔 `Refund` 退还多收的差额,业户拿到一张红字收据。详见 [[transaction-types]] "真实修正场景示例" 段。 > [!question] 这个账户绑了张阿姨,但实际付钱的是她儿子,可以吗? > 系统只看 `payer_*` 字段。如果想严格反映"儿子代付",可在 `payer_name` 写儿子名 + `community_user_profile_id` 仍绑张阿姨;退款时收据上文案会按 `payer_name` 显示。或者继续用张阿姨名,备注里说明。 > [!question] 同一业户能开多个押金账户吗? > 可以,只要 `(community_id, fee_type_id, payer_type, asset_id)` 组合不同。例如张阿姨可以同时有"装修保证金"和"入驻押金"两个账户,各自独立。 ## 异常分支 - 录错金额想撤回 → [[refund-partial-after-forfeit]] 或 [[refund-full-no-damage]] - 装修过程出问题(损坏 / 违约)→ [[forfeit-damage-public-area]] / [[forfeit-violation-no-permit]] - 业户和物业有纠纷暂时冻结 → [[freeze-during-dispute]] - 已开账户后续追加 → [[deposit-additional-topup]] ## 相关文档 - [[deposit-account-vs-transaction]] - [[account-state-machine]] - [[payer-types]] - [[refund-full-no-damage]] - [[deposit-additional-topup]]