Subversion Repositories SmartDukaan

Rev

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

Rev 24606 Rev 24611
Line 14... Line 14...
14
import java.util.HashSet;
14
import java.util.HashSet;
15
import java.util.List;
15
import java.util.List;
16
import java.util.Map;
16
import java.util.Map;
17
import java.util.Optional;
17
import java.util.Optional;
18
import java.util.Set;
18
import java.util.Set;
-
 
19
import java.util.function.Function;
19
import java.util.stream.Collectors;
20
import java.util.stream.Collectors;
20
 
21
 
21
import javax.mail.MessagingException;
22
import javax.mail.MessagingException;
22
import javax.mail.internet.InternetAddress;
23
import javax.mail.internet.InternetAddress;
23
import javax.mail.internet.MimeMessage;
24
import javax.mail.internet.MimeMessage;
Line 884... Line 885...
884
		List<SchemeInOut> rolledbackSios = new ArrayList<>();
885
		List<SchemeInOut> rolledbackSios = new ArrayList<>();
885
		Map<Integer, Integer> userWalletMap = userWalletRepository.selectAll().stream()
886
		Map<Integer, Integer> userWalletMap = userWalletRepository.selectAll().stream()
886
				.collect(Collectors.toMap(UserWallet::getUserId, UserWallet::getId));
887
				.collect(Collectors.toMap(UserWallet::getUserId, UserWallet::getId));
887
		Map<Integer, SchemeType> schemeTypeMap = schemeRepository.selectAll().stream()
888
		Map<Integer, SchemeType> schemeTypeMap = schemeRepository.selectAll().stream()
888
				.collect(Collectors.toMap(Scheme::getId, Scheme::getType));
889
				.collect(Collectors.toMap(Scheme::getId, Scheme::getType));
889
		LocalDateTime startDate = LocalDate.of(2018, 9, 4).atStartOfDay();
890
		LocalDateTime startDate = LocalDate.of(2018, 9, 1).atStartOfDay();
890
		LocalDateTime endDate = LocalDate.now().atStartOfDay();
891
		LocalDateTime endDate = startDate.plusMonths(1);
891
		List<FofoOrder> allOrders = fofoOrderRepository.selectBetweenSaleDate(startDate, endDate);
892
		List<FofoOrder> allOrders = fofoOrderRepository.selectBetweenSaleDate(startDate, endDate);
