Subversion Repositories SmartDukaan

Rev

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

Rev 26928 Rev 26929
Line 872... Line 872...
872
	public void fixScheme() throws Exception {
872
	public void fixScheme() throws Exception {
873
		final Map<Integer, Scheme> schemesMap = schemeRepository.selectAll().stream()
873
		final Map<Integer, Scheme> schemesMap = schemeRepository.selectAll().stream()
874
				.collect(Collectors.toMap(x -> x.getId(), x -> x));
874
				.collect(Collectors.toMap(x -> x.getId(), x -> x));
875
		List<SchemeInOut> sios = schemeInOutRepository.selectAllByCreateDate(LocalDate.of(2019, 9, 1).atTime(0, 0),
875
		List<SchemeInOut> sios = schemeInOutRepository.selectAllByCreateDate(LocalDate.of(2019, 9, 1).atTime(0, 0),
876
				LocalDateTime.now());
876
				LocalDateTime.now());
877
		Map<SioTuple, Map<PartnerType, List<Integer>>> schemeTupleMap = sios.stream().filter(x -> x.getRolledBackTimestamp() == null)
877
		Map<SioTuple, Map<PartnerType, List<SchemeInOut>>> schemeTupleMap = sios.stream().filter(x -> x.getRolledBackTimestamp() == null)
878
				.filter(x -> schemesMap.get(x.getSchemeId()).getPartnerType() != PartnerType.ALL)
878
				.filter(x -> schemesMap.get(x.getSchemeId()).getPartnerType() != PartnerType.ALL)
879
				.collect(Collectors.groupingBy(
879
				.collect(Collectors.groupingBy(
880
						x -> new SioTuple(x.getInventoryItemId(), schemesMap.get(x.getSchemeId()).getType()),
880
						x -> new SioTuple(x.getInventoryItemId(), schemesMap.get(x.getSchemeId()).getType()),
881
						Collectors.groupingBy(x->schemesMap.get(x.getSchemeId()).getPartnerType(), 
881
						Collectors.groupingBy(x->schemesMap.get(x.getSchemeId()).getPartnerType(), 
882
								Collectors.mapping(x->x.getSchemeId(), Collectors.toList()))));
882
								Collectors.mapping(x->x, Collectors.toList()))));
883
		
883
		
884
		schemeTupleMap.entrySet().stream().filter(x->x.getValue().size()>1).forEach(x->{
884
		schemeTupleMap.entrySet().stream().filter(x->x.getValue().size()>1).forEach(x->{
885
			LOGGER.info("Partner Types found {}", x.getValue());
885
			LOGGER.info("Partner Types found {}", x.getValue());
886
			Map<PartnerType, List<Integer>> partnerTypeSchemeMap = x.getValue();
886
			Map<PartnerType, List<SchemeInOut>> partnerTypeSchemeMap = x.getValue();
887
			PartnerType partnerTypeToRemove = partnerTypeSchemeMap.keySet().stream().min(
887
			PartnerType partnerTypeToRemove = partnerTypeSchemeMap.keySet().stream().min(
888
					Comparator.comparing(y->PartnerType.PartnerTypeRankMap.get(y))).get();
888
					Comparator.comparing(y->PartnerType.PartnerTypeRankMap.get(y))).get();
889
			
-
 
890
			LOGGER.info("Partner Types to remove", partnerTypeToRemove);
889
			LOGGER.info("Partner Types to remove", partnerTypeToRemove);
-
 
890
			LOGGER.info("Amout to be rollback {}", 
-
 
891
					partnerTypeSchemeMap.get(partnerTypeToRemove).stream().collect(Collectors.summingDouble(SchemeInOut::getAmount)));
891
			
892
			
892
		});
893
		});
893
	}
894
	}
894
 
895
 
895
	private class SioTuple {
896
	private class SioTuple {