| 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");
|