Subversion Repositories SmartDukaan

Rev

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

Rev 34569 Rev 34580
Line 2201... Line 2201...
2201
        }
2201
        }
2202
 
2202
 
2203
        return responseSender.ok(inStockItemDetailModels);
2203
        return responseSender.ok(inStockItemDetailModels);
2204
    }
2204
    }
2205
 
2205
 
-
 
2206
    @Autowired
-
 
2207
    FofoOpeningStockRepository fofoOpeningStockRepository;
2206
 
2208
 
2207
    @RequestMapping(value = "/getPartnerShortageStock", method = RequestMethod.GET)
2209
    @RequestMapping(value = "/getPartnerShortageStock", method = RequestMethod.GET)
2208
    public String getPartnerShortageStock(HttpServletRequest request,
2210
    public String getPartnerShortageStock(HttpServletRequest request,
2209
                                          @RequestParam(required = false, defaultValue = "") String brand, @RequestParam(required = false, defaultValue = "0") long shortInvest, @RequestParam int fofoId, Model model)
2211
                                          @RequestParam(required = false, defaultValue = "") String brand, @RequestParam(required = false, defaultValue = "0") long shortInvest, @RequestParam int fofoId, Model model)
2210
            throws Exception {
2212
            throws Exception {
Line 2260... Line 2262...
2260
 
2262
 
2261
        List<PartnerWarehouseStockSummaryModel> partnerWarehouseStockSummaryModels = saholicInventoryService.getSaholicAndPartnerStock(fofoId, fofoStore.getWarehouseId());
2263
        List<PartnerWarehouseStockSummaryModel> partnerWarehouseStockSummaryModels = saholicInventoryService.getSaholicAndPartnerStock(fofoId, fofoStore.getWarehouseId());
2262
 
2264
 
2263
        List<WarehouseIntransitDataModel> warehouseIntransitDataModels = saholicInventoryService.getWarehouseIntransistDataList().stream().filter((x -> x.getWarehouseId() == fofoStore.getWarehouseId())).collect(Collectors.toList());
2265
        List<WarehouseIntransitDataModel> warehouseIntransitDataModels = saholicInventoryService.getWarehouseIntransistDataList().stream().filter((x -> x.getWarehouseId() == fofoStore.getWarehouseId())).collect(Collectors.toList());
2264
 
2266
 
2265
        Map<Integer, Long> catalogWiseQtyMap = saholicInventoryService.getWarehouseIntransistDataList().stream()
2267
        Map<Integer, List<WarehouseIntransitDataModel>> warewarehouseIntransitDataModelsMap = warehouseIntransitDataModels.stream().collect(Collectors.groupingBy(WarehouseIntransitDataModel::getCatalogId));
-
 
2268
 
2266
                .filter(x -> x.getWarehouseId() == fofoStore.getWarehouseId())
2269
        Map<Integer, Long> catalogWiseQtyMap = warehouseIntransitDataModels.stream()
2267
                .collect(Collectors.groupingBy(
2270
                .collect(Collectors.groupingBy(
2268
                        WarehouseIntransitDataModel::getCatalogId,
2271
                        WarehouseIntransitDataModel::getCatalogId,
2269
                        Collectors.summingLong(WarehouseIntransitDataModel::getQty)
2272
                        Collectors.summingLong(WarehouseIntransitDataModel::getQty)
2270
                ));
2273
                ));
2271
 
2274
 
2272
        Set<Integer> catalogIds = partnerWarehouseStockSummaryModels.stream().map(x -> x.getCatalogId()).collect(Collectors.toSet());
2275
        List<FofoOpeningStock> fofoOpeningStocksLitsForIntransist = fofoOpeningStockRepository.fofoOpeningStockByFofoId(catalogWiseQtyMap.keySet(), fofoId);
2273
        LOGGER.info("fofoid {} , catalogIds {}", catalogIds, fofoId);
-
 
2274
 
2276
 
-
 
2277
        // Optional: Build a map for faster lookup
-
 
2278
        Map<Integer, FofoOpeningStock> inTransistfofoOpeningStockMap = fofoOpeningStocksLitsForIntransist.stream()
-
 
2279
                .collect(Collectors.toMap(FofoOpeningStock::getCatalogId, stock -> stock));
-
 
2280
 
2275
        List<Integer> catalogsList = new ArrayList<>(catalogIds);
2281
        List<PartnerWarehouseStockSummaryModel> intransistSummaryList = new ArrayList<>();
-
 
2282
 
-
 
2283
        for (Map.Entry<Integer, Long> entry : catalogWiseQtyMap.entrySet()) {
-
 
2284
            int catalogId = entry.getKey();
-
 
2285
            long netAvailability = entry.getValue();
-
 
2286
 
-
 
2287
            FofoOpeningStock openingStock = inTransistfofoOpeningStockMap.get(catalogId);
-
 
2288
            WarehouseIntransitDataModel warehouseIntransitDataModel = warewarehouseIntransitDataModelsMap.get(catalogId).get(0);
-
 
2289
 
-
 
2290
            PartnerWarehouseStockSummaryModel inTransistmodel = new PartnerWarehouseStockSummaryModel(
-
 
2291
                    warehouseIntransitDataModel != null ? warehouseIntransitDataModel.getBrand() : "Unknown",
-
 
2292
                    catalogId,
-
 
2293
                    warehouseIntransitDataModel != null ? warehouseIntransitDataModel.getItemDescription() : "Unknown",
-
 
2294
                    warehouseIntransitDataModel != null ? 10006 : 0,
-
 
2295
                    (int) netAvailability,
-
 
2296
                    openingStock != null ? openingStock.getOpeningQty() : 0,
-
 
2297
                    openingStock != null ? openingStock.getCurrentQty() : 0,
-
 
2298
                    openingStock != null ? (openingStock.getOpeningQty() - openingStock.getCurrentQty()) : 0,
-
 
2299
                    warehouseIntransitDataModel != null ? warehouseIntransitDataModel.getStatus() : "Unknown"
-
 
2300
            );
2276
 
2301
 
2277
        Map<Integer, TagListing> tagListingsMap = tagListingRepository.selectAllByCatalogIds(catalogsList);
2302
            intransistSummaryList.add(inTransistmodel);
-
 
2303
        }
2278
 
2304
 
2279
        List<DateWiseSoldCatalogQtyModel> sevenDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(7));
2305
        List<DateWiseSoldCatalogQtyModel> sevenDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(7));
