| Line 938... |
Line 938... |
| 938 |
Map<Integer, LineItem> lineItemMap = orders.stream().collect(Collectors.toMap(x -> x.getLineItem().getId(), x -> x.getLineItem()));
|
938 |
Map<Integer, LineItem> lineItemMap = orders.stream().collect(Collectors.toMap(x -> x.getLineItem().getId(), x -> x.getLineItem()));
|
| 939 |
List<WarehouseScan> warehouseScans = warehouseScanRepository.selectAllByOrderIds(orderIds);
|
939 |
List<WarehouseScan> warehouseScans = warehouseScanRepository.selectAllByOrderIds(orderIds);
|
| 940 |
LOGGER.info("Warehosue scans --> {}", warehouseScans);
|
940 |
LOGGER.info("Warehosue scans --> {}", warehouseScans);
|
| 941 |
List<Integer> warehouseInventoryItemIds = warehouseScans.stream().collect(Collectors.groupingBy(x -> x.getInventoryItemId())).entrySet()
|
941 |
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());
|
942 |
.stream().filter(x -> x.getValue().size() == 1).map(x -> x.getKey()).collect(Collectors.toList());
|
| - |
|
943 |
|
| - |
|
944 |
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());
|
| - |
|
946 |
|
| 943 |
Set<String> serialNumbers;
|
947 |
Set<String> serialNumbers;
|
| 944 |
LOGGER.info("warehouseInventoryItemIds {}", warehouseInventoryItemIds);
|
948 |
LOGGER.info("warehouseInventoryItemIds {}", warehouseInventoryItemIds);
|
| 945 |
if (warehouseInventoryItemIds.size() > 0) {
|
949 |
if (warehouseInventoryItemIds.size() > 0) {
|
| 946 |
List<WarehouseInventoryItem> warehouseInventoryItems = warehouseInventoryItemRepository.selectAllByIds(warehouseInventoryItemIds);
|
950 |
List<WarehouseInventoryItem> warehouseInventoryItems = warehouseInventoryItemRepository.selectAllByIds(warehouseInventoryItemIds);
|
| 947 |
serialNumbers = warehouseInventoryItems.stream().map(x -> x.getSerialNumber()).collect(Collectors.toSet());
|
951 |
serialNumbers = warehouseInventoryItems.stream().map(x -> x.getSerialNumber()).collect(Collectors.toSet());
|
| Line 951... |
Line 955... |
| 951 |
LOGGER.info("SerialNumbers {}", serialNumbers);
|
955 |
LOGGER.info("SerialNumbers {}", serialNumbers);
|
| 952 |
Map<String, Long> serialNumberCountMap = lineItemImeisRepository.selectByLineItemIds(new ArrayList<>(lineItemMap.keySet()))
|
956 |
Map<String, Long> serialNumberCountMap = lineItemImeisRepository.selectByLineItemIds(new ArrayList<>(lineItemMap.keySet()))
|
| 953 |
.stream().collect(Collectors.groupingBy(x -> x.getSerialNumber(), Collectors.counting()));
|
957 |
.stream().collect(Collectors.groupingBy(x -> x.getSerialNumber(), Collectors.counting()));
|
| 954 |
LOGGER.info("SerialNumbers Count Map {}", serialNumberCountMap);
|
958 |
LOGGER.info("SerialNumbers Count Map {}", serialNumberCountMap);
|
| 955 |
Map<String, LineItem> serialNumberMap = lineItemImeisRepository.selectByLineItemIds(new ArrayList<>(lineItemMap.keySet()))
|
959 |
Map<String, LineItem> serialNumberMap = lineItemImeisRepository.selectByLineItemIds(new ArrayList<>(lineItemMap.keySet()))
|
| 956 |
.stream().collect(Collectors.toMap(x -> x.getSerialNumber(), x -> lineItemMap.get(x.getLineItemId()), (x1, x2) -> x1.getId() > x2.getId() ? x1 : x2));
|
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));
|
| - |
|
961 |
|
| 957 |
|
962 |
|
| 958 |
serialNumberMap = serialNumberMap.entrySet().stream().filter(x -> serialNumbers.contains(x.getKey())).collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
|
963 |
serialNumberMap = serialNumberMap.entrySet().stream().filter(x -> serialNumbers.contains(x.getKey())).collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
|
| 959 |
LOGGER.info("serialNumberMap {}", serialNumberMap);
|
964 |
LOGGER.info("serialNumberMap {}", serialNumberMap);
|
| 960 |
if (serialNumberMap.size() == 0) continue;
|
965 |
if (serialNumberMap.size() == 0) continue;
|
| 961 |
Map<String, InventoryItem> serialNumberInventoryItemMap = this.getInventoryItemMap(fofoId, serialNumberMap);
|
966 |
Map<String, InventoryItem> serialNumberInventoryItemMap = this.getInventoryItemMap(fofoId, serialNumberMap);
|
| Line 1023... |
Line 1028... |
| 1023 |
}
|
1028 |
}
|
| 1024 |
Offer offer = offerRepository.selectById(createOfferRequest.getId());
|
1029 |
Offer offer = offerRepository.selectById(createOfferRequest.getId());
|
| 1025 |
offer.setProcessedTimestamp(LocalDateTime.now());
|
1030 |
offer.setProcessedTimestamp(LocalDateTime.now());
|
| 1026 |
}
|
1031 |
}
|
| 1027 |
|
1032 |
|
| - |
|
1033 |
private void rollbackPayout(int fofoId, int offerId, List<OfferPayout> partnerPayouts, Set<String> returnedSerialNumbers) throws ProfitMandiBusinessException {
|
| - |
|
1034 |
LOGGER.info("Rollback payout called for offerId {}", offerId);
|
| - |
|
1035 |
float amountToRollback = 0;
|
| - |
|
1036 |
int totalImeis = 0;
|
| - |
|
1037 |
for (OfferPayout partnerPayout : partnerPayouts) {
|
| - |
|
1038 |
LOGGER.info("serialNumberInventoryItemMap - {}", returnedSerialNumbers);
|
| - |
|
1039 |
LOGGER.info("Serial Number - {}", partnerPayout.getSerialNumber());
|
| - |
|
1040 |
if (returnedSerialNumbers.contains(partnerPayout.getSerialNumber()) && partnerPayout.getStatus().equals(SchemePayoutStatus.CREDITED)) {
|
| - |
|
1041 |
partnerPayout.setRejectTimestamp(LocalDateTime.now());
|
| - |
|
1042 |
partnerPayout.setStatus(SchemePayoutStatus.REJECTED);
|
| - |
|
1043 |
amountToRollback += partnerPayout.getAmount();
|
| - |
|
1044 |
totalImeis += 1;
|
| - |
|
1045 |
}
|
| - |
|
1046 |
}
|
| - |
|
1047 |
if (amountToRollback > 0) {
|
| - |
|
1048 |
LOGGER.info("Amount to Rollback - {}", amountToRollback);
|
| - |
|
1049 |
walletService.rollbackAmountFromWallet(fofoId, amountToRollback, offerId, WalletReferenceType.ADDITIONAL_SCHEME, "Stock Returned, total " + totalImeis + "pc(s)", LocalDateTime.now());
|
| - |
|
1050 |
}
|
| - |
|
1051 |
}
|
| - |
|
1052 |
|
| 1028 |
private Map<String, InventoryItem> getInventoryItemMap(int fofoId, Map<String, LineItem> serialNumberMap) {
|
1053 |
private Map<String, InventoryItem> getInventoryItemMap(int fofoId, Map<String, LineItem> serialNumberMap) {
|
| 1029 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectBySerialNumbers(serialNumberMap.keySet());
|
1054 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectBySerialNumbers(serialNumberMap.keySet());
|
| 1030 |
inventoryItems = inventoryItems.stream().filter(x -> x.getFofoId() == fofoId).collect(Collectors.toList());
|
1055 |
inventoryItems = inventoryItems.stream().filter(x -> x.getFofoId() == fofoId).collect(Collectors.toList());
|
| 1031 |
Map<String, InventoryItem> inventoryItemMap = inventoryItems.stream().collect(Collectors.toMap(x -> x.getSerialNumber(), x -> x, (u, v) -> v.getCreateTimestamp().isAfter(u.getCreateTimestamp()) ? v : u));
|
1056 |
Map<String, InventoryItem> inventoryItemMap = inventoryItems.stream().collect(Collectors.toMap(x -> x.getSerialNumber(), x -> x, (u, v) -> v.getCreateTimestamp().isAfter(u.getCreateTimestamp()) ? v : u));
|
| 1032 |
return inventoryItemMap;
|
1057 |
return inventoryItemMap;
|