| Line 5... |
Line 5... |
| 5 |
import java.time.LocalDateTime;
|
5 |
import java.time.LocalDateTime;
|
| 6 |
import java.time.LocalTime;
|
6 |
import java.time.LocalTime;
|
| 7 |
import java.util.ArrayList;
|
7 |
import java.util.ArrayList;
|
| 8 |
import java.util.Arrays;
|
8 |
import java.util.Arrays;
|
| 9 |
import java.util.Collections;
|
9 |
import java.util.Collections;
|
| - |
|
10 |
import java.util.Comparator;
|
| 10 |
import java.util.HashMap;
|
11 |
import java.util.HashMap;
|
| 11 |
import java.util.HashSet;
|
12 |
import java.util.HashSet;
|
| 12 |
import java.util.List;
|
13 |
import java.util.List;
|
| 13 |
import java.util.Map;
|
14 |
import java.util.Map;
|
| 14 |
import java.util.Set;
|
15 |
import java.util.Set;
|
| 15 |
import java.util.concurrent.TimeUnit;
|
16 |
import java.util.concurrent.TimeUnit;
|
| - |
|
17 |
import java.util.function.Function;
|
| 16 |
import java.util.stream.Collectors;
|
18 |
import java.util.stream.Collectors;
|
| 17 |
|
19 |
|
| 18 |
import org.apache.commons.io.output.ByteArrayOutputStream;
|
20 |
import org.apache.commons.io.output.ByteArrayOutputStream;
|
| 19 |
import org.apache.commons.lang.StringUtils;
|
21 |
import org.apache.commons.lang.StringUtils;
|
| 20 |
import org.apache.logging.log4j.LogManager;
|
22 |
import org.apache.logging.log4j.LogManager;
|
| Line 46... |
Line 48... |
| 46 |
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
|
48 |
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
|
| 47 |
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
|
49 |
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
|
| 48 |
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
|
50 |
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
|
| 49 |
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
|
51 |
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
|
| 50 |
import com.spice.profitmandi.dao.entity.fofo.PartnerTargetDetails;
|
52 |
import com.spice.profitmandi.dao.entity.fofo.PartnerTargetDetails;
|
| - |
|
53 |
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
|
| 51 |
import com.spice.profitmandi.dao.entity.fofo.PrebookingOrder;
|
54 |
import com.spice.profitmandi.dao.entity.fofo.PrebookingOrder;
|
| 52 |
import com.spice.profitmandi.dao.entity.fofo.Purchase;
|
55 |
import com.spice.profitmandi.dao.entity.fofo.Purchase;
|
| 53 |
import com.spice.profitmandi.dao.entity.fofo.PurchaseReturnItem;
|
56 |
import com.spice.profitmandi.dao.entity.fofo.PurchaseReturnItem;
|
| 54 |
import com.spice.profitmandi.dao.entity.fofo.ScanRecord;
|
57 |
import com.spice.profitmandi.dao.entity.fofo.ScanRecord;
|
| 55 |
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
|
58 |
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
|
| Line 90... |
Line 93... |
| 90 |
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
|
93 |
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
|
| 91 |
import com.spice.profitmandi.dao.repository.fofo.SchemeItemRepository;
|
94 |
import com.spice.profitmandi.dao.repository.fofo.SchemeItemRepository;
|
| 92 |
import com.spice.profitmandi.dao.repository.fofo.TargetSlabRepository;
|
95 |
import com.spice.profitmandi.dao.repository.fofo.TargetSlabRepository;
|
| 93 |
import com.spice.profitmandi.dao.repository.fofo.TargetSlabRepositoryImpl;
|
96 |
import com.spice.profitmandi.dao.repository.fofo.TargetSlabRepositoryImpl;
|
| 94 |
import com.spice.profitmandi.dao.repository.inventory.SaholicInventorySnapshotRepository;
|
97 |
import com.spice.profitmandi.dao.repository.inventory.SaholicInventorySnapshotRepository;
|
| 95 |
import com.spice.profitmandi.dao.repository.inventory.SaholicReservationInventorySnapshotRepository;
|
98 |
import com.spice.profitmandi.dao.repository.inventory.SaholicReservationSnapshotRepository;
|
| 96 |
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
|
99 |
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
|
| 97 |
import com.spice.profitmandi.dao.repository.transaction.LineItemRepository;
|
100 |
import com.spice.profitmandi.dao.repository.transaction.LineItemRepository;
|
| 98 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
101 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
| 99 |
import com.spice.profitmandi.dao.repository.transaction.ReturnOrderRepository;
|
102 |
import com.spice.profitmandi.dao.repository.transaction.ReturnOrderRepository;
|
| 100 |
import com.spice.profitmandi.dao.repository.transaction.SellerWarehouseRepository;
|
103 |
import com.spice.profitmandi.dao.repository.transaction.SellerWarehouseRepository;
|
| Line 123... |
Line 126... |
| 123 |
@Autowired
|
126 |
@Autowired
|
| 124 |
private LineItemRepository lineItemRepository;
|
127 |
private LineItemRepository lineItemRepository;
|
| 125 |
|
128 |
|
| 126 |
@Autowired
|
129 |
@Autowired
|
| 127 |
private PurchaseReturnItemRepository purchaseReturnItemRepository;
|
130 |
private PurchaseReturnItemRepository purchaseReturnItemRepository;
|
| 128 |
|
131 |
|
| 129 |
@Autowired
|
132 |
@Autowired
|
| 130 |
private SaholicInventorySnapshotRepository saholicInventorySnapshotRepository;
|
133 |
private SaholicInventorySnapshotRepository saholicInventorySnapshotRepository;
|
| 131 |
|
134 |
|
| 132 |
@Autowired
|
135 |
@Autowired
|
| 133 |
private CsService csService;
|
136 |
private CsService csService;
|
| Line 140... |
Line 143... |
| 140 |
|
143 |
|
| 141 |
@Autowired
|
144 |
@Autowired
|
| 142 |
private PrebookingOrderRepository prebookingOrderRepository;
|
145 |
private PrebookingOrderRepository prebookingOrderRepository;
|
| 143 |
|
146 |
|
| 144 |
@Autowired
|
147 |
@Autowired
|
| 145 |
private SaholicReservationInventorySnapshotRepository saholicReservationInventorySnapshotRepository;
|
148 |
private SaholicReservationSnapshotRepository saholicReservationInventorySnapshotRepository;
|
| 146 |
|
149 |
|
| 147 |
@Autowired
|
150 |
@Autowired
|
| 148 |
private TargetSlabRepository targetSlabRepository;
|
151 |
private TargetSlabRepository targetSlabRepository;
|
| 149 |
|
152 |
|
| 150 |
@Autowired
|
153 |
@Autowired
|
| Line 831... |
Line 834... |
| 831 |
}
|
834 |
}
|
| 832 |
}
|
835 |
}
|
| 833 |
|
836 |
|
| 834 |
public void cancelDn(String debitNoteNumber) throws Exception {
|
837 |
public void cancelDn(String debitNoteNumber) throws Exception {
|
| 835 |
DebitNote debitNote = debitNoteRepository.selectDebitNoteByNumber(debitNoteNumber);
|
838 |
DebitNote debitNote = debitNoteRepository.selectDebitNoteByNumber(debitNoteNumber);
|
| 836 |
|
839 |
|
| 837 |
List<PurchaseReturnItem> purchaseReturnItems = purchaseReturnItemRepository.selectAllByDebitNoteId(debitNote.getId());
|
840 |
List<PurchaseReturnItem> purchaseReturnItems = purchaseReturnItemRepository
|
| - |
|
841 |
.selectAllByDebitNoteId(debitNote.getId());
|
| 838 |
// Select all inventory Item
|
842 |
// Select all inventory Item
|
| 839 |
Set<Integer> inventoryItemIds = purchaseReturnItems.stream().map(x -> x.getInventoryItemId())
|
843 |
Set<Integer> inventoryItemIds = purchaseReturnItems.stream().map(x -> x.getInventoryItemId())
|
| 840 |
.collect(Collectors.toSet());
|
844 |
.collect(Collectors.toSet());
|
| 841 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByIds(inventoryItemIds);
|
845 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByIds(inventoryItemIds);
|
| 842 |
for (InventoryItem inventoryItem : inventoryItems) {
|
846 |
for (InventoryItem inventoryItem : inventoryItems) {
|
| Line 855... |
Line 859... |
| 855 |
currentInventorySnapshotRepository.persist(cis);
|
859 |
currentInventorySnapshotRepository.persist(cis);
|
| 856 |
}
|
860 |
}
|
| 857 |
cis.setAvailability(cis.getAvailability() + 1);
|
861 |
cis.setAvailability(cis.getAvailability() + 1);
|
| 858 |
schemeService.processSchemeIn(inventoryItem.getPurchaseId(), inventoryItem.getFofoId());
|
862 |
schemeService.processSchemeIn(inventoryItem.getPurchaseId(), inventoryItem.getFofoId());
|
| 859 |
}
|
863 |
}
|
| 860 |
}
|
864 |
}
|
| 861 |
purchaseReturnItems.stream().forEach(x-> purchaseReturnItemRepository.delete(x));
|
865 |
purchaseReturnItems.stream().forEach(x -> purchaseReturnItemRepository.delete(x));
|
| 862 |
}
|
866 |
}
|
| 863 |
|
867 |
|
| 864 |
public void processPd(int priceDropId) throws ProfitMandiBusinessException {
|
868 |
public void processPd(int priceDropId) throws ProfitMandiBusinessException {
|
| 865 |
priceDropService.processPriceDrop(priceDropId);
|
869 |
priceDropService.processPriceDrop(priceDropId);
|
| 866 |
}
|
870 |
}
|
| - |
|
871 |
|
| - |
|
872 |
public void fixScheme() throws Exception {
|
| - |
|
873 |
final Map<Integer, Scheme> schemesMap = schemeRepository.selectAll().stream()
|
| - |
|
874 |
.collect(Collectors.toMap(x -> x.getId(), x -> x));
|
| - |
|
875 |
List<SchemeInOut> sios = schemeInOutRepository.selectAllByCreateDate(LocalDate.of(2019, 9, 1).atTime(0, 0),
|
| - |
|
876 |
LocalDateTime.now());
|
| - |
|
877 |
Map<SioTuple, Map<PartnerType, List<Integer>>> schemeTupleMap = sios.stream().filter(x -> x.getRolledBackTimestamp() == null)
|
| - |
|
878 |
.filter(x -> schemesMap.get(x.getSchemeId()).getPartnerType() != PartnerType.ALL)
|
| - |
|
879 |
.collect(Collectors.groupingBy(
|
| - |
|
880 |
x -> new SioTuple(x.getInventoryItemId(), schemesMap.get(x.getSchemeId()).getType()),
|
| - |
|
881 |
Collectors.groupingBy(x->schemesMap.get(x.getSchemeId()).getPartnerType(),
|
| - |
|
882 |
Collectors.mapping(x->x.getSchemeId(), Collectors.toList()))));
|
| - |
|
883 |
|
| - |
|
884 |
schemeTupleMap.entrySet().stream().filter(x->x.getValue().size()>1).forEach(x->{
|
| - |
|
885 |
LOGGER.info("Partner Types found {}", x.getValue());
|
| - |
|
886 |
Map<PartnerType, List<Integer>> partnerTypeSchemeMap = x.getValue();
|
| - |
|
887 |
PartnerType partnerTypeToRemove = partnerTypeSchemeMap.keySet().stream().min(
|
| - |
|
888 |
Comparator.comparing(y->PartnerType.PartnerTypeRankMap.get(y))).get();
|
| - |
|
889 |
|
| - |
|
890 |
LOGGER.info("Partner Types to remove", partnerTypeToRemove);
|
| - |
|
891 |
|
| - |
|
892 |
});
|
| - |
|
893 |
}
|
| - |
|
894 |
|
| - |
|
895 |
private class SioTuple {
|
| - |
|
896 |
int inventoryId;
|
| - |
|
897 |
SchemeType schemeType;
|
| - |
|
898 |
|
| - |
|
899 |
public SioTuple(int inventoryItemId, SchemeType schemeType) {
|
| - |
|
900 |
this.inventoryId = inventoryItemId;
|
| - |
|
901 |
this.schemeType = schemeType;
|
| - |
|
902 |
}
|
| - |
|
903 |
|
| - |
|
904 |
public int getInventoryId() {
|
| - |
|
905 |
return inventoryId;
|
| - |
|
906 |
}
|
| - |
|
907 |
|
| - |
|
908 |
public void setInventoryId(int inventoryId) {
|
| - |
|
909 |
this.inventoryId = inventoryId;
|
| - |
|
910 |
}
|
| - |
|
911 |
|
| - |
|
912 |
public SchemeType getSchemeType() {
|
| - |
|
913 |
return schemeType;
|
| - |
|
914 |
}
|
| - |
|
915 |
|
| - |
|
916 |
public void setSchemeType(SchemeType schemeType) {
|
| - |
|
917 |
this.schemeType = schemeType;
|
| - |
|
918 |
}
|
| - |
|
919 |
|
| - |
|
920 |
@Override
|
| - |
|
921 |
public int hashCode() {
|
| - |
|
922 |
final int prime = 31;
|
| - |
|
923 |
int result = 1;
|
| - |
|
924 |
result = prime * result + getOuterType().hashCode();
|
| - |
|
925 |
result = prime * result + inventoryId;
|
| - |
|
926 |
result = prime * result + ((schemeType == null) ? 0 : schemeType.hashCode());
|
| - |
|
927 |
return result;
|
| - |
|
928 |
}
|
| - |
|
929 |
|
| - |
|
930 |
@Override
|
| - |
|
931 |
public boolean equals(Object obj) {
|
| - |
|
932 |
if (this == obj)
|
| - |
|
933 |
return true;
|
| - |
|
934 |
if (obj == null)
|
| - |
|
935 |
return false;
|
| - |
|
936 |
if (getClass() != obj.getClass())
|
| - |
|
937 |
return false;
|
| - |
|
938 |
SioTuple other = (SioTuple) obj;
|
| - |
|
939 |
if (!getOuterType().equals(other.getOuterType()))
|
| - |
|
940 |
return false;
|
| - |
|
941 |
if (inventoryId != other.inventoryId)
|
| - |
|
942 |
return false;
|
| - |
|
943 |
if (schemeType != other.schemeType)
|
| - |
|
944 |
return false;
|
| - |
|
945 |
return true;
|
| - |
|
946 |
}
|
| - |
|
947 |
|
| - |
|
948 |
private RunOnceTasks getOuterType() {
|
| - |
|
949 |
return RunOnceTasks.this;
|
| - |
|
950 |
}
|
| - |
|
951 |
|
| - |
|
952 |
}
|
| 867 |
}
|
953 |
}
|
| 868 |
|
954 |
|
| 869 |
//7015845171
|
955 |
//7015845171
|
| 870 |
|
956 |
|