| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 35492 |
215 d 1 h |
ranu |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
givemn fin service access to alok |
|
| 35490 |
216 d 1 h |
ranu |
/trunk/ |
given brandwise placement acesseries qty instead of value |
|
| 35487 |
216 d 4 h |
ranu |
/trunk/ |
place ment plan page show catalog status wise |
|
| 35484 |
217 d 2 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
in brnd wise placement showed qty instead of stock value as per tarun sir |
|
| 35480 |
217 d 6 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Fix NPE in getWarehousePartners when warehouseId=0 and show all partner stats; add stack trace logging to GlobalExceptionHandler |
|
| 35466 |
218 d 7 h |
amit |
/trunk/ |
Optimize getActivatedImeiUpdationDate endpoint
- Add 30-day date filter to reduce table scan
- Replace LineItemImeiView with direct LineItemImei table
- Merge results with master brands/warehouses to show all combinations
- Display '-' for missing timestamps instead of hiding rows |
|
| 35465 |
218 d 16 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/ |
Optimize today_po_rbm: single-pass iteration for warehouseWalletAmountModels
- Replace two separate stream operations with single loop
- Use EnumSet for efficient WalletReferenceType lookup
- Use Map.merge() for cleaner aggregation |
|
| 35462 |
218 d 17 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Fix LockAcquisitionException: Use bulk partner type fetch in controllers
Use getTypesForFofoIds() bulk method to avoid N+1 queries in:
- IndentController
- PlacementPlanController
- OrderManagementController |
|
| 35458 |
219 d 0 h |
amit |
/trunk/ |
Revert @Transactional(readOnly=true) - keep @Transactional only at Controller level
Changes:
- profitmandi-web: Controllers use @Transactional(rollbackFor = Throwable.class) at class level, removed method-level @Transactional(readOnly = true)
- profitmandi-fofo: Controllers use @Transactional(rollbackFor = Throwable.class) at class level, removed method-level @Transactional
- profitmandi-dao: Removed @Transactional from services/repositories
Exceptions (called from interceptors, need own transaction):
- RoleManager: @Transactional(readOnly = true) - called from interceptor for auth
- PartnerTypeChangeServiceImpl.getBestPartner(): @Transactional - called from JWTUtil via interceptor
Fixed javax.transaction.Transactional to org.springframework.transaction.annotation.Transactional
Fixed rollbackOn to rollbackFor for Spring compatibility |
|
| 35454 |
219 d 5 h |
amit |
/trunk/ |
perf: Optimize N+1 queries and reduce stream iterations in today_po and today_po_rbm endpoints
MonitorController.java:
- Consolidate 12 stream ops on rbmArrViewModels into single loop
- Consolidate 6 stream ops on sold15daysOldAgingModels into single loop
- Consolidate 6 stream ops on weeklyBillingData into single loop
- Merge double iteration loops into single pass operations
- Replace containsKey+get patterns with computeIfAbsent/getOrDefault
- Add extractRbmNames() helper to eliminate duplicated stream operations
CsServiceImpl.java:
- Fix N+1 in getAuthUserIdAndAuthUserMap using batch selectByIds
- Fix N+1 in getTicketIdAndAuthUserMapUsingTickets using batch selectByIds
- Fix N+1 in getAuthUserIdAndAuthUserMapUsingPositions using batch selectByIds
- Fix N+1 in getCategoryIdAndCategoryUsingPositions using batch selectAll
- Fix N+1 in getRegionIdAndRegionMap using batch selectAll
- Fix N+1 in getAuthUserByPartnerId using batch selectByIds
- Fix double N+1 in getAuthUserAndEsclationTypeByPartnerId
- Fix N+1 in authUserpartnerIdMap using selectByPositionIds
- Fix N+1 in getAuthUserIdPartnerIdMappingByCatIds
- Fix N+1 in getAuthUserIdPartnerIdMapping
RbmTargetServiceImpl.java:
- Fix O(n*m) stream filter in getRbmTodayArr using pre-built lookup maps
- Fix O(n*m) stream filter in setMovementWiseRbmTargets using pre-built maps
today_po.vm:
- Optimize template lookups with single get instead of containsKey+get |
|
| 35453 |
219 d 6 h |
amit |
/trunk/ |
Optimize /indent/today_po_rbm endpoint - reduce DB queries by ~99%
- Consolidate 5 weekly billing queries into 1 using SQL CASE statements
- Add RbmWeeklyBillingModel for consolidated weekly billing data
- Batch fetch partner collection remarks to avoid N+1 queries
- Batch fetch collection map for all fofoIds to avoid N+1 queries in nested loop
- Reduces ~1160 queries to ~10 queries for 50 RBMs |
|
| 35452 |
219 d 8 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Fixed npe issue and performance issue |
|
| 35451 |
219 d 8 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Fixed |
|
| 35439 |
220 d 2 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Fixed |
|
| 35437 |
220 d 5 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Fixed |
|
| 35433 |
220 d 23 h |
amit |
/trunk/profitmandi-fofo/ |
Add @Transactional(readOnly=true) to read-only controllers for performance
Updated 11 controllers that only perform read operations:
- AnalysisDashboardController, InvoiceController, ItemLedgerController
- MapTrackController, MarginController, MongoMigrationController
- PartnerPendingTasksController, PostOfficeController, ScanRecordController
- LogixController, MonitorController
Benefits:
- Hibernate skips dirty checking (faster)
- Database can optimize for read-only queries
- Connection marked as read-only for potential read replica routing
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
|
| 35432 |
221 d 0 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Remove @Transactional from DashboardController
Transaction management now handled at repository level (GenericRepositoryImpl).
Controllers no longer need @Transactional annotation. |
|
| 35430 |
221 d 0 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Fix: Add @Transactional(readOnly = true) to DashboardController
Hibernate's getCurrentSession() requires a transaction context.
Using readOnly=true provides session context with optimizations:
- No row-level locks acquired
- DB can optimize for read-only queries
- Shorter connection hold time than read-write transactions |
|
| 35429 |
221 d 0 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Remove unnecessary @Transactional from DashboardController
- Removed class-level @Transactional(rollbackOn = Throwable.class)
- All 57 methods in this controller are read-only operations (dashboards, charts, reports)
- No transaction management needed for pure read operations
- Reduces unnecessary connection pool usage |
|
| 35415 |
222 d 6 h |
amit |
/trunk/ |
Commit Changes |
|