Subversion Repositories SmartDukaan

Rev

Rev 32543 | Rev 32868 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 32543 Rev 32795
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;