| Line 27... |
Line 27... |
| 27 |
import org.apache.commons.io.output.ByteArrayOutputStream;
|
27 |
import org.apache.commons.io.output.ByteArrayOutputStream;
|
| 28 |
import org.apache.logging.log4j.LogManager;
|
28 |
import org.apache.logging.log4j.LogManager;
|
| 29 |
import org.apache.logging.log4j.Logger;
|
29 |
import org.apache.logging.log4j.Logger;
|
| 30 |
import org.apache.poi.EncryptedDocumentException;
|
30 |
import org.apache.poi.EncryptedDocumentException;
|
| 31 |
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
31 |
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
| - |
|
32 |
import org.apache.solr.common.util.Hash;
|
| 32 |
import org.springframework.beans.factory.annotation.Autowired;
|
33 |
import org.springframework.beans.factory.annotation.Autowired;
|
| 33 |
import org.springframework.beans.factory.annotation.Qualifier;
|
34 |
import org.springframework.beans.factory.annotation.Qualifier;
|
| 34 |
import org.springframework.beans.factory.annotation.Value;
|
35 |
import org.springframework.beans.factory.annotation.Value;
|
| 35 |
import org.springframework.core.io.ByteArrayResource;
|
36 |
import org.springframework.core.io.ByteArrayResource;
|
| 36 |
import org.springframework.mail.javamail.JavaMailSender;
|
37 |
import org.springframework.mail.javamail.JavaMailSender;
|
| Line 885... |
Line 886... |
| 885 |
List<SchemeInOut> rolledbackSios = new ArrayList<>();
|
886 |
List<SchemeInOut> rolledbackSios = new ArrayList<>();
|
| 886 |
Map<Integer, Integer> userWalletMap = userWalletRepository.selectAll().stream()
|
887 |
Map<Integer, Integer> userWalletMap = userWalletRepository.selectAll().stream()
|
| 887 |
.collect(Collectors.toMap(UserWallet::getUserId, UserWallet::getId));
|
888 |
.collect(Collectors.toMap(UserWallet::getUserId, UserWallet::getId));
|
| 888 |
Map<Integer, SchemeType> schemeTypeMap = schemeRepository.selectAll().stream()
|
889 |
Map<Integer, SchemeType> schemeTypeMap = schemeRepository.selectAll().stream()
|
| 889 |
.collect(Collectors.toMap(Scheme::getId, Scheme::getType));
|
890 |
.collect(Collectors.toMap(Scheme::getId, Scheme::getType));
|
| 890 |
//LocalDateTime startDate = LocalDate.of(2018, 9, 1).atStartOfDay();
|
891 |
// LocalDateTime startDate = LocalDate.of(2018, 9, 1).atStartOfDay();
|
| 891 |
//LocalDateTime endDate = startDate.plusMonths(1);
|
892 |
// LocalDateTime endDate = startDate.plusMonths(1);
|
| - |
|
893 |
// List<FofoOrder> allOrders =
|
| 892 |
//List<FofoOrder> allOrders = fofoOrderRepository.selectBetweenSaleDate(startDate, endDate);
|
894 |
// fofoOrderRepository.selectBetweenSaleDate(startDate, endDate);
|
| 893 |
List<FofoOrder> allOrders = Arrays.asList(fofoOrderRepository.selectByInvoiceNumber("HRKN039/27"));
|
895 |
List<FofoOrder> allOrders = Arrays.asList(fofoOrderRepository.selectByInvoiceNumber("HRKN039/27"));
|
| 894 |
//
|
896 |
//
|
| 895 |
allOrders.stream().forEach(fofoOrder -> {
|
897 |
allOrders.stream().forEach(fofoOrder -> {
|
| 896 |
String description = "Adjustment of Duplicate Scheme for Sale Invoice " + fofoOrder.getInvoiceNumber();
|
898 |
String description = "Adjustment of Duplicate Scheme for Sale Invoice " + fofoOrder.getInvoiceNumber();
|
| 897 |
Map<Integer, String> inventorySerialNumberMap = new HashMap<>();
|
899 |
Map<Integer, String> inventorySerialNumberMap = new HashMap<>();
|
| Line 900... |
Line 902... |
| 900 |
orderItems.forEach(x -> {
|
902 |
orderItems.forEach(x -> {
|
| 901 |
inventorySerialNumberMap.putAll(x.getFofoLineItems().stream().filter(li -> li.getSerialNumber() != null)
|
903 |
inventorySerialNumberMap.putAll(x.getFofoLineItems().stream().filter(li -> li.getSerialNumber() != null)
|
| 902 |
.collect(Collectors.toMap(FofoLineItem::getInventoryItemId, FofoLineItem::getSerialNumber)));
|
904 |
.collect(Collectors.toMap(FofoLineItem::getInventoryItemId, FofoLineItem::getSerialNumber)));
|
| 903 |
});
|
905 |
});
|
| 904 |
if (inventorySerialNumberMap.size() > 0) {
|
906 |
if (inventorySerialNumberMap.size() > 0) {
|
| - |
|
907 |
for (String serialNumber : inventorySerialNumberMap.values()) {
|
| 905 |
List<SchemeInOut> sios = schemeInOutRepository
|
908 |
List<SchemeInOut> sios = schemeInOutRepository
|
| 906 |
.selectAllDuplicate(fofoOrder.getFofoId(),
|
909 |
.selectAllDuplicate(fofoOrder.getFofoId(), Arrays.asList(serialNumber)).stream()
|
| 907 |
new ArrayList<String>(inventorySerialNumberMap.values()))
|
- |
|
| 908 |
.stream().filter(x -> schemeTypeMap.get(x.getSchemeId()).equals(SchemeType.OUT))
|
910 |
.filter(x -> schemeTypeMap.get(x.getSchemeId()).equals(SchemeType.OUT))
|
| 909 |
.collect(Collectors.toList());
|
911 |
.collect(Collectors.toList());
|
| 910 |
LOGGER.info("Found {} duplicate schemeouts for Orderid {}", sios.size(), fofoOrder.getId());
|
- |
|
| 911 |
UserWalletHistory uwh = new UserWalletHistory();
|
912 |
UserWalletHistory uwh = new UserWalletHistory();
|
| - |
|
913 |
Set<Integer> schemesConsidered = new HashSet<>();
|
| 912 |
for (SchemeInOut sio : sios) {
|
914 |
for (SchemeInOut sio : sios) {
|
| 913 |
String serialNumber = inventoryItemRepository.selectById(sio.getInventoryItemId())
|
915 |
if (!schemesConsidered.contains(sio.getSchemeId())) {
|
| - |
|
916 |
schemesConsidered.add(sio.getSchemeId());
|
| - |
|
917 |
continue;
|
| - |
|
918 |
}
|
| - |
|
919 |
sio.setRolledBackTimestamp(LocalDateTime.now());
|
| - |
|
920 |
amountToRollback += sio.getAmount();
|
| - |
|
921 |
sio.setSchemeType(SchemeType.OUT);
|
| 914 |
.getSerialNumber();
|
922 |
sio.setSerialNumber(serialNumber);
|
| 915 |
if (!serialSchemeConsidered.contains(serialNumber + String.valueOf(sio.getSchemeId()))) {
|
923 |
sio.setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);
|
| - |
|
924 |
rolledbackSios.add(sio);
|
| - |
|
925 |
}
|
| - |
|
926 |
if (amountToRollback > 0) {
|
| - |
|
927 |
uwh.setAmount(Math.round(amountToRollback));
|
| - |
|
928 |
uwh.setDescription(description);
|
| - |
|
929 |
uwh.setTimestamp(LocalDateTime.now());
|
| - |
|
930 |
uwh.setReferenceType(WalletReferenceType.SCHEME_OUT);
|
| - |
|
931 |
uwh.setReference(fofoOrder.getId());
|
| 916 |
serialSchemeConsidered.add(serialNumber + String.valueOf(sio.getSchemeId()));
|
932 |
uwh.setWalletId(userWalletMap.get(fofoOrder.getFofoId()));
|
| - |
|
933 |
uwh.setFofoId(fofoOrder.getFofoId());
|
| - |
|
934 |
uwh.setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);
|
| 917 |
continue;
|
935 |
userWalletHistory.add(uwh);
|
| 918 |
}
|
936 |
}
|
| 919 |
sio.setRolledBackTimestamp(LocalDateTime.now());
|
- |
|
| 920 |
amountToRollback += sio.getAmount();
|
- |
|
| 921 |
sio.setSchemeType(SchemeType.OUT);
|
- |
|
| 922 |
sio.setSerialNumber(serialNumber);
|
- |
|
| 923 |
sio.setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);
|
- |
|
| 924 |
rolledbackSios.add(sio);
|
- |
|
| 925 |
}
|
- |
|
| 926 |
if (amountToRollback > 0) {
|
- |
|
| 927 |
uwh.setAmount(Math.round(amountToRollback));
|
- |
|
| 928 |
uwh.setDescription(description);
|
- |
|
| 929 |
uwh.setTimestamp(LocalDateTime.now());
|
- |
|
| 930 |
uwh.setReferenceType(WalletReferenceType.SCHEME_OUT);
|
- |
|
| 931 |
uwh.setReference(fofoOrder.getId());
|
- |
|
| 932 |
uwh.setWalletId(userWalletMap.get(fofoOrder.getFofoId()));
|
- |
|
| 933 |
uwh.setFofoId(fofoOrder.getFofoId());
|
- |
|
| 934 |
uwh.setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);
|
- |
|
| 935 |
userWalletHistory.add(uwh);
|
- |
|
| 936 |
}
|
937 |
}
|
| 937 |
}
|
938 |
}
|
| - |
|
939 |
// LOGGER.info("Found {} duplicate schemeouts for Orderid {}", sios.size(),
|
| - |
|
940 |
// fofoOrder.getId());
|
| 938 |
});
|
941 |
});
|
| 939 |
|
942 |
|
| 940 |
ByteArrayOutputStream baos = FileUtil.getCSVByteStream(
|
943 |
ByteArrayOutputStream baos = FileUtil.getCSVByteStream(
|
| 941 |
Arrays.asList("User Id", "Store Code", "Reference Type", "Reference", "Amount", "Description",
|
944 |
Arrays.asList("User Id", "Store Code", "Reference Type", "Reference", "Amount", "Description",
|
| 942 |
"Timestamp"),
|
945 |
"Timestamp"),
|
| Line 951... |
Line 954... |
| 951 |
rolledbackSios.stream()
|
954 |
rolledbackSios.stream()
|
| 952 |
.map(x -> Arrays.asList(x.getSchemeId(), x.getSchemeType(), x.getStoreCode(),
|
955 |
.map(x -> Arrays.asList(x.getSchemeId(), x.getSchemeType(), x.getStoreCode(),
|
| 953 |
x.getSerialNumber(), x.getAmount(), x.getCreateTimestamp(), x.getRolledBackTimestamp()))
|
956 |
x.getSerialNumber(), x.getAmount(), x.getCreateTimestamp(), x.getRolledBackTimestamp()))
|
| 954 |
.collect(Collectors.toList()));
|
957 |
.collect(Collectors.toList()));
|
| 955 |
|
958 |
|
| - |
|
959 |
Utils.sendMailWithAttachments(googleMailSender,
|
| 956 |
Utils.sendMailWithAttachments(googleMailSender, new String[] { "amit.gupta@shop2020.in", "neeraj.gupta@smartdukaan.com" }, null,
|
960 |
new String[] { "amit.gupta@shop2020.in", "neeraj.gupta@smartdukaan.com" }, null,
|
| 957 |
"Partner Excess Amount", "PFA",
|
961 |
"Partner Excess Amount", "PFA",
|
| 958 |
new Attachment[] { new Attachment("WalletSummary.csv", new ByteArrayResource(baos.toByteArray())),
|
962 |
new Attachment[] { new Attachment("WalletSummary.csv", new ByteArrayResource(baos.toByteArray())),
|
| 959 |
new Attachment("SchemeOutRolledback.csv", new ByteArrayResource(baosOuts.toByteArray())) });
|
963 |
new Attachment("SchemeOutRolledback.csv", new ByteArrayResource(baosOuts.toByteArray())) });
|
| 960 |
}
|
964 |
}
|
| 961 |
|
965 |
|
| Line 1021... |
Line 1025... |
| 1021 |
rolledbackSios.stream()
|
1025 |
rolledbackSios.stream()
|
| 1022 |
.map(x -> Arrays.asList(x.getSchemeId(), x.getSchemeType(), x.getStoreCode(),
|
1026 |
.map(x -> Arrays.asList(x.getSchemeId(), x.getSchemeType(), x.getStoreCode(),
|
| 1023 |
x.getSerialNumber(), x.getAmount(), x.getCreateTimestamp(), x.getRolledBackTimestamp()))
|
1027 |
x.getSerialNumber(), x.getAmount(), x.getCreateTimestamp(), x.getRolledBackTimestamp()))
|
| 1024 |
.collect(Collectors.toList()));
|
1028 |
.collect(Collectors.toList()));
|
| 1025 |
|
1029 |
|
| - |
|
1030 |
Utils.sendMailWithAttachments(googleMailSender,
|
| 1026 |
Utils.sendMailWithAttachments(googleMailSender, new String[] { "amit.gupta@shop2020.in", "neeraj.gupta@smartdukaan.com" }, null,
|
1031 |
new String[] { "amit.gupta@shop2020.in", "neeraj.gupta@smartdukaan.com" }, null,
|
| 1027 |
"Partner Excess Amount", "PFA",
|
1032 |
"Partner Excess Amount", "PFA",
|
| 1028 |
new Attachment[] { new Attachment("WalletSummary.csv", new ByteArrayResource(baos.toByteArray())),
|
1033 |
new Attachment[] { new Attachment("WalletSummary.csv", new ByteArrayResource(baos.toByteArray())),
|
| 1029 |
new Attachment("SchemeOutRolledback.csv", new ByteArrayResource(baosOuts.toByteArray())) });
|
1034 |
new Attachment("SchemeOutRolledback.csv", new ByteArrayResource(baosOuts.toByteArray())) });
|
| 1030 |
|
1035 |
|
| 1031 |
}
|
1036 |
}
|