docs: update late fee recalculation evidence

This commit is contained in:
tangweijie 2026-06-30 14:07:47 +08:00
parent 241e68f874
commit 6ebae2fd16
2 changed files with 94 additions and 45 deletions

View File

@ -1,45 +0,0 @@
# Late Fee Daily Recalculation Evidence (2026-06-30)
## Scope
- Backend task: daily recalculation service and XXL job for unpaid charge late fees.
- Worktree: `/Volumes/Dpan/github/water-workspace/worktrees/backend-late-fee-recalc`
- Branch: `feat/late-fee-recalc`
## Implemented Files
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/service/charge/latefee/LateFeeRecalculationService.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/job/charge/LateFeeRecalculationJob.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/config/ClockConfig.java`
- `sw-business/sw-business-server/src/test/java/cn/com/emsoft/sw/business/service/charge/latefee/LateFeeRecalculationServiceTest.java`
## Verification
### Targeted Tests
Command:
```bash
mvn -pl sw-business/sw-business-server -am -Dtest=LateFeeRecalculationServiceTest,LateFeeDailyCalculatorTest -Dsurefire.failIfNoSpecifiedTests=false test
```
Result: PASS
- `LateFeeRecalculationServiceTest`: 4 tests, 0 failures, 0 errors, 0 skipped
- `LateFeeDailyCalculatorTest`: 8 tests, 0 failures, 0 errors, 0 skipped
- Total: 12 tests, 0 failures, 0 errors, 0 skipped
### Compile
Command:
```bash
mvn -pl sw-business/sw-business-server -am -DskipTests compile
```
Result: PASS
## Notes
- Maven reported existing effective-model warnings for duplicate/missing plugin declarations in unrelated modules; they did not fail the build.
- Mockito reported the existing dynamic-agent warning during unit tests; it did not fail the test run.

View File

@ -0,0 +1,94 @@
# Late Fee Start Date and Daily Recalculation Evidence (2026-06-30)
## Scope
- Backend feature: late-fee start-date calculation for four configured modes, billing-time persistence, and daily recalculation for unpaid charges.
- Backend worktree: `/Volumes/Dpan/github/water-workspace/worktrees/backend-late-fee-recalc`
- Backend branch: `feat/late-fee-recalc`
- Docs branch: `feat/rev004-dict-alignment-docs`
## Backend Commits
- `8c2714af2 feat: add late fee begin date calculator`
- `1724f0c3c feat: resolve late fee parameter config`
- `282c327e7 feat: add late fee daily calculator`
- `320e50d73 feat: add late fee recalculation mapper helpers`
- `fd5154f83 feat: save late fee begin date during billing`
- `f7207fe61 feat: add daily late fee recalculation job`
- `af05601f1 fix: harden late fee recalculation batch`
## Implemented Files
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/service/charge/latefee/LateFeeSettingCodes.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/service/charge/latefee/LateFeeConfig.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/service/charge/latefee/LateFeeConfigResolver.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/service/charge/latefee/LateFeeBeginDateCalculator.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/service/charge/latefee/LateFeeDailyCalculator.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/service/charge/latefee/LateFeeRecalculationService.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/job/charge/LateFeeRecalculationJob.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/config/ClockConfig.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/dal/mysql/charge/ChargeMapper.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/dal/mysql/paymentrecorddetail/PaymentRecordDetailMapper.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/dal/mysql/latefeereducedetail/LateFeeReduceDetailMapper.java`
- `sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/service/charge/ChargeServiceImpl.java`
- `script/xxl-job-init.sql`
- Unit tests under `sw-business/sw-business-server/src/test/java/cn/com/emsoft/sw/business/service/charge/latefee/`
- `sw-business/sw-business-server/src/test/java/cn/com/emsoft/sw/business/service/charge/ChargeLateFeeBeginDateWiringTest.java`
## Review Fixes
- Paid late-fee deduction now counts only `PaymentAllocationStatusEnum.APPLIED` late-fee payment details, so reversed positive details are not deducted again.
- The daily recalculation batch now selects unpaid charges with non-null `lateFeeBeginDate`, avoiding repeated starvation behind historical rows that cannot be recalculated.
- `script/xxl-job-init.sql` registers handler `lateFeeDailyRecalculation` for business-server with cron `0 30 3 * * ?`.
- `LateFeeRecalculationServiceTest` includes a defensive scenario where a reversed late-fee detail is returned by the mapper and ignored by aggregation.
## Verification
### Focused Late-Fee Tests
Command:
```bash
mvn -pl sw-business/sw-business-server -am -Dtest=LateFeeBeginDateCalculatorTest,LateFeeConfigResolverTest,LateFeeDailyCalculatorTest,LateFeeRecalculationServiceTest,ChargeLateFeeBeginDateWiringTest -Dsurefire.failIfNoSpecifiedTests=false test
```
Result: PASS
- `LateFeeRecalculationServiceTest`: 4 tests, 0 failures, 0 errors, 0 skipped
- `LateFeeConfigResolverTest`: 3 tests, 0 failures, 0 errors, 0 skipped
- `LateFeeBeginDateCalculatorTest`: 7 tests, 0 failures, 0 errors, 0 skipped
- `LateFeeDailyCalculatorTest`: 8 tests, 0 failures, 0 errors, 0 skipped
- `ChargeLateFeeBeginDateWiringTest`: 5 tests, 0 failures, 0 errors, 0 skipped
- Total: 27 tests, 0 failures, 0 errors, 0 skipped
### Existing Accounting Regression Tests
Command:
```bash
mvn -pl sw-business/sw-business-server -am -Dtest=LateFeeDateModeCalculatorTest,PaymentRecordServiceImplTest,AccountingAdjustActionServiceImplTest,ChargeServiceBillingValidationTest -Dsurefire.failIfNoSpecifiedTests=false test
```
Result: PASS
- `ChargeServiceBillingValidationTest`: 7 tests, 0 failures, 0 errors, 0 skipped
- `LateFeeDateModeCalculatorTest`: 4 tests, 0 failures, 0 errors, 0 skipped
- `AccountingAdjustActionServiceImplTest`: 19 tests, 0 failures, 0 errors, 0 skipped
- `PaymentRecordServiceImplTest`: 18 tests, 0 failures, 0 errors, 0 skipped
- Total: 48 tests, 0 failures, 0 errors, 0 skipped
### Compile
Command:
```bash
mvn -pl sw-business/sw-business-server -am -DskipTests compile
```
Result: PASS
## Known Warnings
- Maven reports existing effective-model warnings for duplicate or missing plugin declarations in unrelated modules.
- Mockito reports the existing dynamic-agent warning during unit tests.
- These warnings did not fail the executed verification commands.