| 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 {
|