Fixed UI issues.
Fixed the issues on the details page of a Civil bond, create page and other UI elements not displaying:
- Updated CivilBondsProspectController:
- editForm now uses findByProspectCodeWithCoupons instead of findByProspectCode.
- details uses findByProspectCodeWithCoupons and now adds: activeOffersCount, activePaymentsCount, activeAllocationsCount
- Updated CivilBondProspectServiceImpl:
- Marked updateProspect as @Transactional.
- In updateProspect, prospect is loaded via findByProspectCodeWithCoupons before addCoupons.
Additionally, added Performance improvements:
- Payment import and persistence optimization
- Added batched persistence for imported payments (saveAll in chunks + flush) to reduce persistence-context growth and memory pressure on large imports.
- Removed redundant object reconstruction during save (payments are now persisted directly).
- Marked read/query methods with @Transactional(readOnly = true).
- Excel import parsing optimizations
- Replaced repeated formatter allocations with reusable formatters.
- Pre-sized collections where possible.
- Simplified row parsing flow to reduce unnecessary checks and allocations.
- Kept behavior compatible with existing import format.
- Domain-level loop and collection efficiency
- Replaced stream-heavy aggregate operations with loop-based implementations in: updatePaymentMismatch(), getActiveOffersCount(), getActiveAllocationsCount(), getActivePaymentsCount()
- Optimized coupon handling: Sort once in addCoupons(...), Return unmodifiable list in getCoupons(), Added @OrderBy("couponDate ASC") for consistent ordering
- Service-layer read-only transaction tuning
- Applied @Transactional(readOnly = true) to query-only methods to reduce dirty-check/flush overhead.
- Reduced repeated value-object and formatter creation in prospect service methods.