| Line 63... |
Line 63... |
| 63 |
import com.spice.profitmandi.dao.entity.fofo.Purchase;
|
63 |
import com.spice.profitmandi.dao.entity.fofo.Purchase;
|
| 64 |
import com.spice.profitmandi.dao.entity.fofo.SaleHeadDetails;
|
64 |
import com.spice.profitmandi.dao.entity.fofo.SaleHeadDetails;
|
| 65 |
import com.spice.profitmandi.dao.entity.fofo.ScanRecord;
|
65 |
import com.spice.profitmandi.dao.entity.fofo.ScanRecord;
|
| 66 |
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
|
66 |
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
|
| 67 |
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
|
67 |
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
|
| - |
|
68 |
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
|
| 68 |
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
|
69 |
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
|
| 69 |
import com.spice.profitmandi.dao.entity.user.Address;
|
70 |
import com.spice.profitmandi.dao.entity.user.Address;
|
| 70 |
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
|
71 |
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
|
| 71 |
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
|
72 |
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
|
| 72 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
73 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
| Line 90... |
Line 91... |
| 90 |
import com.spice.profitmandi.dao.repository.fofo.ScanRecordRepository;
|
91 |
import com.spice.profitmandi.dao.repository.fofo.ScanRecordRepository;
|
| 91 |
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
|
92 |
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
|
| 92 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
93 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
| 93 |
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
|
94 |
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
|
| 94 |
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
|
95 |
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
|
| - |
|
96 |
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
|
| 95 |
import com.spice.profitmandi.dao.repository.user.AddressRepository;
|
97 |
import com.spice.profitmandi.dao.repository.user.AddressRepository;
|
| 96 |
import com.spice.profitmandi.service.PartnerInvestmentService;
|
98 |
import com.spice.profitmandi.service.PartnerInvestmentService;
|
| 97 |
import com.spice.profitmandi.service.inventory.InventoryService;
|
99 |
import com.spice.profitmandi.service.inventory.InventoryService;
|
| 98 |
import com.spice.profitmandi.service.order.OrderService;
|
100 |
import com.spice.profitmandi.service.order.OrderService;
|
| 99 |
import com.spice.profitmandi.service.pricing.PriceDropService;
|
101 |
import com.spice.profitmandi.service.pricing.PriceDropService;
|
| Line 182... |
Line 184... |
| 182 |
@Autowired
|
184 |
@Autowired
|
| 183 |
private RechargeProviderCreditWalletHistoryRepository rechargeProviderCreditWalletHistoryRepository;
|
185 |
private RechargeProviderCreditWalletHistoryRepository rechargeProviderCreditWalletHistoryRepository;
|
| 184 |
|
186 |
|
| 185 |
@Autowired
|
187 |
@Autowired
|
| 186 |
private FofoOrderRepository fofoOrderRepository;
|
188 |
private FofoOrderRepository fofoOrderRepository;
|
| 187 |
|
189 |
|
| 188 |
@Autowired
|
190 |
@Autowired
|
| 189 |
private UserWalletHistoryRepository userWalletHistoryRepository;
|
191 |
private UserWalletHistoryRepository userWalletHistoryRepository;
|
| 190 |
|
192 |
|
| 191 |
@Autowired
|
193 |
@Autowired
|
| - |
|
194 |
private UserWalletRepository userWalletRepository;
|
| - |
|
195 |
|
| - |
|
196 |
@Autowired
|
| 192 |
private InventoryItemRepository inventoryItemRepository;
|
197 |
private InventoryItemRepository inventoryItemRepository;
|
| 193 |
|
198 |
|
| 194 |
@Autowired
|
199 |
@Autowired
|
| 195 |
private WalletService walletService;
|
200 |
private WalletService walletService;
|
| 196 |
|
201 |
|
| Line 483... |
Line 488... |
| 483 |
}
|
488 |
}
|
| 484 |
|
489 |
|
| 485 |
public void processScheme(LocalDateTime startDate, LocalDateTime endDate) throws Exception {
|
490 |
public void processScheme(LocalDateTime startDate, LocalDateTime endDate) throws Exception {
|
| 486 |
LOGGER.info("Started execution at {}", LocalDateTime.now());
|
491 |
LOGGER.info("Started execution at {}", LocalDateTime.now());
|
| 487 |
try {
|
492 |
try {
|
| 488 |
List<Purchase> purchases = purchaseRepository.selectAllBetweenPurchaseDate(startDate, endDate);
|
493 |
List<Purchase> purchases = purchaseRepository.selectAllBetweenPurchaseDate(startDate, endDate);
|
| 489 |
for (Purchase purchase : purchases) {
|
494 |
for (Purchase purchase : purchases) {
|
| 490 |
schemeService.processSchemeIn(purchase.getId(), purchase.getFofoId());
|
495 |
schemeService.processSchemeIn(purchase.getId(), purchase.getFofoId());
|
| 491 |
}
|
496 |
}
|
| 492 |
|
497 |
|
| 493 |
List<FofoOrder> fofoOrders = fofoOrderRepository.selectBetweenSaleDate(startDate, endDate);
|
498 |
List<FofoOrder> fofoOrders = fofoOrderRepository.selectBetweenSaleDate(startDate, endDate);
|
| 494 |
for (FofoOrder fofoOrder : fofoOrders) {
|
499 |
for (FofoOrder fofoOrder : fofoOrders) {
|
| 495 |
schemeService.processSchemeOut(fofoOrder.getId(), fofoOrder.getFofoId());
|
500 |
schemeService.processSchemeOut(fofoOrder.getId(), fofoOrder.getFofoId());
|
| 496 |
}
|
501 |
}
|
| 497 |
}catch(Exception e) {
|
502 |
} catch (Exception e) {
|
| 498 |
e.printStackTrace();
|
503 |
e.printStackTrace();
|
| 499 |
throw e;
|
504 |
throw e;
|
| 500 |
}
|
505 |
}
|
| 501 |
LOGGER.info("Schemes process successfully.");
|
506 |
LOGGER.info("Schemes process successfully.");
|
| 502 |
}
|
507 |
}
|
| Line 799... |
Line 804... |
| 799 |
|
804 |
|
| 800 |
}
|
805 |
}
|
| 801 |
|
806 |
|
| 802 |
public void schemewalletmismatch() {
|
807 |
public void schemewalletmismatch() {
|
| 803 |
LocalDate dateToReconcile = LocalDate.of(2018, 4, 1);
|
808 |
LocalDate dateToReconcile = LocalDate.of(2018, 4, 1);
|
| 804 |
while(dateToReconcile.isBefore(LocalDate.now())) {
|
809 |
while (dateToReconcile.isBefore(LocalDate.now())) {
|
| 805 |
reconcileSchemes(dateToReconcile);
|
810 |
reconcileSchemes(dateToReconcile);
|
| 806 |
//reconcileOrders(dateTime);
|
811 |
// reconcileOrders(dateTime);
|
| 807 |
//reconcileRecharges(dateTime);
|
812 |
// reconcileRecharges(dateTime);
|
| 808 |
dateToReconcile = dateToReconcile.plusDays(1);
|
813 |
dateToReconcile = dateToReconcile.plusDays(1);
|
| 809 |
}
|
814 |
}
|
| 810 |
}
|
815 |
}
|
| 811 |
|
816 |
|
| 812 |
private void reconcileSchemes(LocalDate date) {
|
817 |
private void reconcileSchemes(LocalDate date) {
|
| 813 |
LocalDateTime startDate = date.atStartOfDay();
|
818 |
LocalDateTime startDate = date.atStartOfDay();
|
| 814 |
LocalDateTime endDate = startDate.plusDays(1);
|
819 |
LocalDateTime endDate = startDate.plusDays(1);
|
| 815 |
List<SchemeInOut> siosCreated = schemeInOutRepository.selectAllByCreateDate(startDate, endDate);
|
820 |
List<SchemeInOut> siosCreated = schemeInOutRepository.selectAllByCreateDate(startDate, endDate);
|
| 816 |
List<SchemeInOut> siosRefunded = schemeInOutRepository.selectAllByRefundDate(startDate, endDate);
|
821 |
List<SchemeInOut> siosRefunded = schemeInOutRepository.selectAllByRefundDate(startDate, endDate);
|
| 817 |
double totalSchemeDisbursed = siosCreated.stream().mapToDouble(x->x.getAmount()).sum();
|
822 |
double totalSchemeDisbursed = siosCreated.stream().mapToDouble(x -> x.getAmount()).sum();
|
| 818 |
double totalSchemeRolledback = siosRefunded.stream().mapToDouble(x->x.getAmount()).sum();
|
823 |
double totalSchemeRolledback = siosRefunded.stream().mapToDouble(x -> x.getAmount()).sum();
|
| 819 |
double netSchemeDisbursed = totalSchemeDisbursed - totalSchemeRolledback;
|
824 |
double netSchemeDisbursed = totalSchemeDisbursed - totalSchemeRolledback;
|
| 820 |
List<WalletReferenceType> walletReferenceTypes = Arrays.asList(WalletReferenceType.SCHEME_IN, WalletReferenceType.SCHEME_OUT);
|
825 |
List<WalletReferenceType> walletReferenceTypes = Arrays.asList(WalletReferenceType.SCHEME_IN,
|
| - |
|
826 |
WalletReferenceType.SCHEME_OUT);
|
| 821 |
List<UserWalletHistory> history = userWalletHistoryRepository.selectAllByDateType(startDate, endDate, walletReferenceTypes);
|
827 |
List<UserWalletHistory> history = userWalletHistoryRepository.selectAllByDateType(startDate, endDate,
|
| - |
|
828 |
walletReferenceTypes);
|
| 822 |
double schemeAmountWalletTotal = history.stream().mapToDouble(x->x.getAmount()).sum();
|
829 |
double schemeAmountWalletTotal = history.stream().mapToDouble(x -> x.getAmount()).sum();
|
| 823 |
if(Math.abs(netSchemeDisbursed-schemeAmountWalletTotal) > 10d) {
|
830 |
if (Math.abs(netSchemeDisbursed - schemeAmountWalletTotal) > 10d) {
|
| 824 |
LOGGER.info("Scheme Amount mismatched for Date {}", date);
|
831 |
LOGGER.info("Scheme Amount mismatched for Date {}", date);
|
| 825 |
}
|
- |
|
| 826 |
|
- |
|
| 827 |
|
- |
|
| 828 |
}
|
- |
|
| 829 |
|
832 |
|
| - |
|
833 |
Map<Integer, Double> inventoryItemSchemeIO = siosCreated.stream().collect(Collectors
|
| - |
|
834 |
.groupingBy(x -> x.getInventoryItemId(), Collectors.summingDouble(SchemeInOut::getAmount)));
|
| - |
|
835 |
|
| - |
|
836 |
Map<Integer, Double> userSchemeMap = inventoryItemRepository.selectByIds(inventoryItemSchemeIO.keySet())
|
| - |
|
837 |
.stream().collect(Collectors.groupingBy(x -> x.getFofoId(),
|
| - |
|
838 |
Collectors.summingDouble(x -> inventoryItemSchemeIO.get(x.getId()))));
|
| - |
|
839 |
|
| - |
|
840 |
Map<Integer, Double> inventoryItemSchemeIORefunded = siosRefunded.stream().collect(Collectors
|
| - |
|
841 |
.groupingBy(x -> x.getInventoryItemId(), Collectors.summingDouble(SchemeInOut::getAmount)));
|
| - |
|
842 |
|
| - |
|
843 |
Map<Integer, Double> userSchemeRefundedMap = inventoryItemRepository
|
| - |
|
844 |
.selectByIds(inventoryItemSchemeIORefunded.keySet()).stream()
|
| - |
|
845 |
.collect(Collectors.groupingBy(x -> x.getFofoId(),
|
| - |
|
846 |
Collectors.summingDouble(x -> inventoryItemSchemeIORefunded.get(x.getId()))));
|
| - |
|
847 |
|
| - |
|
848 |
Map<Integer, Double> finalUserSchemeAmountMap = new HashMap<>();
|
| - |
|
849 |
for (Map.Entry<Integer, Double> schemeAmount : userSchemeMap.entrySet()) {
|
| 830 |
/*
|
850 |
}
|
| - |
|
851 |
for (Map.Entry<Integer, Double> schemeAmount : userSchemeRefundedMap.entrySet()) {
|
| 831 |
* public void processSchemeForModel(String string) { pricingService
|
852 |
if (!finalUserSchemeAmountMap.containsKey(schemeAmount.getKey())) {
|
| - |
|
853 |
finalUserSchemeAmountMap.put(schemeAmount.getKey(), schemeAmount.getValue());
|
| - |
|
854 |
} else {
|
| - |
|
855 |
finalUserSchemeAmountMap.put(schemeAmount.getKey(),
|
| - |
|
856 |
finalUserSchemeAmountMap.get(schemeAmount.getKey()) + schemeAmount.getValue());
|
| - |
|
857 |
}
|
| 832 |
*
|
858 |
}
|
| - |
|
859 |
Map<Integer, Integer> userWalletMap = userWalletRepository.selectByRetailerIds(finalUserSchemeAmountMap.keySet())
|
| - |
|
860 |
.stream().collect(Collectors.toMap(UserWallet::getUserId, UserWallet::getId));
|
| - |
|
861 |
|
| - |
|
862 |
Map<Integer, Double> walletAmountMap = history.stream().collect(Collectors.groupingBy(
|
| - |
|
863 |
UserWalletHistory::getWalletId, Collectors.summingDouble((UserWalletHistory::getAmount))));
|
| - |
|
864 |
for (Map.Entry<Integer, Double> userAmount : walletAmountMap.entrySet()) {
|
| - |
|
865 |
double diff = Math.abs(finalUserSchemeAmountMap.get(userAmount.getKey()) - userAmount.getValue());
|
| - |
|
866 |
if (diff > 5) {
|
| - |
|
867 |
LOGGER.info("Partner scheme mismatched for Userid {}", userWalletMap.get(userAmount.getKey()));
|
| 833 |
* }
|
868 |
}
|
| 834 |
*/
|
869 |
}
|
| - |
|
870 |
}
|
| 835 |
|
871 |
|
| - |
|
872 |
}
|
| 836 |
}
|
873 |
}
|
| - |
|
874 |
|
| - |
|
875 |
/*
|
| - |
|
876 |
* public void processSchemeForModel(String string) { pricingService
|
| - |
|
877 |
*
|
| - |
|
878 |
* }
|
| - |
|
879 |
*/
|