--- title: prop-acc · deposit · 场景 - 冻结状态强制全扣并关账 aliases: - 强制全扣关账 - ForceClose forfeit - force-close-forfeit - 场景-冻结强制扣罚关账 tags: - 场景 - prop-acc - 保证金 - 强制关账 audience: - 业务人员 status: 已发布 sub_feature: deposit last_review: 2026-05-25 code_version: 2026-05-22 --- # 场景:冻结状态强制全扣并关账 账户处于 **Frozen** 状态、**还有余额**,**纠纷结果明确利向物业**(损坏归责确认业户全责、违约严重、司法判决物业胜诉等)。物业用 `ForceCloseAction` 选 `forfeit` disposition,**一步完成"解冻 + 全额扣罚 + 关账"**。 ## 典型情境 > [!example] 真实情境 > 刘先生家装修时**多次违反装修管理协议**(深夜施工、随意丢弃建筑垃圾、损坏 3 处公共设施),物业累计要扣 ¥6,000,而账户只有 ¥5,000。其间刘先生拒绝补缴,账户被冻结进入仲裁。仲裁裁决"业户全责,押金 ¥5,000 全部用于罚款,差额 ¥1,000 业户另行支付"。 > > 物业财务依据仲裁书走 ForceClose forfeit,把账户里的 ¥5,000 全扣转入物业收入,账户关闭。差额 ¥1,000 通过司法执行另案处理(不在本系统内)。 ## 业户视角 ### 您会感受到什么 - 收到通知:"您的押金账户已结清,余额 ¥5,000 全额扣罚" - 收到**红字收据**:"装修保证金扣罚 ¥-5,000(强制关账扣罚,事由:仲裁裁决业户全责)" - 银行 / 微信**没有退款**(钱已转入物业收入) - 小程序"我的押金账户"显示 "🔒 已结清,余额 0" ### 您要做什么 - 接受裁决结果(钱已转出账户,无法追回) - 保管红字收据(税务凭证,有时报税) - 如有异议走司法上诉(不在本系统内) ## 业务人员视角 ### 第 1 步:确认全扣判定 - 仲裁裁决书 / 司法判决书 / 物业内部决议(必须书面) - 物业内部已审批,具备实施权限 > [!warning] 比 ForceClose refund 更敏感 > 全扣是把业户的钱全部转入物业,**法律风险**比"全退"更高。书面凭证必须完整,内部多层审批,任何疏漏未来纠纷物业败诉概率大。 ### 第 2 步:打开 Frozen 账户 后台 → 保证金 → 账户列表 → 找 Frozen 账户 → 进 `ViewDepositAccount`。 ### 第 3 步:点击 `ForceCloseAction`(标签"强制关账") Modal 表单: | 字段 | 填什么 | |---|---| | **处置方式 (disposition)** | 选 ✅ **`forfeit`(扣罚)** | | **扣罚事由(memo)** | 必填且详细。例: "2026-XX-XX 仲裁案号 XXX 裁决:业户多次违约,押金 5000 全额作为罚款。" | > [!info] forfeit 不需要选退款渠道 > 扣罚的钱**不退给业户**,直接转入物业收入,无需 PaymentChannel。Modal 表单选 forfeit 后退款渠道字段隐藏。 > [!warning] Policy 守护 > 同 [[force-close-refund]]:`update` 权限 + `isFrozen() && hasBalance()`。 ### 第 4 步:提交 系统调 `ForceCloseDepositAccountAction(disposition=forfeit)`,事务内: 1. 校验 `isFrozen() && hasBalance()` 2. 建 `CollectionOrder`(`actual_amount=-5000` 红字,`status=Completed`)—— 表达"从代管负债转出" 3. 加 `DepositTransaction`(`type=forfeiture`,`amount=5000`,`balance_before=5000`,`balance_after=0`,关联红字 CO) 4. 更新 `balance=0` 5. 直接 `status=Closed`(Frozen → Closed) 6. 在 `meta.force_closed_disposition=forfeit`、`meta.force_closed_memo=...`、`meta.force_closed_at=...` 记审计字段 7. 触发 `CollectionOrderCompleted` → Listener 建红字 Receipt"装修保证金扣罚 ¥-5,000(强制关账扣罚,事由 XXX)" ### 第 5 步:无线下退款,只给红字凭证 后台找到红字 Receipt → 发业户。**不要走任何转账操作** —— 资金已通过 forfeiture 流水转入物业维修收入科目,账面已完成。 ## 系统流程 ```mermaid sequenceDiagram participant 业户 participant 财务 participant Filament participant ForceCloseDepositAccountAction participant 数据库 participant 监听器 Note over 业户,财务: 账户 Frozen + balance=5000,仲裁裁决全扣 财务->>Filament: ViewDepositAccount → ForceCloseAction (disposition=forfeit) Filament->>ForceCloseDepositAccountAction: handle(account, disposition=forfeit, memo) ForceCloseDepositAccountAction->>ForceCloseDepositAccountAction: isFrozen() && hasBalance()? yes ForceCloseDepositAccountAction->>数据库: 开启事务 ForceCloseDepositAccountAction->>数据库: 1. 建 CO (-5000 红字, Completed) ForceCloseDepositAccountAction->>数据库: 2. 建 DepositTransaction (forfeiture, 5000→0) ForceCloseDepositAccountAction->>数据库: 3. balance=0, status=Closed ForceCloseDepositAccountAction->>数据库: 4. meta.force_closed_disposition=forfeit + memo + at ForceCloseDepositAccountAction->>监听器: 5. 触发 CollectionOrderCompleted 监听器->>数据库: 6. 建 Receipt (强制关账扣罚 ¥-5,000) ForceCloseDepositAccountAction->>数据库: 提交事务 Filament-->>财务: 成功通知 财务-->>业户: 红字凭证(无退款) ``` ## 资金流意义 ```mermaid flowchart LR A[业户押金 5000
物业代管负债] -->|forfeit| B[物业维修/罚没收入
5000] ``` 会计上:**其他应付款 → 装修维修收入**,资金从未离开物业账户,只是科目变化。 ## 常见问题 > [!question] forfeit 的钱进什么科目? > 通常进"装修维修收入"或"罚没收入"科目(视物业财务核算细则)。账面通过 `Receipt` 上的 line item 描述触发科目映射(Listener `generateDepositReceiptItems` 按 `DepositTransaction.type=forfeiture` 选词)。 > [!question] 业户能反悔追讨吗? > 已扣的钱要回去**只能走司法**: > - 业户起诉物业不当扣罚 > - 法院判决物业败诉 → 物业按判决退款(可能需开新账户做反向 deposit + refund 操作记账,审计完整) > - 法院判决物业胜诉 → 维持原状 > > 系统层面的 ForceClose 不可逆,司法判决物业败诉走"补偿"路径,不"撤销"原 ForceClose。 > [!question] 仲裁裁决有补充条款(例如要求物业方做某些工作)怎么办? > 系统只处理资金,补充条款(如修复方案、整改要求)需物业线下执行 + 留档。系统不强制关联。 > [!question] 业户已经搬走,联系不上怎么给红字收据? > 系统层面凭证已生成,业务上若联系不上业户: > - 用挂号信寄到登记地址 > - 物业内部档案保留 > - 等业户联系时再补发 > > 如果业户失联前提下连扣罚都不应做(可能未让业户充分应诉),走 [[force-close-retain|资金保留]] 等业户出现更稳妥。 > [!question] 比 forfeit 多扣怎么办(扣 5000 还不够,要扣 6000)? > 账户最多扣到余额清零(`amount ≤ balance` 守护)。**差额追偿不在本系统内**: > - 单独的 [[adhoc-flow-a-vs-flow-b|adhoc 一次性收费]] 流(开违约金账单) > - 司法执行(系统不参与) ## 异常分支 - 部分扣部分退 → 走 [[unfreeze-after-mediation|解冻]] + 普通 [[refund-partial-after-forfeit|扣罚后退余]] - 全退给业户 → [[force-close-refund]] - 资金保留待定 → [[force-close-retain]] ## 相关文档 - [[force-close-refund]] - [[force-close-retain]] - [[freeze-during-dispute]] - [[account-state-machine]] - [[forfeit-damage-public-area]]