Subversion Repositories SmartDukaan

Rev

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

Rev 33910 Rev 34035
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,