Subversion Repositories SmartDukaan

Rev

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

Rev 34585 Rev 34589
Line 2295... Line 2295...
2295
 
2295
 
2296
        List<PartnerWarehouseStockSummaryModel> partnerWarehouseStockSummaryModels = saholicInventoryService.getSaholicAndPartnerStock(fofoId, fofoStore.getWarehouseId());
2296
        List<PartnerWarehouseStockSummaryModel> partnerWarehouseStockSummaryModels = saholicInventoryService.getSaholicAndPartnerStock(fofoId, fofoStore.getWarehouseId());
2297
 
2297
 
2298
        List<WarehouseIntransitDataModel> warehouseIntransitDataModels = saholicInventoryService.getWarehouseIntransistDataList().stream().filter((x -> x.getWarehouseId() == fofoStore.getWarehouseId())).collect(Collectors.toList());
2298
        List<WarehouseIntransitDataModel> warehouseIntransitDataModels = saholicInventoryService.getWarehouseIntransistDataList().stream().filter((x -> x.getWarehouseId() == fofoStore.getWarehouseId())).collect(Collectors.toList());
2299
 
2299
 
2300
        Map<Integer, List<WarehouseIntransitDataModel>> warewarehouseIntransitDataModelsMap = warehouseIntransitDataModels.stream().collect(Collectors.groupingBy(WarehouseIntransitDataModel::getCatalogId));
-
 
2301
 
-
 
2302
        Map<Integer, Long> catalogWiseQtyMap = warehouseIntransitDataModels.stream()
2300
        Map<Integer, Long> catalogWiseQtyMap = new HashMap<>();
2303
                .collect(Collectors.groupingBy(
-
 
2304
                        WarehouseIntransitDataModel::getCatalogId,
2301
        Set<Integer> inTransitCatalogIds = new HashSet<>();
2305
                        Collectors.summingLong(WarehouseIntransitDataModel::getQty)
-
 
2306
                ));
-
 
2307
 
-
 
2308
        List<FofoOpeningStock> fofoOpeningStocksLitsForIntransist = fofoOpeningStockRepository.fofoOpeningStockByFofoId(catalogWiseQtyMap.keySet(), fofoId);
-
 
2309
 
-
 
2310
        // Optional: Build a map for faster lookup
-
 
2311
        Map<Integer, FofoOpeningStock> inTransistfofoOpeningStockMap = fofoOpeningStocksLitsForIntransist.stream()
-
 
2312
                .collect(Collectors.toMap(FofoOpeningStock::getCatalogId, stock -> stock));
-
 
2313
 
-
 
2314
        List<PartnerWarehouseStockSummaryModel> intransistSummaryList = new ArrayList<>();
2302
        List<PartnerWarehouseStockSummaryModel> intransistSummaryList = new ArrayList<>();
-
 