2280
 
2306
 
2281
        List<DateWiseSoldCatalogQtyModel> fourteenDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(14));
2307
        List<DateWiseSoldCatalogQtyModel> fourteenDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(14));
2282
 
2308
 
Line 2284... Line 2310...
2284
 
2310
 
2285
        LOGGER.info("twentyOneDayAboveSoldsCatalogs {}", twentyOneDayAboveSoldsCatalogs);
2311
        LOGGER.info("twentyOneDayAboveSoldsCatalogs {}", twentyOneDayAboveSoldsCatalogs);
2286
 
2312
 
2287
        List<DateWiseSoldCatalogQtyModel> twentyEightDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(28));
2313
        List<DateWiseSoldCatalogQtyModel> twentyEightDayAboveSoldsCatalogs = fofoOrderRepository.getDateWiseSoldCatalogQty(fofoId, presentDate.minusDays(28));
2288
 
2314
 
-
 
2315
        Set<Integer> catalogIds = partnerWarehouseStockSummaryModels.stream().map(x -> x.getCatalogId()).collect(Collectors.toSet());
-
 
2316
 
-
 
2317
        Set<Integer> inTransitCatalogIds = catalogWiseQtyMap.keySet().stream().filter(catalogId -> !catalogIds.contains(catalogId)).collect(Collectors.toSet());
-
 
2318
 
-
 
2319
        // Add the missing IDs to the original set
-
 
2320
        catalogIds.addAll(inTransitCatalogIds);
-
 
2321
 
-
 
2322
        List<Integer> catalogsList = new ArrayList<>(catalogIds);
-
 
2323
 
-
 
2324
        Map<Integer, TagListing> tagListingsMap = tagListingRepository.selectAllByCatalogIds(catalogsList);
2289
 
2325
 
2290
        List<CatalogAgingModel> catalogAgingModels = ageingService.getCatalogsAgingByWarehouse(catalogIds, fofoStore.getWarehouseId());
2326
        List<CatalogAgingModel> catalogAgingModels = ageingService.getCatalogsAgingByWarehouse(catalogIds, fofoStore.getWarehouseId());
2291
 
2327
 
2292
        Map<Integer, CatalogAgingModel> catalogAgingModelMap = catalogAgingModels.stream().collect(Collectors.toMap(x -> x.getCatalogId(), x -> x));
2328
        Map<Integer, CatalogAgingModel> catalogAgingModelMap = catalogAgingModels.stream().collect(Collectors.toMap(x -> x.getCatalogId(), x -> x));
2293
 
2329
 
Line 2312... Line 2348...
2312
            partnerWarehouseStockAgingSummaryModel.setStatus(stockSummary.getStatus());
2348
            partnerWarehouseStockAgingSummaryModel.setStatus(stockSummary.getStatus());
2313
 
2349
 
2314
            partnerWarehouseStockAgingSummaryModelList.add(partnerWarehouseStockAgingSummaryModel);
2350
            partnerWarehouseStockAgingSummaryModelList.add(partnerWarehouseStockAgingSummaryModel);
