Subversion Repositories SmartDukaan

Rev

Rev 34337 | Rev 34348 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 34337 Rev 34343
Line 2378... Line 2378...
2378
        // throw new Exception();
2378
        // throw new Exception();
2379
    }
2379
    }
2380
 
2380
 
2381
    public void checkfocusedModelInPartnerStock() throws Exception {
2381
    public void checkfocusedModelInPartnerStock() throws Exception {
2382
 
2382
 
2383
        List<Integer> fofoIds = fofoStoreRepository.selectAll().stream().filter(x -> x.isActive()).map(x -> x.getId()).collect(Collectors.toList());
2383
        List<FofoStore> fofoStores = fofoStoreRepository.selectAll().stream().filter(x -> x.isActive()).collect(Collectors.toList());
2384
        Map<Integer, Map<Integer, List<SaholicCIS>>> warehouseItemAvailabilityMap = saholicInventoryService.getSaholicStock();
2384
        Map<Integer, Map<Integer, List<SaholicCIS>>> warehouseItemAvailabilityMap = saholicInventoryService.getSaholicStock();
2385
        Map<Integer, String> warehouseMap = ProfitMandiConstants.WAREHOUSE_MAP;
2385
        Map<Integer, String> warehouseMap = ProfitMandiConstants.WAREHOUSE_MAP;
2386
        Map<Integer, FofoReportingModel> partnerIdSalesHeadersMap = this.getPartnerIdSalesHeaders();
2386
        Map<Integer, FofoReportingModel> partnerIdSalesHeadersMap = this.getPartnerIdSalesHeaders();
2387
 
-
 
-
 
2387
        Map<Integer,List<FocusedModel>> focusedModelsMap = focusedModelRepository.selectAll().stream().collect(Collectors.groupingBy(x->x.getRegionId()));
2388
        Map<Integer, Map<Integer, List<SaholicPOItem>>> warehousePoItemAvailabilityMap = saholicInventoryService.getSaholicPOItems();
2388
        Map<Integer, Map<Integer, List<SaholicPOItem>>> warehousePoItemAvailabilityMap = saholicInventoryService.getSaholicPOItems();
2389
        Map<Integer, List<FocusedModelShortageModel>> focusedModelShortageReportMap = new HashMap<>();
2389
        Map<Integer, List<FocusedModelShortageModel>> focusedModelShortageReportMap = new HashMap<>();
-
 
2390
        Map<Integer,List<Integer>> partnerRegionMap = partnerRegionRepository.selectAll().stream().collect(Collectors.groupingBy(x->x.getFofoId(),Collectors.mapping(x->x.getRegionId(),Collectors.toList())));
2390
        for (Integer fofoId : fofoIds) {
2391
        for (FofoStore fofoStore : fofoStores) {
-
 
2392
            List<Integer> regionIds = partnerRegionMap.get(fofoStore.getId());
-
 
2393
            LOGGER.info("regionIds" + regionIds);
-
 
2394
            if (regionIds==null || regionIds.size() == 0) {
-
 
2395
                LOGGER.info("No region found for partner {}", fofoStore);
-
 
2396
                continue;
-
 
2397
            }
-
 
2398
            LOGGER.info("before focusedCatalogIdAndQtyMap");
-
 
2399
 
-
 
2400
            Map<Integer, Optional<Integer>> focusedCatalogIdAndQtyMap = regionIds.stream().map(focusedModelsMap::get).flatMap(x->x!=null ? x.stream():Stream.empty())
-
 
2401
                    .collect(groupingBy(FocusedModel::getCatalogId, mapping(FocusedModel::getObsMinimumQty, Collectors.maxBy(Integer::compareTo))));
-
 
2402
 
-
 
2403
            LOGGER.info("after focusedCatalogIdAndQtyMap");
-
 
2404
 
-
 
2405
 
2391
            List<FocusedModelShortageModel> focusedModelShortageList = new ArrayList<>();
2406
            List<FocusedModelShortageModel> focusedModelShortageList = new ArrayList<>();
2392
            focusedModelShortageReportMap.put(fofoId, focusedModelShortageList);
2407
            focusedModelShortageReportMap.put(fofoStore.getId(), focusedModelShortageList);
-
 
2408
            LOGGER.info("Before retailerService.getFofoRetailer(fofoId)");
2393
            CustomRetailer customRetailer = retailerService.getFofoRetailer(fofoId);
2409
            CustomRetailer customRetailer = retailerService.getFofoRetailer(fofoStore.getId());
-
 
2410
            LOGGER.info("After retailerService.getFofoRetailer(fofoId)");
2394
            Map<Integer, Integer> processingOrderMap = null;
2411
            Map<Integer, Integer> processingOrderMap = null;
2395
            Map<Integer, Integer> catalogIdAndQtyMap = null;
2412
            Map<Integer, Integer> catalogIdAndQtyMap = null;
2396
            Map<Integer, Integer> grnPendingOrdersMap = null;
2413
            Map<Integer, Integer> grnPendingOrdersMap = null;
2397
 
2414
 
2398
            Map<Integer, Integer> currentInventorySnapshot = currentInventorySnapshotRepository.selectByFofoId(fofoId).stream().collect(Collectors.toMap(x -> x.getItemId(), x -> x.getAvailability()));
2415
            Map<Integer, Integer> currentInventorySnapshot = currentInventorySnapshotRepository.selectByFofoId(fofoStore.getId()).stream().collect(Collectors.toMap(x -> x.getItemId(), x -> x.getAvailability()));
2399
 
2416
 
2400
            if (!currentInventorySnapshot.isEmpty()) {
2417
            if (!currentInventorySnapshot.isEmpty()) {
2401
                catalogIdAndQtyMap = itemRepository.selectByIds(currentInventorySnapshot.keySet()).stream().collect(groupingBy(x -> x.getCatalogItemId(), Collectors.summingInt(x -> currentInventorySnapshot.get(x.getId()))));
2418
                catalogIdAndQtyMap = itemRepository.selectByIds(currentInventorySnapshot.keySet()).stream().collect(groupingBy(x -> x.getCatalogItemId(), Collectors.summingInt(x -> currentInventorySnapshot.get(x.getId()))));
2402
 
2419
 
2403
            }
2420
            }
2404
 
2421
 
2405
            Map<Integer, Integer> grnPendingOrders = orderRepository.selectPendingGrnOrders(fofoId).stream().collect(groupingBy(x -> x.getLineItem().getItemId(), Collectors.summingInt(x -> x.getLineItem().getQuantity())));
2422
            Map<Integer, Integer> grnPendingOrders = orderRepository.selectPendingGrnOrders(fofoStore.getId()).stream().collect(groupingBy(x -> x.getLineItem().getItemId(), Collectors.summingInt(x -> x.getLineItem().getQuantity())));
2406
            if (!grnPendingOrders.isEmpty()) {
2423
            if (!grnPendingOrders.isEmpty()) {
2407
                grnPendingOrdersMap = itemRepository.selectByIds(grnPendingOrders.keySet()).stream().collect(groupingBy(x -> x.getCatalogItemId(), Collectors.summingInt(x -> grnPendingOrders.get(x.getId()))));
2424
                grnPendingOrdersMap = itemRepository.selectByIds(grnPendingOrders.keySet()).stream().collect(groupingBy(x -> x.getCatalogItemId(), Collectors.summingInt(x -> grnPendingOrders.get(x.getId()))));
2408
 
2425
 
2409
            }
2426
            }
2410
 
2427
 
2411
            Map<Integer, Integer> processingOrder = orderRepository.selectOrders(fofoId, orderStatusList).stream().collect(groupingBy(x -> x.getLineItem().getItemId(), Collectors.summingInt(x -> x.getLineItem().getQuantity())));
2428
            Map<Integer, Integer> processingOrder = orderRepository.selectOrders(fofoStore.getId(), orderStatusList).stream().collect(groupingBy(x -> x.getLineItem().getItemId(), Collectors.summingInt(x -> x.getLineItem().getQuantity())));
2412
            if (!processingOrder.isEmpty()) {
2429
            if (!processingOrder.isEmpty()) {
2413
                processingOrderMap = itemRepository.selectByIds(processingOrder.keySet()).stream().collect(groupingBy(x -> x.getCatalogItemId(), Collectors.summingInt(x -> processingOrder.get(x.getId()))));
2430
                processingOrderMap = itemRepository.selectByIds(processingOrder.keySet()).stream().collect(groupingBy(x -> x.getCatalogItemId(), Collectors.summingInt(x -> processingOrder.get(x.getId()))));
2414
 
2431
 
2415
            }
2432
            }
2416
 
2433
 
2417
            List<String> brands = mongoClient.getMongoBrands(fofoId, null, 3).stream().map(x -> (String) x.get("name")).collect(Collectors.toList());
-
 
2418
 
2434
 
2419
            List<Integer> regionIds = partnerRegionRepository.selectByfofoId(fofoId).stream().map(x -> x.getRegionId()).collect(Collectors.toList());
-
 
2420
            LOGGER.info("regionIds" + regionIds);
-
 
2421
            if (regionIds.size() == 0) {
-
 
2422
                LOGGER.info("No region found for partner {}", fofoId);
-
 
2423
                continue;
-
 
2424
            }
-
 
2425
            Map<Integer, Optional<Integer>> focusedCatalogIdAndQtyMap = focusedModelRepository.selectAllByRegionIds(regionIds).stream().collect(groupingBy(FocusedModel::getCatalogId, mapping(FocusedModel::getObsMinimumQty, Collectors.maxBy(Integer::compareTo))));
-
 
2426
 
-
 
2427
            LOGGER.info("focusedCatalogIdAndQtyMap" + focusedCatalogIdAndQtyMap);
-
 
2428
 
-
 
2429
            Map<String, RetailerBlockBrands> retailerBlockBrands = retailerBlockBrandsRepository.selectAllByRetailer(fofoId).stream().collect(Collectors.toMap(x -> x.getBlockBrands(), x -> x));
2435
            //Map<String, RetailerBlockBrands> retailerBlockBrands = retailerBlockBrandsRepository.selectAllByRetailer(fofoId).stream().collect(Collectors.toMap(x -> x.getBlockBrands(), x -> x));
2430
 
2436
 
2431
 
2437
 
2432
            for (Entry<Integer, Optional<Integer>> entry : focusedCatalogIdAndQtyMap.entrySet()) {
2438
            for (Entry<Integer, Optional<Integer>> entry : focusedCatalogIdAndQtyMap.entrySet()) {
2433
                int minQty = entry.getValue().get();
2439
                int minQty = entry.getValue().get();
2434
                int inStockQty = 0;
2440
                int inStockQty = 0;
Line 2455... Line 2461...
2455
                int shortageQty = minQty - totalQty;
2461
                int shortageQty = minQty - totalQty;
2456
                List<Item> items = itemRepository.selectAllByCatalogItemId(entry.getKey());
2462
                List<Item> items = itemRepository.selectAllByCatalogItemId(entry.getKey());
2457
 
2463
 
2458
                TagListing tagListing = tagListingRepository.selectByCatalogId(entry.getKey());
2464
                TagListing tagListing = tagListingRepository.selectByCatalogId(entry.getKey());
2459
 
2465
 
2460
                FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
-
 
2461
 
-
 
2462
                Map<Integer, List<SaholicCIS>> itemAvailabilityMap = warehouseItemAvailabilityMap.get(fofoStore.getWarehouseId());
2466
                Map<Integer, List<SaholicCIS>> itemAvailabilityMap = warehouseItemAvailabilityMap.get(fofoStore.getWarehouseId());
2463
 
2467
 
2464
                Map<Integer, List<SaholicPOItem>> poItemAvailabilityMap = warehousePoItemAvailabilityMap.get(fofoStore.getWarehouseId());
2468
                Map<Integer, List<SaholicPOItem>> poItemAvailabilityMap = warehousePoItemAvailabilityMap.get(fofoStore.getWarehouseId());
2465
 
2469
 
2466
                for (Item item : items) {
2470
                for (Item item : items) {
Line 2482... Line 2486...
2482
                    }
2486
                    }
2483
 
2487
 
2484
                }
2488
                }
2485
 
2489
 
2486
                FocusedModelShortageModel fm = new FocusedModelShortageModel();
2490
                FocusedModelShortageModel fm = new FocusedModelShortageModel();
2487
                fm.setFofoId(fofoId);
2491
                fm.setFofoId(fofoStore.getId());
2488
                fm.setStoreCode(fofoStore.getCode());
2492
                fm.setStoreCode(fofoStore.getCode());
2489
                fm.setStoreName(customRetailer.getBusinessName());
2493
                fm.setStoreName(customRetailer.getBusinessName());
2490
                fm.setBrandName(items.get(0).getBrand());
2494
                fm.setBrandName(items.get(0).getBrand());
2491
                fm.setModelName(items.get(0).getModelName());
2495
                fm.setModelName(items.get(0).getModelName());
2492
                fm.setModelNumber(items.get(0).getModelNumber());
2496
                fm.setModelNumber(items.get(0).getModelNumber());
Line 2494... Line 2498...
2494
                fm.setPendingIndentQty(processingQty);
2498
                fm.setPendingIndentQty(processingQty);
2495
                fm.setShortageQty(shortageQty);
2499
                fm.setShortageQty(shortageQty);
2496
                fm.setPoAvailability(allColorPoAvailability);
2500
                fm.setPoAvailability(allColorPoAvailability);
2497
                fm.setDp(tagListing.getSellingPrice());
2501
                fm.setDp(tagListing.getSellingPrice());
2498
                fm.setWarehouseName(warehouseMap.get(customRetailer.getWarehouseId()));
2502
                fm.setWarehouseName(warehouseMap.get(customRetailer.getWarehouseId()));
2499
                if (partnerIdSalesHeadersMap.get(fofoId) != null) {
2503
                if (partnerIdSalesHeadersMap.get(fofoStore) != null) {
2500
                    fm.setStateManager(partnerIdSalesHeadersMap.get(fofoId).getRegionalManager());
2504
                    fm.setStateManager(partnerIdSalesHeadersMap.get(fofoStore).getRegionalManager());
2501
                    fm.setTerritoryManager(partnerIdSalesHeadersMap.get(fofoId).getTerritoryManager());
2505
                    fm.setTerritoryManager(partnerIdSalesHeadersMap.get(fofoStore).getTerritoryManager());
2502
                } else {
2506
                } else {
2503
                    LOGGER.info("else fofoId - {}", fofoId);
-
 
2504
                    fm.setStateManager("");
2507
                    fm.setStateManager("");
2505
                    fm.setTerritoryManager("");
2508
                    fm.setTerritoryManager("");
2506
                }
2509
                }
2507
 
2510
 
2508
                fm.setItemName(items.get(0).getBrand() + items.get(0).getModelNumber() + items.get(0).getModelName());
2511
                fm.setItemName(items.get(0).getBrand() + items.get(0).getModelNumber() + items.get(0).getModelName());