1. AGENTS.md 更新 - water-docs: 新增 specs/ 与 docs/design/ 生命周期规则章节 - water-backend: 更新协作引用(建设期/建成后、evidence 模块化) 2. specs/ 重复合并 - 006-reminder-event-design 合并入 003-rev006-reminder-event-design - 001-rev004-accounting 删除冗余 data-model.md + contracts/ - 002-rev005-invoice-flow 删除冗余 data-model.md + contracts/ 3. evidence 按模块归档 - 35 个 REV-004 文件归入 evidence/rev004-accounting/ - 7 个通用 bugfix 文件归入 evidence/bugfix/ 和 bugfix/frontend/ - 新建 rev005-invoice/、rev006-reminder/、rev007-statistics/ 目录 4. guides/ 清理 - 14 个 REV004_*.md 移入 evidence/rev004-accounting/ 5. 遗留文件处理 - docs/research/ 归档到 Archive/06_Migration_Plans/ - backend-check detached worktrees 清理 6. 交叉引用修复 - 006-reminder-event-design → 003-rev006-reminder-event-design - docs/guides/REV004_ → docs/evidence/rev004-accounting/REV004_ 7. DB 设计文档修正(01_Database_Design.md) - biz_invoice 明确为开票配置表,非发票记录表 - 新增 biz_invoice_record 为发票申请/结果主表 - 新增 biz_charge_invoice_rel 账单-发票关联说明 - REV-005 承接口径表名全部修正 8. 发票审计证据 - 新增 evidence/rev005-invoice/2026-06-16-invoice-document-audit.md
2.4 KiB
2.4 KiB
REV004 违约金规则确认(2026-04-15)
结论
当前后续实现应以以下业务规则作为真值:
违约金 = 欠缴水费金额 × 0.1‰ × 逾期天数
该规则意味着:
- 按日计收,不是按月滚动
- 计算基数是欠缴水费金额
- 不含违约金本身
- 不得利滚利
业务前提
违约金产生需满足:
- 逾期未缴
- 经供水单位通知后仍未缴
对 REV004 的实现影响
1. 计算模型
后续 late-fee reduce 的设计与实现,应以“按日计收”模型展开,而不是“按月滚动”模型。
2. date-mode 减免理解
lateFeeType=2(按日期)应理解为:
- 对指定日期区间内对应的逾期天数区间做减免
- 先计算该区间理论应收违约金
- 再形成:
lateFeeBeforereduceAmountlateFeeAfter
3. 需要补齐/确认的系统要素
除现有:
lateFeeBeginDatelateFeepenaltyCoefficient
还应确认或补齐:
- 欠缴本金
- 通知状态 / 通知时间
- 逾期起算日
- 逾期天数
- 上限规则(如部分地区 30%)
- 60 日后续处置边界
与当前仓库现状的关系
当前已确认存在的模型字段
ChargeDO.lateFeeBeginDateChargeDO.lateFeeCostComponentDO.penaltyCoefficient
当前未确认存在的现成实现
仓库中尚未确认存在:
- 明确的“按日计收违约金”统一计算器
- 明确的“按日期区间重算违约金”统一服务
因此,当前应将该规则视为:
- 业务规则真值输入
- 后续需要据此补正式实现
使用建议
后续 PRD / 设计稿 / 代码实现,不建议再使用“按月滚动”表述;应统一表述为:
按日计收、按区间减免、按期累计结果
追加确认(2026-04-15)
系数来源模型
已进一步确认:
- 逐项重算违约金时,系数来源为
CostComponentDO.penaltyCoefficient。 - 取数链路为:
ChargeDetailDO.costComponentCode -> CostComponentDO.code -> penaltyCoefficient。
参与计算范围
- 所有未缴费用项都参与。
- 不收违约金的费用项,不做额外白名单过滤,而是通过
penaltyCoefficient = 0自然贡献 0。
汇总口径
- 每个费用项先单独计算违约金;
- 每项先四舍五入到分;
- 最后再求和。
当前仓库状态
- 已确认存在上述模型链路;
- 但尚未发现现成“逐项按日期重算违约金”的统一实现。