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