feat: 1200%룰 이연 분급 도래월 지급(PayInstallmentStep) + 코드베이스 신입교육 주석
PayInstallmentStep(Step 4.5): 1200%룰로 이연된 분급(installment_plan SCHEDULED)을 도래월(settle_month=정산월)에 recruit_ledger로 편입해 실제 지급. 이전엔 이연만 되고 도래월 지급 절차가 없어 차액이 영구 미지급되던 갭을 메움. - BatchConfig job flow에 step4b(calcRecruit→payInstallment→calcMaintain) 등록 - InstallmentPlanMapper.resetPaidToScheduledByMonth(+XML)로 재실행 멱등 (진입 시 PAID→SCHEDULED 역산, Step4 deleteBySettleMonth가 원장 정리) - RecruitLedgerMapper insert에 reconcile_status 컬럼, SettlementContext.installmentPaidCount - 단위테스트 3건(정상지급/멱등/계약미존재) GREEN 신입교육 주석: 컨트롤러/서비스/공통/프론트 전반에 도메인·코드 설명 주석 추가 (동작 변경 없음 — 빌드/테스트/타입체크 전부 GREEN으로 무회귀 확인). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -50,3 +50,36 @@ US-D 사업소득 간이지급명세서(월별): commission_statement(MONTHLY)
|
||||
|
||||
검증: ./gradlew build 전모듈 SUCCESS, ga-batch/ga-api/ga-common test PASS, ga-frontend tsc -b PASS, Flyway v126 적용, 엔드포인트 smoke(D 200, 권한게이트 403 정상).
|
||||
주의: 무관한 기존 변경(InstallmentRatioMapper.xml) 미커밋 상태 그대로 보존(내 변경 아님).
|
||||
|
||||
================================================================
|
||||
[남은작업 — 미커밋 변경 완성·검증·커밋] 2026-06-12 (ralph)
|
||||
================================================================
|
||||
미커밋 working tree(342파일 M + 2 신규)를 인수받아 완성·검증·커밋.
|
||||
|
||||
구성 판별: git diff를 EOL/공백 무시(--ignore-space-at-eol --ignore-all-space)+양측 주석제거로
|
||||
정밀 분석 → 진짜 신규 코드는 PayInstallmentStep 기능뿐, 나머지 340파일은 전부 신입교육 주석
|
||||
추가(+EOL 정규화 LF→CRLF로 diff가 전 라인 변경처럼 보였음).
|
||||
|
||||
신규 기능 — PayInstallmentStep(Step 4.5): 1200%룰 이연 분급(installment_plan SCHEDULED)의
|
||||
도래월(settle_month=정산월) 실지급. recruit_ledger 편입(status=CALCULATED, reconcileStatus=MATCHED,
|
||||
commissionYear=planYear) → Step8 aggregate로 settle_master gross 반영. 멱등=진입 시
|
||||
resetPaidToScheduledByMonth(PAID→SCHEDULED) 후 재지급, Step4 deleteBySettleMonth(CALCULATED)가
|
||||
원장 정리. BatchConfig job flow step4b(calcRecruit→payInstallment→calcMaintain) 등록.
|
||||
신규: InstallmentPlanMapper.resetPaidToScheduledByMonth(+XML), RecruitLedgerMapper insert에
|
||||
reconcile_status 컬럼 추가, SettlementContext.installmentPaidCount.
|
||||
|
||||
검증: 전체 ./gradlew build SUCCESSFUL(전 모듈 test 포함), PayInstallmentStepTest 3/3 GREEN
|
||||
(정상지급 100000→tax3300 / 멱등 reset먼저 / 계약미존재 skip), frontend tsc -b 0오류.
|
||||
|
||||
적대적 리뷰(general-purpose THOROUGH) 4건 → PL 증거기반 판정:
|
||||
- #1 sumByContract 미필터로 분급 재clip(HIGH주장): 비차단. PayInstallmentStep은 검사기 미호출
|
||||
→ 이연분급은 7년 일정대로 완납, 재clip 없음. 지급분이 누적한도에 포함되는 건 계약이 실제
|
||||
받은 금액 반영=정상. 신규 모집수수료가 수년 후 들어올 때만 (정상)clip되는 좁은 엣지. 코드
|
||||
주석으로 의도 명시(검사기 미호출·분급분 누적포함=정상) 추가.
|
||||
- #2 @Transactional 부재 원자성(HIGH주장): 반증. .tasklet(tasklet, tx) 단일 트랜잭션,
|
||||
reset+update+insert 원자, 재실행 self-healing.
|
||||
- #3 status 문자열 결합(MED): 현재 양측 'CALCULATED' 정상, 변경 시에만 잠재. 현 버그 아님.
|
||||
- #4 원장 서술필드 NULL(LOW): 집계/정산 무영향(agent_amount만 SUM). ContractVO에 해당 필드
|
||||
없어 깨끗한 수정은 조인쿼리 필요 → 비외과적, 미수정(알려진 경미 한계).
|
||||
유일 코드변경=PayInstallmentStep 클래스 Javadoc에 한도-상호작용 의도 명시(comment-only).
|
||||
deslop: 피처파일 dead code/debug/TODO 0, 주석은 의도된 교육산출물(유지). post-deslop build GREEN.
|
||||
|
||||
Reference in New Issue
Block a user