2303
        if (warehouseIntransitDataModels.size() > 0) {
-
 
2304
            Map<Integer, List<WarehouseIntransitDataModel>> warewarehouseIntransitDataModelsMap = warehouseIntransitDataModels.stream().collect(Collectors.groupingBy(WarehouseIntransitDataModel::getCatalogId));
2315
 
2305
 
-
 
2306
            catalogWiseQtyMap = warehouseIntransitDataModels.stream()
-
 
2307
                    .collect(Collectors.groupingBy(
-
 
2308
                            WarehouseIntransitDataModel::getCatalogId,
-
 
2309
                            Collectors.summingLong(WarehouseIntransitDataModel::getQty)
-
 
2310
                    ));
-
 
2311
 
-
 
2312
            LOGGER.info("catalogWiseQtyMap key set {}", catalogWiseQtyMap.keySet());
-
 
2313
 
-
 
2314
            List<FofoOpeningStock> fofoOpeningStocksLitsForIntransist = fofoOpeningStockRepository.fofoOpeningStockByFofoId(catalogWiseQtyMap.keySet(), fofoId);
-
 
2315
            LOGGER.info("fofoOpeningStocksLitsForIntransist {}", fofoOpeningStocksLitsForIntransist);
-
 
2316
            // Optional: Build a map for faster lookup
-
 
2317
            Map<Integer, FofoOpeningStock> inTransistfofoOpeningStockMap = fofoOpeningStocksLitsForIntransist.stream()
-
 
2318
                    .collect(Collectors.toMap(FofoOpeningStock::getCatalogId, stock -> stock));
-
 
2319
 
-
 
2320
 
2316
        for (Map.Entry<Integer, Long> entry : catalogWiseQtyMap.entrySet()) {
2321
            for (Map.Entry<Integer, Long> entry : catalogWiseQtyMap.entrySet()) {
2317
            int catalogId = entry.getKey();
2322
                int catalogId = entry.getKey();
2318
            long netAvailability = entry.getValue();
2323
                long netAvailability = entry.getValue();
2319
 
2324
 
2320
            FofoOpeningStock openingStock = inTransistfofoOpeningStockMap.get(catalogId);
2325
                FofoOpeningStock openingStock = inTransistfofoOpeningStockMap.get(catalogId);
2321
            WarehouseIntransitDataModel warehouseIntransitDataModel = warewarehouseIntransitDataModelsMap.get(catalogId).get(0);
2326
                WarehouseIntransitDataModel warehouseIntransitDataModel = warewarehouseIntransitDataModelsMap.get(catalogId).get(0);
2322
 
2327
 
2323
            PartnerWarehouseStockSummaryModel inTransistmodel = new PartnerWarehouseStockSummaryModel(
2328
                PartnerWarehouseStockSummaryModel inTransistmodel = new PartnerWarehouseStockSummaryModel(
2324
                    warehouseIntransitDataModel != null ? warehouseIntransitDataModel.getBrand() : "Unknown",
2329
                        warehouseIntransitDataModel != null ? warehouseIntransitDataModel.getBrand() : "Unknown",
2325
                    catalogId,
2330
                        catalogId,
2326
                    warehouseIntransitDataModel != null ? warehouseIntransitDataModel.getItemDescription() : "Unknown",
2331
                        warehouseIntransitDataModel != null ? warehouseIntransitDataModel.getItemDescription() : "Unknown",
2327
                    warehouseIntransitDataModel != null ? 10006 : 0,
2332
                        warehouseIntransitDataModel != null ? 10006 : 0,
2328
                    (int) netAvailability,
2333
                        (int) netAvailability,
2329
                    openingStock != null ? openingStock.getOpeningQty() : 0,
2334
                        openingStock != null ? openingStock.getOpeningQty() : 0,
2330
                    openingStock != null ? openingStock.getCurrentQty() : 0,
2335
                        openingStock != null ? openingStock.getCurrentQty() : 0,
2331
                    openingStock != null ? (openingStock.getOpeningQty() - openingStock.getCurrentQty()) : 0,
2336
                        openingStock != null ? (openingStock.getOpeningQty() - openingStock.getCurrentQty()) : 0,
2332
                    warehouseIntransitDataModel != null ? warehouseIntransitDataModel.getStatus() : "Unknown"
2337
                        warehouseIntransitDataModel != null ? warehouseIntransitDataModel.getStatus() : "Unknown"
2333
            );
2338
                );
2334
 
2339
 
2335
            intransistSummaryList.add(inTransistmodel);
2340
                intransistSummaryList.add(inTransistmodel);
-
 
2341
            }
2336
        }
2342
        }
2337
 
2343
 
-
 
2344
 
2338
        List<DateWiseSoldCatalogQtyModel> sevenDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(7));
2345
        List<DateWiseSoldCatalogQtyModel> sevenDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(7));
2339
 
2346
 
2340
        List<DateWiseSoldCatalogQtyModel> fourteenDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(14));
2347
        List<DateWiseSoldCatalogQtyModel> fourteenDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(14));
2341
 
2348
 
2342
        List<DateWiseSoldCatalogQtyModel> twentyOneDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(21));
2349
        List<DateWiseSoldCatalogQtyModel> twentyOneDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(21));
Line 2345... Line 2352...
2345
 
2352
 
2346
        List<DateWiseSoldCatalogQtyModel> twentyEightDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(28));
2353
        List<DateWiseSoldCatalogQtyModel> twentyEightDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(28));
2347
 
2354
 
2348
        Set<Integer> catalogIds = partnerWarehouseStockSummaryModels.stream().map(x -> x.getCatalogId()).collect(Collectors.toSet());
2355
        Set<Integer> catalogIds = partnerWarehouseStockSummaryModels.stream().map(x -> x.getCatalogId()).collect(Collectors.toSet());
2349
 
2356
 
-
 
2357
        if (!catalogWiseQtyMap.isEmpty()) {
2350
        Set<Integer> inTransitCatalogIds = catalogWiseQtyMap.keySet().stream().filter(catalogId -> !catalogIds.contains(catalogId)).collect(Collectors.toSet());
2358
            inTransitCatalogIds = catalogWiseQtyMap.keySet().stream().filter(catalogId -> !catalogIds.contains(catalogId)).collect(Collectors.toSet());
-
 
2359
        }
2351
 
2360
 
2352
        // Add the missing IDs to the original set
