fujian_water_biz_doc/docs/evidence/bugfix/meter-reading-billing-p0-guard-2026-06-20.md

1.8 KiB
Raw Blame History

抄表开账 P0 保护修复验证记录

  • 时间2026-06-20 15:56:43 +0800
  • 仓库water-backend
  • 分支develop
  • 范围:普通开账前置状态校验、取消开账账单状态保护

修复内容

  1. ChargeServiceImpl.validateReadingDataBeforeBilling

    • 普通批量开账新增前置条件:抄表记录必须为 CheckStateEnum.REVIEWED
    • 已开账或已有营业账记录仍优先返回重复开账错误。
  2. ChargeServiceImpl.cancelChargeByReadingDataIds

    • 空入参、无关联营业账时直接返回。
    • 关联营业账存在 PayStateEnum.PAID 时禁止取消开账。
    • 关联营业账存在 PayStateEnum.SETTLED 时禁止取消开账。
    • 禁止场景下不删除营业账明细和营业账主记录。

红灯验证

新增测试后、修复实现前执行:

mvn -pl sw-business/sw-business-server -am -Dtest=ChargeServiceBillingValidationTest -Dsurefire.failIfNoSpecifiedTests=false test

结果:

  • cancelChargeByReadingDataIds_shouldRejectPaidCharge 失败:当前实现未抛异常。
  • generateChargeBatch_shouldRejectMeterRecordedReadingDataWithoutReview 失败:当前实现未在校验阶段拦截未复核记录。

绿灯验证

修复后执行:

mvn -pl sw-business/sw-business-server -am -Dtest=ChargeServiceBillingValidationTest -Dsurefire.failIfNoSpecifiedTests=false test

结果:

  • Tests run: 7
  • Failures: 0
  • Errors: 0
  • Skipped: 0
  • BUILD SUCCESS

补充执行:

mvn -pl sw-business/sw-business-server -am -Dtest=ReadingDataServiceImplCheckValidationTest,ChargeServiceBillingValidationTest -Dsurefire.failIfNoSpecifiedTests=false test

结果:

  • Tests run: 8
  • Failures: 0
  • Errors: 0
  • Skipped: 0
  • BUILD SUCCESS

编译验证:

mvn -pl sw-business/sw-business-server -am -DskipTests compile

结果:

  • BUILD SUCCESS