Files
uniprop-manual/prop-acc/scenarios/deposit/deposit-first-time-renovation.md

166 lines
6.3 KiB
Markdown
Raw Normal View History

2026-05-25 22:22:37 +08:00
---
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]]