2361
        // Add the missing IDs to the original set
2353
        catalogIds.addAll(inTransitCatalogIds);
2362
        catalogIds.addAll(inTransitCatalogIds);
2354
 
2363
 
2355
        List<Integer> catalogsList = new ArrayList<>(catalogIds);
2364
        List<Integer> catalogsList = new ArrayList<>(catalogIds);
Line 2385... Line 2394...
2385
 
2394
 
2386
        Set<Integer> existingCatalogIdsInAgingSummaryList = partnerWarehouseStockAgingSummaryModelList.stream()
2395
        Set<Integer> existingCatalogIdsInAgingSummaryList = partnerWarehouseStockAgingSummaryModelList.stream()
2387
                .map(PartnerWarehouseStockAgingSummaryModel::getCatalogId)
2396
                .map(PartnerWarehouseStockAgingSummaryModel::getCatalogId)
2388
                .collect(Collectors.toSet());
2397
                .collect(Collectors.toSet());
2389
 
2398
 
-
 
2399
        if (intransistSummaryList.size() > 0) {
2390
        // Step 2: Iterate over intransitSummaryList and add missing ones
2400
            // Step 2: Iterate over intransitSummaryList and add missing ones
2391
        for (PartnerWarehouseStockSummaryModel intransitStock : intransistSummaryList) {
2401
            for (PartnerWarehouseStockSummaryModel intransitStock : intransistSummaryList) {
2392
            if (!existingCatalogIdsInAgingSummaryList.contains(intransitStock.getCatalogId())) {
2402
                if (!existingCatalogIdsInAgingSummaryList.contains(intransitStock.getCatalogId())) {
2393
                PartnerWarehouseStockAgingSummaryModel agingModel = new PartnerWarehouseStockAgingSummaryModel();
2403
                    PartnerWarehouseStockAgingSummaryModel agingModel = new PartnerWarehouseStockAgingSummaryModel();
2394
                agingModel.setCatalogId(intransitStock.getCatalogId());
2404
                    agingModel.setCatalogId(intransitStock.getCatalogId());
2395
                agingModel.setBrand(intransitStock.getBrand());
2405
                    agingModel.setBrand(intransitStock.getBrand());
2396
                agingModel.setModelNumber(intransitStock.getModelNumber());
2406
                    agingModel.setModelNumber(intransitStock.getModelNumber());
2397
                agingModel.setNetAvailability(0); // Not part of original aging summary
2407
                    agingModel.setNetAvailability(0); // Not part of original aging summary
2398
                agingModel.setPartnerStockAvailability(intransitStock.getPartnerFullFilledQty());
2408
                    agingModel.setPartnerStockAvailability(intransitStock.getPartnerFullFilledQty());
2399
                agingModel.setPartnerCurrentAvailability(intransitStock.getPartnerCurrentQty());
2409
                    agingModel.setPartnerCurrentAvailability(intransitStock.getPartnerCurrentQty());
2400
                agingModel.setPartnerShortageStock(intransitStock.getPartnerShortageQty());
2410
                    agingModel.setPartnerShortageStock(intransitStock.getPartnerShortageQty());
2401
                if (catalogAgingModelMap.get(intransitStock.getCatalogId()) != null) {
2411
                    if (catalogAgingModelMap.get(intransitStock.getCatalogId()) != null) {
2402
                    agingModel.setExceedDays(catalogAgingModelMap.get(intransitStock.getCatalogId()).getExceedDays());
2412
                        agingModel.setExceedDays(catalogAgingModelMap.get(intransitStock.getCatalogId()).getExceedDays());
2403
                } else {
2413
                    } else {
2404
                    agingModel.setExceedDays(0);
2414
                        agingModel.setExceedDays(0);
2405
                }
2415
                    }
2406
                agingModel.setStatus(intransitStock.getStatus() == null ? "OTHER" : intransitStock.getStatus());
2416
                    agingModel.setStatus(intransitStock.getStatus() == null ? "OTHER" : intransitStock.getStatus());
2407
 
2417
 
2408
                partnerWarehouseStockAgingSummaryModelList.add(agingModel);
2418
                    partnerWarehouseStockAgingSummaryModelList.add(agingModel);
-
 
2419
                }
2409
            }
2420
            }
2410
        }
2421
        }
2411
 
2422
 
2412
 
2423
 
2413
        List<String> statusOrder = Arrays.asList("HID", "FASTMOVING", "RUNNING", "SLOWMOVING", "OTHER");
2424
        List<String> statusOrder = Arrays.asList("HID", "FASTMOVING", "RUNNING", "SLOWMOVING", "OTHER");