| Line 19... |
Line 19... |
| 19 |
import java.util.Base64;
|
19 |
import java.util.Base64;
|
| 20 |
import java.util.Collections;
|
20 |
import java.util.Collections;
|
| 21 |
import java.util.Comparator;
|
21 |
import java.util.Comparator;
|
| 22 |
import java.util.HashMap;
|
22 |
import java.util.HashMap;
|
| 23 |
import java.util.HashSet;
|
23 |
import java.util.HashSet;
|
| - |
|
24 |
import java.util.LinkedHashMap;
|
| 24 |
import java.util.List;
|
25 |
import java.util.List;
|
| 25 |
import java.util.Map;
|
26 |
import java.util.Map;
|
| 26 |
import java.util.Map.Entry;
|
27 |
import java.util.Map.Entry;
|
| 27 |
import java.util.Optional;
|
28 |
import java.util.Optional;
|
| 28 |
import java.util.Set;
|
29 |
import java.util.Set;
|
| Line 56... |
Line 57... |
| 56 |
import com.google.common.collect.Lists;
|
57 |
import com.google.common.collect.Lists;
|
| 57 |
import com.google.gson.Gson;
|
58 |
import com.google.gson.Gson;
|
| 58 |
import com.razorpay.Payment;
|
59 |
import com.razorpay.Payment;
|
| 59 |
import com.smartdukaan.cron.itelImeiActivation.ItelImeiActivationService;
|
60 |
import com.smartdukaan.cron.itelImeiActivation.ItelImeiActivationService;
|
| 60 |
import com.smartdukaan.cron.itelImeiActivation.TecnoImeiActivation;
|
61 |
import com.smartdukaan.cron.itelImeiActivation.TecnoImeiActivation;
|
| - |
|
62 |
import com.smartdukaan.cron.properties.WriteToPropertiesFile;
|
| 61 |
import com.spice.profitmandi.common.enumuration.MessageType;
|
63 |
import com.spice.profitmandi.common.enumuration.MessageType;
|
| 62 |
import com.spice.profitmandi.common.enumuration.RechargeStatus;
|
64 |
import com.spice.profitmandi.common.enumuration.RechargeStatus;
|
| 63 |
import com.spice.profitmandi.common.enumuration.ReporticoProject;
|
65 |
import com.spice.profitmandi.common.enumuration.ReporticoProject;
|
| 64 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
66 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
| 65 |
import com.spice.profitmandi.common.model.CustomRetailer;
|
67 |
import com.spice.profitmandi.common.model.CustomRetailer;
|
| Line 127... |
Line 129... |
| 127 |
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
|
129 |
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
|
| 128 |
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
|
130 |
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
|
| 129 |
import com.spice.profitmandi.dao.enumuration.fofo.PartnerStatusType;
|
131 |
import com.spice.profitmandi.dao.enumuration.fofo.PartnerStatusType;
|
| 130 |
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
|
132 |
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
|
| 131 |
import com.spice.profitmandi.dao.enumuration.transaction.PriceDropImeiStatus;
|
133 |
import com.spice.profitmandi.dao.enumuration.transaction.PriceDropImeiStatus;
|
| - |
|
134 |
import com.spice.profitmandi.dao.model.FinanceServicesModel;
|
| 132 |
import com.spice.profitmandi.dao.model.SimpleCampaign;
|
135 |
import com.spice.profitmandi.dao.model.SimpleCampaign;
|
| 133 |
import com.spice.profitmandi.dao.model.SimpleCampaignParams;
|
136 |
import com.spice.profitmandi.dao.model.SimpleCampaignParams;
|
| 134 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
137 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
| 135 |
import com.spice.profitmandi.dao.repository.catalog.DeviceRepository;
|
138 |
import com.spice.profitmandi.dao.repository.catalog.DeviceRepository;
|
| 136 |
import com.spice.profitmandi.dao.repository.catalog.FocusedModelRepository;
|
139 |
import com.spice.profitmandi.dao.repository.catalog.FocusedModelRepository;
|
| Line 226... |
Line 229... |
| 226 |
|
229 |
|
| 227 |
@Autowired
|
230 |
@Autowired
|
| 228 |
private RegionRepository regionRepository;
|
231 |
private RegionRepository regionRepository;
|
| 229 |
|
232 |
|
| 230 |
@Autowired
|
233 |
@Autowired
|
| - |
|
234 |
private ServiceConfigService serviceConfigService;
|
| - |
|
235 |
|
| - |
|
236 |
@Autowired
|
| 231 |
private TecnoImeiActivation tecnoImeiActivation;
|
237 |
private TecnoImeiActivation tecnoImeiActivation;
|
| 232 |
|
238 |
|
| 233 |
private static final DateTimeFormatter leadTimeFormatter = DateTimeFormatter.ofPattern("d LLL, hh:mm a");
|
239 |
private static final DateTimeFormatter leadTimeFormatter = DateTimeFormatter.ofPattern("d LLL, hh:mm a");
|
| 234 |
|
240 |
|
| 235 |
@Autowired
|
241 |
@Autowired
|
| Line 2436... |
Line 2442... |
| 2436 |
}
|
2442 |
}
|
| 2437 |
|
2443 |
|
| 2438 |
int grnStockQty = grnPendingQty + inStockQty;
|
2444 |
int grnStockQty = grnPendingQty + inStockQty;
|
| 2439 |
int totalQty = processingQty + grnPendingQty + inStockQty;
|
2445 |
int totalQty = processingQty + grnPendingQty + inStockQty;
|
| 2440 |
|
2446 |
|
| 2441 |
|
- |
|
| 2442 |
|
- |
|
| 2443 |
int shortageQty = minQty - totalQty;
|
2447 |
int shortageQty = minQty - totalQty;
|
| 2444 |
List<Item> item = itemRepository.selectAllByCatalogItemId(entry.getKey());
|
2448 |
List<Item> item = itemRepository.selectAllByCatalogItemId(entry.getKey());
|
| 2445 |
FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
|
2449 |
FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
|
| 2446 |
|
2450 |
|
| 2447 |
Map<Integer, List<SaholicCIS>> itemAvailabilityMap = warehouseItemAvailabilityMap
|
2451 |
Map<Integer, List<SaholicCIS>> itemAvailabilityMap = warehouseItemAvailabilityMap
|
| 2448 |
.get(fofoStore.getWarehouseId());
|
2452 |
.get(fofoStore.getWarehouseId());
|
| 2449 |
|
2453 |
|
| 2450 |
Map<Integer, List<SaholicPOItem>> poItemAvailabilityMap = warehousePoItemAvailabilityMap
|
2454 |
Map<Integer, List<SaholicPOItem>> poItemAvailabilityMap = warehousePoItemAvailabilityMap
|
| 2451 |
.get(fofoStore.getWarehouseId());
|
2455 |
.get(fofoStore.getWarehouseId());
|
| 2452 |
|
2456 |
|
| 2453 |
for (Item it : item) {
|
2457 |
for (Item it : item) {
|
| 2454 |
List<SaholicCIS> currentAvailability = null;
|
2458 |
List<SaholicCIS> currentAvailability = null;
|
| 2455 |
List<SaholicPOItem> poItemAvailability = null;
|
2459 |
List<SaholicPOItem> poItemAvailability = null;
|
| 2456 |
if (itemAvailabilityMap != null) {
|
2460 |
if (itemAvailabilityMap != null) {
|
| 2457 |
currentAvailability = itemAvailabilityMap.get(it.getId());
|
2461 |
currentAvailability = itemAvailabilityMap.get(it.getId());
|
| 2458 |
}
|
2462 |
}
|
| 2459 |
|
- |
|
| 2460 |
if (poItemAvailabilityMap != null) {
|
- |
|
| 2461 |
poItemAvailability = poItemAvailabilityMap.get(it.getId());
|
- |
|
| 2462 |
}
|
- |
|
| 2463 |
if (currentAvailability != null) {
|
- |
|
| 2464 |
allColorNetAvailability += currentAvailability.stream()
|
- |
|
| 2465 |
.collect(Collectors.summingInt(SaholicCIS::getNetavailability));
|
- |
|
| 2466 |
}
|
- |
|
| 2467 |
|
- |
|
| 2468 |
if (poItemAvailability != null) {
|
- |
|
| 2469 |
allColorPoAvailability += poItemAvailability.stream()
|
- |
|
| 2470 |
.collect(Collectors.summingInt(SaholicPOItem::getUnfulfilledQty));
|
- |
|
| 2471 |
}
|
- |
|
| 2472 |
|
2463 |
|
| - |
|
2464 |
if (poItemAvailabilityMap != null) {
|
| - |
|
2465 |
poItemAvailability = poItemAvailabilityMap.get(it.getId());
|
| - |
|
2466 |
}
|
| - |
|
2467 |
if (currentAvailability != null) {
|
| - |
|
2468 |
allColorNetAvailability += currentAvailability.stream()
|
| - |
|
2469 |
.collect(Collectors.summingInt(SaholicCIS::getNetavailability));
|
| 2473 |
}
|
2470 |
}
|
| 2474 |
|
2471 |
|
| 2475 |
FocusedModelShortageModel fm = new FocusedModelShortageModel();
|
- |
|
| 2476 |
fm.setFofoId(fofoId);
|
- |
|
| 2477 |
fm.setStoreCode(fofoStore.getCode());
|
- |
|
| 2478 |
fm.setStoreName(customRetailer.getBusinessName());
|
- |
|
| 2479 |
fm.setBrandName(item.get(0).getBrand());
|
- |
|
| 2480 |
fm.setModelName(item.get(0).getModelName());
|
- |
|
| 2481 |
fm.setModelNumber(item.get(0).getModelNumber());
|
- |
|
| 2482 |
fm.setGrnStockQty(grnStockQty);
|
- |
|
| 2483 |
fm.setPendingIndentQty(processingQty);
|
- |
|
| 2484 |
fm.setShortageQty(shortageQty);
|
2472 |
if (poItemAvailability != null) {
|
| 2485 |
fm.setPoAvailabitiy(allColorPoAvailability);
|
2473 |
allColorPoAvailability += poItemAvailability.stream()
|
| 2486 |
fm.setWarehouseName(warehouseMap.get(customRetailer.getWarehouseId()));
|
2474 |
.collect(Collectors.summingInt(SaholicPOItem::getUnfulfilledQty));
|
| 2487 |
fm.setStateManager(partnerIdSalesHeadersMap.get(fofoId).getRegionalManager());
|
- |
|
| 2488 |
fm.setTerritoryManager(partnerIdSalesHeadersMap.get(fofoId).getTerritoryManager());
|
- |
|
| 2489 |
fm.setItemName(item.get(0).getBrand() + item.get(0).getModelNumber() + item.get(0).getModelName());
|
- |
|
| 2490 |
fm.setAvailabitiy(allColorNetAvailability);
|
2475 |
}
|
| 2491 |
|
2476 |
|
| 2492 |
focusedModelShortageList.add(fm);
|
- |
|
| 2493 |
}
|
2477 |
}
|
| 2494 |
|
2478 |
|
| - |
|
2479 |
FocusedModelShortageModel fm = new FocusedModelShortageModel();
|
| - |
|
2480 |
fm.setFofoId(fofoId);
|
| - |
|
2481 |
fm.setStoreCode(fofoStore.getCode());
|
| - |
|
2482 |
fm.setStoreName(customRetailer.getBusinessName());
|
| - |
|
2483 |
fm.setBrandName(item.get(0).getBrand());
|
| - |
|
2484 |
fm.setModelName(item.get(0).getModelName());
|
| - |
|
2485 |
fm.setModelNumber(item.get(0).getModelNumber());
|
| - |
|
2486 |
fm.setGrnStockQty(grnStockQty);
|
| - |
|
2487 |
fm.setPendingIndentQty(processingQty);
|
| - |
|
2488 |
fm.setShortageQty(shortageQty);
|
| - |
|
2489 |
fm.setPoAvailabitiy(allColorPoAvailability);
|
| - |
|
2490 |
fm.setWarehouseName(warehouseMap.get(customRetailer.getWarehouseId()));
|
| - |
|
2491 |
fm.setStateManager(partnerIdSalesHeadersMap.get(fofoId).getRegionalManager());
|
| - |
|
2492 |
fm.setTerritoryManager(partnerIdSalesHeadersMap.get(fofoId).getTerritoryManager());
|
| - |
|
2493 |
fm.setItemName(item.get(0).getBrand() + item.get(0).getModelNumber() + item.get(0).getModelName());
|
| - |
|
2494 |
fm.setAvailabitiy(allColorNetAvailability);
|
| - |
|
2495 |
|
| - |
|
2496 |
focusedModelShortageList.add(fm);
|
| 2495 |
|
2497 |
}
|
| 2496 |
|
2498 |
|
| 2497 |
/*
|
2499 |
/*
|
| 2498 |
* if (!focusedModelShortageList.isEmpty()) { String subject = "Stock Alert";
|
2500 |
* if (!focusedModelShortageList.isEmpty()) { String subject = "Stock Alert";
|
| 2499 |
* String messageText = this.getMessage(focusedModelShortageList);
|
2501 |
* String messageText = this.getMessage(focusedModelShortageList);
|
| 2500 |
*
|
2502 |
*
|
| Line 3058... |
Line 3060... |
| 3058 |
e.printStackTrace();
|
3060 |
e.printStackTrace();
|
| 3059 |
}
|
3061 |
}
|
| 3060 |
|
3062 |
|
| 3061 |
}
|
3063 |
}
|
| 3062 |
|
3064 |
|
| - |
|
3065 |
public void selectFinServiceFollowUpDateByCurrDate(LocalDate currentDate) {
|
| - |
|
3066 |
LOGGER.info("selectfinServiceFollow - {}", "selectfinServiceFollowUpDateByCurrDate");
|
| - |
|
3067 |
|
| - |
|
3068 |
serviceConfigService.selectFinServicePartnerfollowUpDateByCurrentDate(currentDate);
|
| - |
|
3069 |
|
| - |
|
3070 |
}
|
| - |
|
3071 |
|
| 3063 |
public void checkTecnoImeiActivation(LocalDate date, Integer day) {
|
3072 |
public void checkTecnoImeiActivation(LocalDate date, Integer day) {
|
| 3064 |
LOGGER.info("Hello - {}", "hhh");
|
3073 |
LOGGER.info("Hello - {}", "hhh");
|
| 3065 |
|
3074 |
|
| 3066 |
try {
|
3075 |
try {
|
| 3067 |
tecnoImeiActivation.checkTecnoImeiActivation(date, day);
|
3076 |
tecnoImeiActivation.checkTecnoImeiActivation(date, day);
|