| Line 55... |
Line 55... |
| 55 |
|
55 |
|
| 56 |
import java.io.IOException;
|
56 |
import java.io.IOException;
|
| 57 |
import java.io.InputStream;
|
57 |
import java.io.InputStream;
|
| 58 |
import java.time.LocalDate;
|
58 |
import java.time.LocalDate;
|
| 59 |
import java.time.LocalDateTime;
|
59 |
import java.time.LocalDateTime;
|
| - |
|
60 |
import java.time.Year;
|
| 60 |
import java.time.YearMonth;
|
61 |
import java.time.YearMonth;
|
| 61 |
import java.util.*;
|
62 |
import java.util.*;
|
| 62 |
import java.util.stream.Collectors;
|
63 |
import java.util.stream.Collectors;
|
| 63 |
|
64 |
|
| 64 |
@Component
|
65 |
@Component
|
| Line 92... |
Line 93... |
| 92 |
|
93 |
|
| 93 |
@Autowired
|
94 |
@Autowired
|
| 94 |
private OfferTargetSlabRepository offerTargetSlabRepository;
|
95 |
private OfferTargetSlabRepository offerTargetSlabRepository;
|
| 95 |
|
96 |
|
| 96 |
@Autowired
|
97 |
@Autowired
|
| 97 |
CacheManager thirtyMinsTimeOutCacheManager;
|
98 |
CacheManager oneDayCacheManager;
|
| 98 |
|
99 |
|
| 99 |
|
100 |
|
| 100 |
private static final Logger LOGGER = LogManager.getLogger(OfferServiceImpl.class);
|
101 |
private static final Logger LOGGER = LogManager.getLogger(OfferServiceImpl.class);
|
| 101 |
|
102 |
|
| 102 |
@Autowired
|
103 |
@Autowired
|
| Line 209... |
Line 210... |
| 209 |
}
|
210 |
}
|
| 210 |
|
211 |
|
| 211 |
}
|
212 |
}
|
| 212 |
|
213 |
|
| 213 |
@Override
|
214 |
@Override
|
| 214 |
@Cacheable(value = "allOffers", cacheManager = "thirtyMinsTimeOutCacheManager")
|
215 |
@Cacheable(value = "allOffers", cacheManager = "oneDayCacheManager")
|
| 215 |
public Map<Integer, CreateOfferRequest> getAllOffers(YearMonth yearMonth) {
|
216 |
public Map<Integer, CreateOfferRequest> getAllOffers(YearMonth yearMonth) {
|
| 216 |
List<Offer> allOffers = offerRepository.selectAll(yearMonth, false);
|
217 |
List<Offer> allOffers = offerRepository.selectAll(yearMonth, false);
|
| 217 |
List<CreateOfferRequest> createOfferRequests = new ArrayList<>();
|
218 |
List<CreateOfferRequest> createOfferRequests = new ArrayList<>();
|
| 218 |
for (Offer offer : allOffers) {
|
219 |
for (Offer offer : allOffers) {
|
| 219 |
CreateOfferRequest createOfferRequest = this.getCreateOfferRequest(offer);
|
220 |
CreateOfferRequest createOfferRequest = this.getCreateOfferRequest(offer);
|
| Line 383... |
Line 384... |
| 383 |
}
|
384 |
}
|
| 384 |
|
385 |
|
| 385 |
@Override
|
386 |
@Override
|
| 386 |
public void createOffers(InputStream fileInputStream) throws Exception {
|
387 |
public void createOffers(InputStream fileInputStream) throws Exception {
|
| 387 |
Map<CreateOfferRequest, List<PartnerTargetModel>> offerPartnerTargetMap = this.parseFromExcel(fileInputStream);
|
388 |
Map<CreateOfferRequest, List<PartnerTargetModel>> offerPartnerTargetMap = this.parseFromExcel(fileInputStream);
|
| - |
|
389 |
Set<YearMonth> ymListToEvict = new HashSet<>();
|
| 388 |
for (Map.Entry<CreateOfferRequest, List<PartnerTargetModel>> partnerTargetEntry : offerPartnerTargetMap
|
390 |
for (Map.Entry<CreateOfferRequest, List<PartnerTargetModel>> partnerTargetEntry : offerPartnerTargetMap
|
| 389 |
.entrySet()) {
|
391 |
.entrySet()) {
|
| 390 |
CreateOfferRequest createOfferRequest = partnerTargetEntry.getKey();
|
392 |
CreateOfferRequest createOfferRequest = partnerTargetEntry.getKey();
|
| 391 |
Map<List<Integer>, List<Integer>> targetPartnerMap = partnerTargetEntry.getValue().stream()
|
393 |
Map<List<Integer>, List<Integer>> targetPartnerMap = partnerTargetEntry.getValue().stream()
|
| 392 |
.collect(Collectors.groupingBy(PartnerTargetModel::getTargets,
|
394 |
.collect(Collectors.groupingBy(PartnerTargetModel::getTargets,
|
| Line 408... |
Line 410... |
| 408 |
payoutSlab.setOnwardsAmount(targets.get(counter));
|
410 |
payoutSlab.setOnwardsAmount(targets.get(counter));
|
| 409 |
counter++;
|
411 |
counter++;
|
| 410 |
}
|
412 |
}
|
| 411 |
this.addOfferService(createOfferRequest);
|
413 |
this.addOfferService(createOfferRequest);
|
| 412 |
}
|
414 |
}
|
| - |
|
415 |
ymListToEvict.add(YearMonth.from(createOfferRequest.getStartDate()));
|
| - |
|
416 |
}
|
| - |
|
417 |
for (YearMonth ymToEvict : ymListToEvict) {
|
| - |
|
418 |
oneDayCacheManager.getCache("allOffers").evict(ymToEvict);
|
| 413 |
}
|
419 |
}
|
| 414 |
thirtyMinsTimeOutCacheManager.getCache("allOffers").evict(YearMonth.now());
|
- |
|
| 415 |
|
420 |
|
| 416 |
}
|
421 |
}
|
| 417 |
|
422 |
|
| 418 |
private Map<CreateOfferRequest, List<PartnerTargetModel>> parseFromExcel(InputStream inputStream)
|
423 |
private Map<CreateOfferRequest, List<PartnerTargetModel>> parseFromExcel(InputStream inputStream)
|
| 419 |
throws ProfitMandiBusinessException {
|
424 |
throws ProfitMandiBusinessException {
|
| Line 940... |
Line 945... |
| 940 |
LOGGER.info("Warehosue scans --> {}", warehouseScans);
|
945 |
LOGGER.info("Warehosue scans --> {}", warehouseScans);
|
| 941 |
List<Integer> warehouseInventoryItemIds = warehouseScans.stream().collect(Collectors.groupingBy(x -> x.getInventoryItemId())).entrySet()
|
946 |
List<Integer> warehouseInventoryItemIds = warehouseScans.stream().collect(Collectors.groupingBy(x -> x.getInventoryItemId())).entrySet()
|
| 942 |
.stream().filter(x -> x.getValue().size() == 1).map(x -> x.getKey()).collect(Collectors.toList());
|
947 |
.stream().filter(x -> x.getValue().size() == 1).map(x -> x.getKey()).collect(Collectors.toList());
|
| 943 |
|
948 |
|
| 944 |
List<OfferPayout> partnerPayouts = offerPayouts.stream().filter(x -> x.getFofoId() == fofoId).collect(Collectors.toList());
|
949 |
List<OfferPayout> partnerPayouts = offerPayouts.stream().filter(x -> x.getFofoId() == fofoId).collect(Collectors.toList());
|
| 945 |
Set<String> serialNumbersRejected = partnerPayouts.stream().filter(x->x.getStatus().equals(SchemePayoutStatus.REJECTED)).map(x -> x.getSerialNumber()).collect(Collectors.toSet());
|
950 |
Set<String> serialNumbersRejected = partnerPayouts.stream().filter(x -> x.getStatus().equals(SchemePayoutStatus.REJECTED)).map(x -> x.getSerialNumber()).collect(Collectors.toSet());
|
| 946 |
|
951 |
|
| 947 |
Set<String> serialNumbers;
|
952 |
Set<String> serialNumbers;
|
| 948 |
LOGGER.info("warehouseInventoryItemIds {}", warehouseInventoryItemIds);
|
953 |
LOGGER.info("warehouseInventoryItemIds {}", warehouseInventoryItemIds);
|
| 949 |
if (warehouseInventoryItemIds.size() > 0) {
|
954 |
if (warehouseInventoryItemIds.size() > 0) {
|
| 950 |
List<WarehouseInventoryItem> warehouseInventoryItems = warehouseInventoryItemRepository.selectAllByIds(warehouseInventoryItemIds);
|
955 |
List<WarehouseInventoryItem> warehouseInventoryItems = warehouseInventoryItemRepository.selectAllByIds(warehouseInventoryItemIds);
|
| Line 955... |
Line 960... |
| 955 |
LOGGER.info("SerialNumbers {}", serialNumbers);
|
960 |
LOGGER.info("SerialNumbers {}", serialNumbers);
|
| 956 |
Map<String, Long> serialNumberCountMap = lineItemImeisRepository.selectByLineItemIds(new ArrayList<>(lineItemMap.keySet()))
|
961 |
Map<String, Long> serialNumberCountMap = lineItemImeisRepository.selectByLineItemIds(new ArrayList<>(lineItemMap.keySet()))
|
| 957 |
.stream().collect(Collectors.groupingBy(x -> x.getSerialNumber(), Collectors.counting()));
|
962 |
.stream().collect(Collectors.groupingBy(x -> x.getSerialNumber(), Collectors.counting()));
|
| 958 |
LOGGER.info("SerialNumbers Count Map {}", serialNumberCountMap);
|
963 |
LOGGER.info("SerialNumbers Count Map {}", serialNumberCountMap);
|
| 959 |
Map<String, LineItem> serialNumberMap = lineItemImeisRepository.selectByLineItemIds(new ArrayList<>(lineItemMap.keySet()))
|
964 |
Map<String, LineItem> serialNumberMap = lineItemImeisRepository.selectByLineItemIds(new ArrayList<>(lineItemMap.keySet()))
|
| 960 |
.stream().filter(x->!serialNumbersRejected.contains(x.getSerialNumber())).collect(Collectors.toMap(x -> x.getSerialNumber(), x -> lineItemMap.get(x.getLineItemId()), (x1, x2) -> x1.getId() > x2.getId() ? x1 : x2));
|
965 |
.stream().filter(x -> !serialNumbersRejected.contains(x.getSerialNumber())).collect(Collectors.toMap(x -> x.getSerialNumber(), x -> lineItemMap.get(x.getLineItemId()), (x1, x2) -> x1.getId() > x2.getId() ? x1 : x2));
|
| 961 |
|
966 |
|
| 962 |
|
967 |
|
| 963 |
serialNumberMap = serialNumberMap.entrySet().stream().filter(x -> serialNumbers.contains(x.getKey())).collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
|
968 |
serialNumberMap = serialNumberMap.entrySet().stream().filter(x -> serialNumbers.contains(x.getKey())).collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
|
| 964 |
LOGGER.info("serialNumberMap {}", serialNumberMap);
|
969 |
LOGGER.info("serialNumberMap {}", serialNumberMap);
|
| 965 |
if (serialNumberMap.size() == 0) continue;
|
970 |
if (serialNumberMap.size() == 0) continue;
|