| Line 46... |
Line 46... |
| 46 |
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
|
46 |
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
|
| 47 |
import com.spice.profitmandi.dao.repository.user.UserRepository;
|
47 |
import com.spice.profitmandi.dao.repository.user.UserRepository;
|
| 48 |
import com.spice.profitmandi.dao.repository.warehouse.BrandRegionMappingRepository;
|
48 |
import com.spice.profitmandi.dao.repository.warehouse.BrandRegionMappingRepository;
|
| 49 |
import com.spice.profitmandi.service.NotificationService;
|
49 |
import com.spice.profitmandi.service.NotificationService;
|
| 50 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
50 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
| 51 |
import com.spice.profitmandi.service.inventory.InventoryService;
|
51 |
import com.spice.profitmandi.service.inventory.*;
|
| 52 |
import com.spice.profitmandi.service.inventory.SaholicInventoryService;
|
- |
|
| 53 |
import com.spice.profitmandi.service.inventory.StockAllocationService;
|
- |
|
| 54 |
import com.spice.profitmandi.service.user.RetailerService;
|
52 |
import com.spice.profitmandi.service.user.RetailerService;
|
| 55 |
import com.spice.profitmandi.service.wallet.WalletService;
|
53 |
import com.spice.profitmandi.service.wallet.WalletService;
|
| 56 |
import com.spice.profitmandi.thrift.clients.PaymentClient;
|
54 |
import com.spice.profitmandi.thrift.clients.PaymentClient;
|
| 57 |
import com.spice.profitmandi.thrift.clients.UserClient;
|
55 |
import com.spice.profitmandi.thrift.clients.UserClient;
|
| 58 |
import com.spice.profitmandi.web.model.LoginDetails;
|
56 |
import com.spice.profitmandi.web.model.LoginDetails;
|
| Line 229... |
Line 227... |
| 229 |
|
227 |
|
| 230 |
@Autowired
|
228 |
@Autowired
|
| 231 |
MonthlyTargetRepository monthlyTargetRepository;
|
229 |
MonthlyTargetRepository monthlyTargetRepository;
|
| 232 |
|
230 |
|
| 233 |
@Autowired
|
231 |
@Autowired
|
| - |
|
232 |
AgeingService ageingService;
|
| - |
|
233 |
|
| - |
|
234 |
@Autowired
|
| 234 |
LoanRepository loanRepository;
|
235 |
LoanRepository loanRepository;
|
| 235 |
|
236 |
|
| 236 |
@RequestMapping(value = "/open-indent/save", method = RequestMethod.POST)
|
237 |
@RequestMapping(value = "/open-indent/save", method = RequestMethod.POST)
|
| 237 |
public String saveOpenIndent(HttpServletRequest request, Model model, @RequestParam int catalogId,
|
238 |
public String saveOpenIndent(HttpServletRequest request, Model model, @RequestParam int catalogId,
|
| 238 |
@RequestParam int itemQty, @RequestParam int fofoId) throws Exception {
|
239 |
@RequestParam int itemQty, @RequestParam int fofoId) throws Exception {
|
| Line 1683... |
Line 1684... |
| 1683 |
public String getPartnersBrandWiseDetail(HttpServletRequest request, Model model) throws Exception {
|
1684 |
public String getPartnersBrandWiseDetail(HttpServletRequest request, Model model) throws Exception {
|
| 1684 |
|
1685 |
|
| 1685 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
1686 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
| 1686 |
String email = loginDetails.getEmailId();
|
1687 |
String email = loginDetails.getEmailId();
|
| 1687 |
|
1688 |
|
| 1688 |
List<String> brands = Arrays.asList("Vivo", "Samsung", "Oppo", "Tecno", "POCO", "Itel", "OnePlus", "Lava", "Realme",
|
- |
|
| 1689 |
"Xiaomi", "Nokia");
|
1689 |
List<String> brands = ProfitMandiConstants.BRANDS;
|
| 1690 |
|
1690 |
|
| 1691 |
AuthUser authUser = authRepository.selectByEmailOrMobile(email);
|
1691 |
AuthUser authUser = authRepository.selectByEmailOrMobile(email);
|
| 1692 |
Set<Integer> fofoIds = csService1.getAuthFofoIds(email, true);
|
1692 |
Set<Integer> fofoIds = csService1.getAuthFofoIds(email, true);
|
| 1693 |
|
1693 |
|
| 1694 |
Map<Integer, PartnerDailyInvestment> partnerDailyInvestmentMap = new HashMap<>();
|
1694 |
Map<Integer, PartnerDailyInvestment> partnerDailyInvestmentMap = new HashMap<>();
|
| Line 2095... |
Line 2095... |
| 2095 |
model.addAttribute("focusedModelShortageBrandMap", focusedModelShortageBrandMap);
|
2095 |
model.addAttribute("focusedModelShortageBrandMap", focusedModelShortageBrandMap);
|
| 2096 |
|
2096 |
|
| 2097 |
model.addAttribute("pendingIndentBrandMap", pendingIndentBrandMap);
|
2097 |
model.addAttribute("pendingIndentBrandMap", pendingIndentBrandMap);
|
| 2098 |
|
2098 |
|
| 2099 |
}
|
2099 |
}
|
| - |
|
2100 |
|
| - |
|
2101 |
FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
|
| - |
|
2102 |
|
| - |
|
2103 |
|
| - |
|
2104 |
List<PartnerWarehouseStockSummaryModel> partnerWarehouseStockSummaryModels = saholicInventoryService.getSaholicAndPartnerStock(fofoId, fofoStore.getWarehouseId());
|
| - |
|
2105 |
|
| - |
|
2106 |
Set<Integer> catalogIds = partnerWarehouseStockSummaryModels.stream().map(x -> x.getCatalogId()).collect(Collectors.toSet());
|
| - |
|
2107 |
|
| - |
|
2108 |
List<CatalogAgingModel> catalogAgingModels = ageingService.getCatalogsAgingByWarehouse(catalogIds, fofoStore.getWarehouseId());
|
| - |
|
2109 |
|
| - |
|
2110 |
Map<Integer, CatalogAgingModel> catalogAgingModelMap = catalogAgingModels.stream().collect(Collectors.toMap(x -> x.getCatalogId(), x -> x));
|
| - |
|
2111 |
LOGGER.info("catalogAgingModelMap{},fofoId{},getWarehouseId {}", catalogAgingModelMap, fofoId, fofoStore.getWarehouseId());
|
| - |
|
2112 |
|
| - |
|
2113 |
List<PartnerWarehouseStockAgingSummaryModel> partnerWarehouseStockAgingSummaryModelList = new ArrayList<>();
|
| - |
|
2114 |
|
| - |
|
2115 |
for (PartnerWarehouseStockSummaryModel stockSummary : partnerWarehouseStockSummaryModels) {
|
| - |
|
2116 |
|
| - |
|
2117 |
PartnerWarehouseStockAgingSummaryModel partnerWarehouseStockAgingSummaryModel = new PartnerWarehouseStockAgingSummaryModel();
|
| - |
|
2118 |
|
| - |
|
2119 |
partnerWarehouseStockAgingSummaryModel.setCatalogId(stockSummary.getCatalogId());
|
| - |
|
2120 |
partnerWarehouseStockAgingSummaryModel.setBrand(stockSummary.getBrand());
|
| - |
|
2121 |
partnerWarehouseStockAgingSummaryModel.setModelNumber(stockSummary.getModelNumber());
|
| - |
|
2122 |
partnerWarehouseStockAgingSummaryModel.setNetAvailability(stockSummary.getShaholicNetAvailability());
|
| - |
|
2123 |
partnerWarehouseStockAgingSummaryModel.setPartnerStockAvailability(stockSummary.getPartnerFullFilledQty());
|
| - |
|
2124 |
partnerWarehouseStockAgingSummaryModel.setPartnerCurrentAvailability(stockSummary.getPartnerCurrentQty());
|
| - |
|
2125 |
partnerWarehouseStockAgingSummaryModel.setPartnerShortageStock(stockSummary.getPartnerShortageQty());
|
| - |
|
2126 |
partnerWarehouseStockAgingSummaryModel.setExceedDays(catalogAgingModelMap.get(stockSummary.getCatalogId()).getExceedDays());
|
| - |
|
2127 |
partnerWarehouseStockAgingSummaryModel.setStatus(stockSummary.getStatus());
|
| - |
|
2128 |
|
| - |
|
2129 |
partnerWarehouseStockAgingSummaryModelList.add(partnerWarehouseStockAgingSummaryModel);
|
| - |
|
2130 |
}
|
| - |
|
2131 |
|
| - |
|
2132 |
List<String> brands = ProfitMandiConstants.BRANDS;
|
| - |
|
2133 |
List<String> statusOrder = Arrays.asList("EOL", "SLOWMOVING", "FASTMOVING", "HID", "OTHER");
|
| - |
|
2134 |
Map<String, List<PartnerWarehouseStockAgingSummaryModel>> brandPartnerWarehouseStockListMap =
|
| - |
|
2135 |
partnerWarehouseStockAgingSummaryModelList.stream().collect(Collectors.groupingBy(
|
| - |
|
2136 |
PartnerWarehouseStockAgingSummaryModel::getBrand));
|
| - |
|
2137 |
|
| - |
|
2138 |
Map<String, Map<String, List<PartnerWarehouseStockAgingSummaryModel>>> brandStatusWiseStockListMap =
|
| - |
|
2139 |
partnerWarehouseStockAgingSummaryModelList.stream().collect(Collectors.groupingBy(
|
| - |
|
2140 |
PartnerWarehouseStockAgingSummaryModel::getBrand,
|
| - |
|
2141 |
Collectors.groupingBy(PartnerWarehouseStockAgingSummaryModel::getStatus)
|
| - |
|
2142 |
));
|
| - |
|
2143 |
|
| - |
|
2144 |
Map<String, Map<String, List<PartnerWarehouseStockAgingSummaryModel>>> sortedBrandStatusWiseStockListMap =
|
| - |
|
2145 |
brandStatusWiseStockListMap.entrySet().stream().collect(Collectors.toMap(
|
| - |
|
2146 |
Map.Entry::getKey, // Key (Brand)
|
| - |
|
2147 |
entry -> {
|
| - |
|
2148 |
Map<String, List<PartnerWarehouseStockAgingSummaryModel>> sortedStatusMap = entry.getValue().entrySet().stream()
|
| - |
|
2149 |
.sorted((e1, e2) -> Integer.compare(
|
| - |
|
2150 |
statusOrder.indexOf(e1.getKey()),
|
| - |
|
2151 |
statusOrder.indexOf(e2.getKey())
|
| - |
|
2152 |
))
|
| - |
|
2153 |
.collect(Collectors.toMap(
|
| - |
|
2154 |
Map.Entry::getKey,
|
| - |
|
2155 |
Map.Entry::getValue,
|
| - |
|
2156 |
(v1, v2) -> v1,
|
| - |
|
2157 |
LinkedHashMap::new // Ensure ordering is maintained
|
| - |
|
2158 |
));
|
| - |
|
2159 |
return sortedStatusMap;
|
| - |
|
2160 |
},
|
| - |
|
2161 |
(v1, v2) -> v1,
|
| - |
|
2162 |
LinkedHashMap::new // Maintain order of brands
|
| - |
|
2163 |
));
|
| - |
|
2164 |
|
| - |
|
2165 |
model.addAttribute("brandStatusWiseStockListMap", sortedBrandStatusWiseStockListMap);
|
| - |
|
2166 |
model.addAttribute("brands", brands);
|
| - |
|
2167 |
|
| 2100 |
return "partner-stock";
|
2168 |
return "partner-stock";
|
| 2101 |
|
2169 |
|
| 2102 |
}
|
2170 |
}
|
| 2103 |
|
2171 |
|
| 2104 |
private List<PartnerStockDescriptionModel> getBrandItemwiseDescription(String brand,
|
2172 |
private List<PartnerStockDescriptionModel> getBrandItemwiseDescription(String brand,
|