2315
        }
2351
        }
2316
 
2352
 
-
 
2353
        Set<Integer> existingCatalogIdsInAgingSummaryList = partnerWarehouseStockAgingSummaryModelList.stream()
-
 
2354
                .map(PartnerWarehouseStockAgingSummaryModel::getCatalogId)
-
 
2355
                .collect(Collectors.toSet());
-
 
2356
 
-
 
2357
        // Step 2: Iterate over intransitSummaryList and add missing ones
-
 
2358
        for (PartnerWarehouseStockSummaryModel intransitStock : intransistSummaryList) {
-
 
2359
            if (!existingCatalogIdsInAgingSummaryList.contains(intransitStock.getCatalogId())) {
-
 
2360
                PartnerWarehouseStockAgingSummaryModel agingModel = new PartnerWarehouseStockAgingSummaryModel();
-
 
2361
                agingModel.setCatalogId(intransitStock.getCatalogId());
-
 
2362
                agingModel.setBrand(intransitStock.getBrand());
-
 
2363
                agingModel.setModelNumber(intransitStock.getModelNumber());
-
 
2364
                agingModel.setNetAvailability(0); // Not part of original aging summary
-
 
2365
                agingModel.setPartnerStockAvailability(intransitStock.getPartnerFullFilledQty());
-
 
2366
                agingModel.setPartnerCurrentAvailability(intransitStock.getPartnerCurrentQty());
-
 
2367
                agingModel.setPartnerShortageStock(intransitStock.getPartnerShortageQty());
-
 
2368
                if (catalogAgingModelMap.get(intransitStock.getCatalogId()) != null) {
-
 
2369
                    agingModel.setExceedDays(catalogAgingModelMap.get(intransitStock.getCatalogId()).getExceedDays());
-
 
2370
                } else {
-
 
2371
                    agingModel.setExceedDays(0);
-
 
2372
 
-
 
2373
                }
-
 
2374
                agingModel.setStatus(intransitStock.getStatus());
-
 
2375
 
-
 
2376
                partnerWarehouseStockAgingSummaryModelList.add(agingModel);
-
 
2377
            }
-
 
2378
        }
-
 
2379
 
2317
 
2380
 
2318
        List<String> statusOrder = Arrays.asList("HID", "FASTMOVING", "RUNNING", "SLOWMOVING", "OTHER");
2381
        List<String> statusOrder = Arrays.asList("HID", "FASTMOVING", "RUNNING", "SLOWMOVING", "OTHER");
2319
        Map<String, List<PartnerWarehouseStockAgingSummaryModel>> brandPartnerWarehouseStockListMap =
2382
        Map<String, List<PartnerWarehouseStockAgingSummaryModel>> brandPartnerWarehouseStockListMap =
2320
                partnerWarehouseStockAgingSummaryModelList.stream().collect(Collectors.groupingBy(
2383
                partnerWarehouseStockAgingSummaryModelList.stream().collect(Collectors.groupingBy(
2321
                        PartnerWarehouseStockAgingSummaryModel::getBrand));
2384
                        PartnerWarehouseStockAgingSummaryModel::getBrand));
Line 2392... Line 2455...
2392
        model.addAttribute("brandStatusWiseStockListMap", sortedBrandStatusWiseStockListMap);
2455
        model.addAttribute("brandStatusWiseStockListMap", sortedBrandStatusWiseStockListMap);
2393
        model.addAttribute("pendingIndentsDetailMap", pendingIndentsDetailMap);
2456
        model.addAttribute("pendingIndentsDetailMap", pendingIndentsDetailMap);
2394
        model.addAttribute("brands", finalSortedBrands);
2457
        model.addAttribute("brands", finalSortedBrands);
2395
        model.addAttribute("brandToMtdMap", brandToMtdMap);
2458
        model.addAttribute("brandToMtdMap", brandToMtdMap);
2396
        model.addAttribute("catalogWiseQtyMap", catalogWiseQtyMap);
2459
        model.addAttribute("catalogWiseQtyMap", catalogWiseQtyMap);
-
 
2460
        model.addAttribute("intransistSummaryList", intransistSummaryList);
2397
        model.addAttribute("brand", brand);
2461
        model.addAttribute("brand", brand);
2398
        model.addAttribute("fofoId", fofoId);
2462
        model.addAttribute("fofoId", fofoId);
2399
        model.addAttribute("customRetailer", customRetailer);
2463
        model.addAttribute("customRetailer", customRetailer);
2400
        model.addAttribute("shortInvest", shortInvest);
2464
        model.addAttribute("shortInvest", shortInvest);
2401
        model.addAttribute("purchaseMtd", purchaseMtd);
2465
        model.addAttribute("purchaseMtd", purchaseMtd);