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