892
		allOrders.stream().forEach(fofoOrder -> {
893
		allOrders.stream().forEach(fofoOrder -> {
893
			String description = "Adjustment of Duplicate Scheme for Sale Invoice " + fofoOrder.getInvoiceNumber();
894
			String description = "Adjustment of Duplicate Scheme for Sale Invoice " + fofoOrder.getInvoiceNumber();
894
			Map<Integer, String> inventorySerialNumberMap = new HashMap<>();
895
			Map<Integer, String> inventorySerialNumberMap = new HashMap<>();
895
			float amountToRollback = 0;
896
			float amountToRollback = 0;
Line 945... Line 946...
945
		Utils.sendMailWithAttachments(googleMailSender, new String[] { "amit.gupta@shop2020.in" }, null,
946
		Utils.sendMailWithAttachments(googleMailSender, new String[] { "amit.gupta@shop2020.in" }, null,
946
				"Partner Excess Amount", "PFA",
947
				"Partner Excess Amount", "PFA",
947
				new Attachment[] { new Attachment("WalletSummary.csv", new ByteArrayResource(baos.toByteArray())),
948
				new Attachment[] { new Attachment("WalletSummary.csv", new ByteArrayResource(baos.toByteArray())),
948
						new Attachment("SchemeOutRolledback.csv", new ByteArrayResource(baosOuts.toByteArray())) });
949
						new Attachment("SchemeOutRolledback.csv", new ByteArrayResource(baosOuts.toByteArray())) });
949
	}
950
	}
-
 
951
	
-
 
952
	public void dryRunSchemeOutReco1() throws Exception {
-
 
953
		List<Integer> references = Arrays.asList(6744,7347, 8320, 8891, 9124, 9217, 9263, 9379);
-
 
954
		List<UserWalletHistory> userWalletHistory = new ArrayList<>();
-
 
955
		List<SchemeInOut> rolledbackSios = new ArrayList<>();
-
 
956
		Map<Integer, Integer> userWalletMap = userWalletRepository.selectAll().stream()
-
 
957
				.collect(Collectors.toMap(UserWallet::getUserId, UserWallet::getId));
-
 
958
		Map<Integer, SchemeType> schemeTypeMap = schemeRepository.selectAll().stream()
-
 
959
				.collect(Collectors.toMap(Scheme::getId, Scheme::getType));
-
 
960
		references.stream().forEach(reference -> {
-
 
961
			FofoOrder fofoOrder = null;
-
 
962
			try {
-
 
963
				fofoOrder = fofoOrderRepository.selectByOrderId(reference);
-
 
964
			} catch(Exception e) {
-
 
965
				
-
 
966
			}
-
 
967
			String description = "Adjustment of Duplicate Scheme for Sale Invoice " + fofoOrder.getInvoiceNumber();
-
 
968
			Map<Integer, String> inventorySerialNumberMap = new HashMap<>();
-
 
969
			float amountToRollback = 0;
-
 
970
			List<FofoOrderItem> orderItems = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
-
 
971
			orderItems.forEach(x -> {
-
 
972
				inventorySerialNumberMap.putAll(x.getFofoLineItems().stream().filter(li -> li.getSerialNumber() != null)
-
 
973
						.collect(Collectors.toMap(FofoLineItem::getInventoryItemId, FofoLineItem::getSerialNumber)));
-
 
974
			});
-
 
975
			if (inventorySerialNumberMap.size() > 0) {
-
 
976
				List<SchemeInOut> sios = schemeInOutRepository.
-
 
977
						selectByInventoryItemIds(inventorySerialNumberMap.keySet()).stream().filter(x -> schemeTypeMap.get(x.getSchemeId()).equals(SchemeType.OUT))
-
 
978
						.collect(Collectors.toList());
-
 
979
				LOGGER.info("Found {} duplicate schemeouts for Orderid {}", sios.size(), fofoOrder.getId());
-
 
980
				UserWalletHistory uwh = new UserWalletHistory();
-
 
981
				Map<Integer, List<SchemeInOut>> inventoryIdSouts = sios.stream().collect(Collectors.groupingBy(SchemeInOut::getInventoryItemId, Collectors.toList()));
-
 
982
				for (Map.Entry<Integer, List<SchemeInOut>> inventorySioEntry : inventoryIdSouts.entrySet()) {
-
 
983
					List<SchemeInOut> outList = inventorySioEntry.getValue();
-
 
984
					if(outList.size()>1) {
-
 
985
						
-
 
986
					}
-
 
987
				}
-
 
988
				uwh.setAmount(Math.round(amountToRollback));
-
 
989
				uwh.setDescription(description);
-
 
990
				uwh.setTimestamp(LocalDateTime.now());
-
 
991
				uwh.setReferenceType(WalletReferenceType.SCHEME_OUT);
-
 
992
				uwh.setReference(fofoOrder.getId());
-
 
993
				uwh.setWalletId(userWalletMap.get(fofoOrder.getFofoId()));
-
 
994
				uwh.setFofoId(fofoOrder.getFofoId());
-
 
995
				uwh.setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);
-
 
996
				userWalletHistory.add(uwh);
-
 
997
			}
-
 
998
		});
-
 
999
		
-
 
1000
		ByteArrayOutputStream baos = FileUtil.getCSVByteStream(
-
 
1001
				Arrays.asList("User Id", "Reference Type", "Reference", "Amount", "Description", "Timestamp"),
-
 
1002
				userWalletHistory.stream().map(x -> Arrays.asList(x.getWalletId(), x.getReferenceType(),
-
 
1003
						x.getReference(), x.getAmount(), x.getDescription(), x.getTimestamp()))
-
 
1004
				.collect(Collectors.toList()));
-
 
1005
		
-
 
1006
		ByteArrayOutputStream baosOuts = FileUtil.getCSVByteStream(
-
 
1007
				Arrays.asList("Scheme ID", "SchemeType", "Store Code", "Serial Number", "Amount", "Created",
-
 
1008
						"Rolledback"),
-
 
1009
				rolledbackSios.stream()
-
 
1010
				.map(x -> Arrays.asList(x.getSchemeId(), x.getSchemeType(), x.getStoreCode(),
-
 
1011
						x.getSerialNumber(), x.getAmount(), x.getCreateTimestamp(), x.getRolledBackTimestamp()))
-
 
1012
				.collect(Collectors.toList()));
-
 
1013
		
-
 
1014
		Utils.sendMailWithAttachments(googleMailSender, new String[] { "amit.gupta@shop2020.in" }, null,
-
 
1015
				"Partner Excess Amount", "PFA",
-
 
1016
				new Attachment[] { new Attachment("WalletSummary.csv", new ByteArrayResource(baos.toByteArray())),
-
 
1017
						new Attachment("SchemeOutRolledback.csv", new ByteArrayResource(baosOuts.toByteArray())) });
-
 
1018
		
-
 
1019
	}
-
 
1020
	
-
 
1021
	
950
}
1022
}
951
 
1023
 
952
/*
1024
/*
953
 * public void processSchemeForModel(String string) { pricingService
1025
 * public void processSchemeForModel(String string) { pricingService
954
 * 
1026
 *