Subversion Repositories SmartDukaan

Rev

Show changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
36302 4 h 53 m amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/ Add 2-min cache on Catalog.selectAllGoodStockBrandWise

Hottest query right now on the DB: 3851 execs x 297ms = ~1143 s over
2.9h uptime. Fired once per target-slab in TodayOfferServiceImpl's
findAllTodayOffer loop whenever the slab has no explicit catalog IDs.

Input is a single String brand (only ~10 brands), output is a list of
Catalog entities with no associations (all primitive/String columns,
no lazy-init risk) and the caller only invokes getBrand/getId on the
results. Safe to cache in the existing in-memory Caffeine
twoMintimeoutCacheManager.

Default Spring key (= brand) is stable; unless skips empty results.
 
36301 5 h 37 m ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/ code optimization of today po rbm page  
36298 6 h 43 m amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/ GRN correction: auto-approve IMEI-only and color-only changes

When a correction request contains only IMEI swaps or item swaps where
old and new items share modelName+modelNumber (color-only change), the
request is persisted as APPROVED with requester as approver and applied
immediately. Mixed/model/qty changes continue to go through the existing
PENDING approval flow.
 
36296 7 h 45 m amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Add 2-min cache on dashboard-family queries

Three queries dominate dashboard DB time (~830 s / 30 min combined) because
they re-execute on every dashboard refresh with near-identical parameters:

- OrderRepositoryImpl.selectPartnersBilledBetweenDates: dynamic endDate is
LocalDateTime.now(), so cache key bucketed to 2-minute boundaries via SpEL
(endDate.toEpochSecond / 120) so calls in the same bucket share an entry.
- UserWalletRepositoryImpl.getPartnerWiseCollectionAchievement and
RbmTargetServiceImpl.getWeeklyBillingDataForMonth: default Spring key
(fofoIds + startDate) is stable, no bucketing needed.

All three use the existing Caffeine 'twoMintimeoutCacheManager' (in-memory,
per-JVM, expireAfterWrite=2min). unless clause skips caching empty results
so legitimately-empty responses don't pin a bad entry.
 
36294 9 h 20 m amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/ Remove @Cacheable from getFirstBillingDate

Temporary revert while cache null-handling is reviewed end-to-end.
The method returns null for partners with no billing history; the
Redis cache (disableCachingNullValues) was causing log noise even
after unless="#result == null" was added. Reverting to direct DB
lookup until a proper caching strategy (e.g. per-cache nulls or
Optional return type) is decided.
 
36293 9 h 28 m amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/ Fix IllegalArgumentException when caching null firstBillingDate

Redis cache manager (redisEternalCacheManager) has disableCachingNullValues,
so every partner with no billing history threw IllegalArgumentException
from RedisCache.put. Added unless="#result == null" to skip cache writes
for null results; non-null results still cache normally.
 
36291 9 h 52 m amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/ Optimize slow DB queries: split fan-out join, FORCE INDEX on wallet history

- CurrentInventorySnapshotRepositoryImpl.getSpilitStockBatch: split
LEFT-JOIN fan-out into two independent aggregates (~8x faster);
fixes SUM(DISTINCT) undercounting bug where same availability/qty
values across items collapsed into one.
- UserWalletRepositoryImpl.getWarehousewiseCollection: HQL -> native
SQL with FORCE INDEX(idx_uwh_wallet_timestamp) so timestamp range
filters at index level instead of row filter (~4x faster, 3.1s -> 722ms).
- PartnerCollectionPlanRepositoryImpl.getCommitmentCollectionSummary:
Criteria 3-Root CROSS JOIN -> explicit INNER JOIN + FORCE INDEX
(idx_uwh_wallet_timestamp) (~3.5x faster).
 
36290 9 h 54 m aman /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Fix:Finance code to finance team after code creation  
36288 10 h 30 m amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ hadb1 perf: cache firstBillingDate, fix N+1 item query, push eInvoice filter to SQL, sort updateRisk by fofoId  
36287 1 d 3 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/ sales dispostion updated  
36285 1 d 3 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/ Force idx_order_customer_billing index on spilitStock queries — optimizer picks wrong index (978K global scan vs 902 rows per partner)  
36284 1 d 3 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ code optimization of today po rbm page  
36283 1 d 3 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/ uday sing maill added in po approval  
36282 1 d 3 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/ Optimize /partner/hidAllocation: replace N+1 getSpilitStock loop with batch call, add fofo_id filter to sales subquery, fix DATE() preventing index usage on create_timestamp  
36278 1 d 12 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/ ADD OPENING STOCK  
36276 2 d 6 h ranu /trunk/ unique call and recording will show on dashboard  
36273 2 d 12 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/warehouse/ Fix app config  
36272 3 d 4 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Add receiveDate to WarehouseSupplierInvoice

Added receiveDate field to warehouse.invoice entity to track when goods
were physically received. Set from PORowModel.getReceivedDate() during
GRN processing in PurchaseOrderServiceImpl.addPORowModels.
 
36271 3 d 5 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ Fix processInvoiceReturn skipping SALE_RET for non-serialized items

processInvoiceReturn was only creating warehouse.scanNew SALE_RET entries
for serialized items (looked up by serial number). Non-serialized items
like accessories were silently skipped, leaving warehouse inventory
unreturned.

Fixed by working directly off SALE scans from warehouse.scanNew instead
of serial number lookup. This handles both serialized and non-serialized
items uniformly. Also uses actual sale quantity instead of hardcoded 1.
 
36270 3 d 5 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/ Fix purchase.receivedOn to use actual GRN time instead of invoice registration date  

Show All