Subversion Repositories SmartDukaan

Rev

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

Rev 27640 Rev 27660
Line 67... Line 67...
67
import com.spice.profitmandi.dao.entity.catalog.Offer;
67
import com.spice.profitmandi.dao.entity.catalog.Offer;
68
import com.spice.profitmandi.dao.entity.catalog.OfferPartner;
68
import com.spice.profitmandi.dao.entity.catalog.OfferPartner;
69
import com.spice.profitmandi.dao.entity.catalog.Offermargin;
69
import com.spice.profitmandi.dao.entity.catalog.Offermargin;
70
import com.spice.profitmandi.dao.entity.catalog.TagListing;
70
import com.spice.profitmandi.dao.entity.catalog.TagListing;
71
import com.spice.profitmandi.dao.entity.cs.Position;
71
import com.spice.profitmandi.dao.entity.cs.Position;
-
 
72
import com.spice.profitmandi.dao.entity.cs.TicketAssigned;
72
import com.spice.profitmandi.dao.entity.dtr.Document;
73
import com.spice.profitmandi.dao.entity.dtr.Document;
73
import com.spice.profitmandi.dao.entity.dtr.NotificationCampaign;
74
import com.spice.profitmandi.dao.entity.dtr.NotificationCampaign;
74
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
75
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
75
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
76
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
76
import com.spice.profitmandi.dao.entity.fofo.PartnerDailyInvestment;
77
import com.spice.profitmandi.dao.entity.fofo.PartnerDailyInvestment;
Line 82... Line 83...
82
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
83
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
83
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
84
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
84
import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;
85
import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;
85
import com.spice.profitmandi.dao.model.BrandWisePartnerSaleModel;
86
import com.spice.profitmandi.dao.model.BrandWisePartnerSaleModel;
86
import com.spice.profitmandi.dao.model.CreateOfferRequest;
87
import com.spice.profitmandi.dao.model.CreateOfferRequest;
-
 
88
import com.spice.profitmandi.dao.model.InStockBrandItemModel;
87
import com.spice.profitmandi.dao.model.InStockBrandModel;
89
import com.spice.profitmandi.dao.model.InStockBrandModel;
88
import com.spice.profitmandi.dao.model.ItemTypeParams;
90
import com.spice.profitmandi.dao.model.ItemTypeParams;
89
import com.spice.profitmandi.dao.model.ItemWiseTertiaryModel;
91
import com.spice.profitmandi.dao.model.ItemWiseTertiaryModel;
90
import com.spice.profitmandi.dao.model.MonthSaleModel;
92
import com.spice.profitmandi.dao.model.MonthSaleModel;
91
import com.spice.profitmandi.dao.model.PartnerDetailModel;
93
import com.spice.profitmandi.dao.model.PartnerDetailModel;
Line 106... Line 108...
106
import com.spice.profitmandi.dao.repository.catalog.OfferRepository;
108
import com.spice.profitmandi.dao.repository.catalog.OfferRepository;
107
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
109
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
108
import com.spice.profitmandi.dao.repository.cs.CsService;
110
import com.spice.profitmandi.dao.repository.cs.CsService;
109
import com.spice.profitmandi.dao.repository.cs.PartnersPositionRepository;
111
import com.spice.profitmandi.dao.repository.cs.PartnersPositionRepository;
110
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
112
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
-
 
113
import com.spice.profitmandi.dao.repository.cs.TicketAssignedRepository;
111
import com.spice.profitmandi.dao.repository.cs.TicketCategoryRepository;
114
import com.spice.profitmandi.dao.repository.cs.TicketCategoryRepository;
112
import com.spice.profitmandi.dao.repository.cs.TicketRepository;
115
import com.spice.profitmandi.dao.repository.cs.TicketRepository;
113
import com.spice.profitmandi.dao.repository.dtr.DocumentRepository;
116
import com.spice.profitmandi.dao.repository.dtr.DocumentRepository;
114
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
117
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
115
import com.spice.profitmandi.dao.repository.dtr.LeadRepository;
118
import com.spice.profitmandi.dao.repository.dtr.LeadRepository;
Line 282... Line 285...
282
	private TransactionService transactionService;
285
	private TransactionService transactionService;
283
 
286
 
284
	@Autowired
287
	@Autowired
285
	private TagListingRepository tagListingRepository;
288
	private TagListingRepository tagListingRepository;
286
 
289
 
-
 
290
	@Autowired
-
 
291
	private TicketAssignedRepository ticketAssignedRepository;
-
 
292
 
287
	private static final Logger LOGGER = LogManager.getLogger(DashboardController.class);
293
	private static final Logger LOGGER = LogManager.getLogger(DashboardController.class);
288
 
294
 
289
	@RequestMapping(value = "/12dashboard34", method = RequestMethod.GET)
295
	@RequestMapping(value = "/12dashboard34", method = RequestMethod.GET)
290
	public String dashboard1(HttpServletRequest request, Model model, @RequestParam int fofoId) throws Exception {
296
	public String dashboard1(HttpServletRequest request, Model model, @RequestParam int fofoId) throws Exception {
291
		boolean isAdmin = false;
297
		boolean isAdmin = false;
Line 846... Line 852...
846
						warehouseStockMap.put(0, ws);
852
						warehouseStockMap.put(0, ws);
847
 
853
 
848
					}
854
					}
849
 
855
 
850
					warehousePartnerDetailMap = this.getWarehousePartnerDetail();
856
					warehousePartnerDetailMap = this.getWarehousePartnerDetail();
851
					LOGGER.info("warehousePartnerDetailMap" + warehousePartnerDetailMap);
-
 
852
					rctSaholic = reporticoCacheTableRepository.selectByTableName("SaholicInventoryCIS");
857
					rctSaholic = reporticoCacheTableRepository.selectByTableName("SaholicInventoryCIS");
853
					rctPartneStat = reporticoCacheTableRepository.selectByTableName("partnerStat");
858
					rctPartneStat = reporticoCacheTableRepository.selectByTableName("partnerStat");
854
					partnersBrandSale = fofoStoreRepository.selectGroupByBrandWarehousePartnerSale();
859
					partnersBrandSale = fofoStoreRepository.selectGroupByBrandWarehousePartnerSale();
855
					accessoriesBrandSales = fofoStoreRepository.selectGroupByBrandAccesoriesWarehousePartnerSale();
860
					accessoriesBrandSales = fofoStoreRepository.selectGroupByBrandAccesoriesWarehousePartnerSale();
856
				}
861
				}
Line 863... Line 868...
863
				if (positions.stream().filter(x -> x.getEscalationType().equals(EscalationType.L5)).count() > 0) {
868
				if (positions.stream().filter(x -> x.getEscalationType().equals(EscalationType.L5)).count() > 0) {
864
					menus = menuRepository.selectAll();
869
					menus = menuRepository.selectAll();
865
				} else {
870
				} else {
866
					List<Integer> menuIds = menuCategoryRepository.selectAllByPositions(positions).stream()
871
					List<Integer> menuIds = menuCategoryRepository.selectAllByPositions(positions).stream()
867
							.map(x -> x.getMenuId()).collect(Collectors.toList());
872
							.map(x -> x.getMenuId()).collect(Collectors.toList());
868
					LOGGER.info("Menu Ids are {}", menuIds);
-
 
869
					if (menuIds.size() > 0) {
873
					if (menuIds.size() > 0) {
870
						menus = menuRepository.selectAllByIds(menuIds);
874
						menus = menuRepository.selectAllByIds(menuIds);
871
					}
875
					}
872
				}
876
				}
873
				List<Position> salesPositions = positions.stream()
877
				List<Position> salesPositions = positions.stream()
Line 1052... Line 1056...
1052
				.selectGroupByWarehouseAndBrand(warehouseId);
1056
				.selectGroupByWarehouseAndBrand(warehouseId);
1053
		Map<Integer, String> warehouseMap = ProfitMandiConstants.WAREHOUSE_MAP;
1057
		Map<Integer, String> warehouseMap = ProfitMandiConstants.WAREHOUSE_MAP;
1054
		model.addAttribute("warehouseWiseBrandStock", warehouseWiseBrandStock);
1058
		model.addAttribute("warehouseWiseBrandStock", warehouseWiseBrandStock);
1055
		model.addAttribute("warehouseId", warehouseId);
1059
		model.addAttribute("warehouseId", warehouseId);
1056
		model.addAttribute("warehouseMap", warehouseMap);
1060
		model.addAttribute("warehouseMap", warehouseMap);
1057
		LOGGER.info("warehouseWiseBrandStock" + warehouseWiseBrandStock);
-
 
-
 
1061
 
1058
		return "warehouse_brand_stock";
1062
		return "warehouse_brand_stock";
1059
	}
1063
	}
1060
 
1064
 
1061
	@RequestMapping(value = "/getWarehouseWiseData", method = RequestMethod.GET)
1065
	@RequestMapping(value = "/getWarehouseWiseData", method = RequestMethod.GET)
1062
	public String getWarehouseWiseData(HttpServletRequest request, Model model) throws Exception {
1066
	public String getWarehouseWiseData(HttpServletRequest request, Model model) throws Exception {
Line 1073... Line 1077...
1073
		if (partnerStats != null) {
1077
		if (partnerStats != null) {
1074
			for (Entry<Integer, List<FofoStore>> warehouse : warehousePartnerMap.entrySet()) {
1078
			for (Entry<Integer, List<FofoStore>> warehouse : warehousePartnerMap.entrySet()) {
1075
				List<Integer> fofoIds = warehouse.getValue().stream().map(x -> x.getId()).collect(Collectors.toList());
1079
				List<Integer> fofoIds = warehouse.getValue().stream().map(x -> x.getId()).collect(Collectors.toList());
1076
				List<PartnerDetailModel> partnerDetails = fofoIds.stream().map(x -> partnerStats.get(x))
1080
				List<PartnerDetailModel> partnerDetails = fofoIds.stream().map(x -> partnerStats.get(x))
1077
						.collect(Collectors.toList());
1081
						.collect(Collectors.toList());
1078
				LOGGER.info("partnerDetails1" + partnerDetails);
-
 
1079
				if (partnerDetails != null && !partnerDetails.isEmpty()) {
1082
				if (partnerDetails != null && !partnerDetails.isEmpty()) {
1080
					PartnerDetailModel partnerDetailModel = partnerStatsService.getAggregateStats(partnerDetails);
1083
					PartnerDetailModel partnerDetailModel = partnerStatsService.getAggregateStats(partnerDetails);
1081
					warehouseIdAndallValues.put(warehouse.getKey(), partnerDetailModel);
1084
					warehouseIdAndallValues.put(warehouse.getKey(), partnerDetailModel);
1082
				}
1085
				}
1083
 
1086
 
1084
			}
1087
			}
1085
			LOGGER.info("warehouseIdAndallValues" + warehouseIdAndallValues);
-
 
1086
			PartnerDetailModel partnerDetailModel = partnerStatsService
1088
			PartnerDetailModel partnerDetailModel = partnerStatsService
1087
					.getAggregateStats(new ArrayList<>(partnerStats.values()));
1089
					.getAggregateStats(new ArrayList<>(partnerStats.values()));
1088
			warehouseIdAndallValues.put(0, partnerDetailModel);
1090
			warehouseIdAndallValues.put(0, partnerDetailModel);
1089
		}
1091
		}
1090
		return warehouseIdAndallValues;
1092
		return warehouseIdAndallValues;
Line 1177... Line 1179...
1177
		List<WarehouseWiseitemStockModel> warehouseWiseItemStock = saholicInventoryCISRepository
1179
		List<WarehouseWiseitemStockModel> warehouseWiseItemStock = saholicInventoryCISRepository
1178
				.selectWarehouseItemStock(warehouseId, brands, category);
1180
				.selectWarehouseItemStock(warehouseId, brands, category);
1179
 
1181
 
1180
		model.addAttribute("warehouseWiseItemStock", warehouseWiseItemStock);
1182
		model.addAttribute("warehouseWiseItemStock", warehouseWiseItemStock);
1181
		model.addAttribute("warehouseMap", warehouseMap);
1183
		model.addAttribute("warehouseMap", warehouseMap);
1182
 
-
 
1183
		LOGGER.info("warehouseWiseItemStock" + warehouseWiseItemStock);
-
 
1184
		return "warehouse_item_details";
1184
		return "warehouse_item_details";
1185
	}
1185
	}
1186
 
1186
 
1187
	private String getWarehouses(Set<CustomRetailer> positionRetailers) {
1187
	private String getWarehouses(Set<CustomRetailer> positionRetailers) {
1188
		Map<Integer, String> warehouses = new HashMap<>();
1188
		Map<Integer, String> warehouses = new HashMap<>();
Line 1205... Line 1205...
1205
		Set<String> brands = inventoryService.getAllTagListingBrands();
1205
		Set<String> brands = inventoryService.getAllTagListingBrands();
1206
		model.addAttribute("warehouseWiseBrandPartnerSales", warehouseWiseBrandPartnerSales);
1206
		model.addAttribute("warehouseWiseBrandPartnerSales", warehouseWiseBrandPartnerSales);
1207
		model.addAttribute("warehouseMap", warehouseMap);
1207
		model.addAttribute("warehouseMap", warehouseMap);
1208
		model.addAttribute("brands", brands);
1208
		model.addAttribute("brands", brands);
1209
		model.addAttribute("selectedbrand", brand);
1209
		model.addAttribute("selectedbrand", brand);
1210
 
-
 
1211
		LOGGER.info("warehouseWiseBrandPartnerSales" + warehouseWiseBrandPartnerSales);
-
 
1212
		return "warehousewise_brand_partners_sale";
1210
		return "warehousewise_brand_partners_sale";
1213
	}
1211
	}
1214
 
1212
 
1215
	@RequestMapping(value = "/getWarehouseWiseAccesoriesBrandPartnerSale", method = RequestMethod.GET)
1213
	@RequestMapping(value = "/getWarehouseWiseAccesoriesBrandPartnerSale", method = RequestMethod.GET)
1216
	public String getWarehouseWiseAccesoriesBrandPartnerSale(HttpServletRequest request, Model model,
1214
	public String getWarehouseWiseAccesoriesBrandPartnerSale(HttpServletRequest request, Model model,
Line 1222... Line 1220...
1222
		Set<String> brands = inventoryService.getAllTagListingBrands();
1220
		Set<String> brands = inventoryService.getAllTagListingBrands();
1223
		model.addAttribute("warehouseWiseBrandPartnerSales", warehouseWiseBrandPartnerSales);
1221
		model.addAttribute("warehouseWiseBrandPartnerSales", warehouseWiseBrandPartnerSales);
1224
		model.addAttribute("warehouseMap", warehouseMap);
1222
		model.addAttribute("warehouseMap", warehouseMap);
1225
		model.addAttribute("brands", brands);
1223
		model.addAttribute("brands", brands);
1226
		model.addAttribute("selectedbrand", brand);
1224
		model.addAttribute("selectedbrand", brand);
1227
 
-
 
1228
		LOGGER.info("warehouseWiseBrandPartnerSales" + warehouseWiseBrandPartnerSales);
-
 
1229
		return "warehousewise_accessoriesbrand_sale";
1225
		return "warehousewise_accessoriesbrand_sale";
1230
	}
1226
	}
1231
 
1227
 
1232
	@RequestMapping(value = "/getWarehouseBrandWiseItemSale", method = RequestMethod.GET)
1228
	@RequestMapping(value = "/getWarehouseBrandWiseItemSale", method = RequestMethod.GET)
1233
	public String getWarehouseBrandWiseItemSale(HttpServletRequest request, Model model,
1229
	public String getWarehouseBrandWiseItemSale(HttpServletRequest request, Model model,
Line 1605... Line 1601...
1605
		model.addAttribute("accesorieslmtdsale", accesorieslmtdsale);
1601
		model.addAttribute("accesorieslmtdsale", accesorieslmtdsale);
1606
		model.addAttribute("customRetailer", customRetailer);
1602
		model.addAttribute("customRetailer", customRetailer);
1607
		return "partner-brand-lmtd-sale";
1603
		return "partner-brand-lmtd-sale";
1608
	}
1604
	}
1609
 
1605
 
-
 
1606
	@RequestMapping(value = "/getPatnerBrandWiseLMSSale", method = RequestMethod.GET)
-
 
1607
	public String getPatnerBrandWiseLMSSale(HttpServletRequest request,
-
 
1608
			@RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId, Model model) throws Exception {
-
 
1609
		LocalDateTime curDate = LocalDate.now().atStartOfDay();
-
 
1610
		CustomRetailer customRetailer = retailerService.getFofoRetailer(fofoId);
-
 
1611
		int lengthOfMonth = YearMonth.from(curDate.minusMonths(1)).lengthOfMonth();
-
 
1612
 
-
 
1613
		Map<String, Double> brandLMSAmount = fofoOrderItemRepository.selectSumAmountGroupByBrand(
-
 
1614
				curDate.withDayOfMonth(1).minusMonths(1),
-
 
1615
				curDate.with(LocalTime.MAX).minusMonths(1).withDayOfMonth(lengthOfMonth), fofoId);
-
 
1616
		Map<String, Long> brandLmsQty = fofoOrderItemRepository.selectSumQuantityGroupByBrand(
-
 
1617
				curDate.withDayOfMonth(1).minusMonths(1),
-
 
1618
				curDate.with(LocalTime.MAX).minusMonths(1).withDayOfMonth(lengthOfMonth), fofoId);
-
 
1619
 
-
 
1620
		Double accesorieslmssale = fofoOrderRepository
-
 
1621
				.selectSumSaleGroupByFofoIdsForMobileOrAccessories(fofoId, curDate.withDayOfMonth(1).minusMonths(1),
-
 
1622
						curDate.with(LocalTime.MAX).minusMonths(1).withDayOfMonth(lengthOfMonth), Optional.of(false))
-
 
1623
				.get(fofoId);
-
 
1624
		Long accesorieslmsqty = fofoOrderRepository
-
 
1625
				.selectSumSaleQuantityGroupByFofoIdsForMobileOrAccessories(fofoId,
-
 
1626
						curDate.withDayOfMonth(1).minusMonths(1),
-
 
1627
						curDate.with(LocalTime.MAX).minusMonths(1).withDayOfMonth(lengthOfMonth), Optional.of(false))
-
 
1628
				.get(fofoId);
-
 
1629
 
-
 
1630
		model.addAttribute("brandLMSAmount", brandLMSAmount);
-
 
1631
		model.addAttribute("brandLmsQty", brandLmsQty);
-
 
1632
		model.addAttribute("accesorieslmssale", accesorieslmssale);
-
 
1633
		model.addAttribute("accesorieslmsqty", accesorieslmsqty);
-
 
1634
		model.addAttribute("customRetailer", customRetailer);
-
 
1635
		return "partner-brand-lms-sale";
-
 
1636
	}
-
 
1637
 
1610
	@RequestMapping(value = "/getPatnerInStock", method = RequestMethod.GET)
1638
	@RequestMapping(value = "/getPatnerInStock", method = RequestMethod.GET)
1611
	public String getPatnerInStock(HttpServletRequest request,
1639
	public String getPatnerInStock(HttpServletRequest request,
1612
			@RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId, Model model) throws Exception {
1640
			@RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId, Model model) throws Exception {
1613
 
1641
 
1614
		CustomRetailer customRetailer = retailerService.getFofoRetailer(fofoId);
1642
		CustomRetailer customRetailer = retailerService.getFofoRetailer(fofoId);
1615
 
1643
 
1616
		List<InStockBrandModel> mobileStock = currentInventorySnapshotRepository
1644
		List<InStockBrandModel> mobileStocks = currentInventorySnapshotRepository
1617
				.selectSumInStockMobileGroupByBrand(fofoId);
1645
				.selectSumInStockMobileGroupByBrand(fofoId);
1618
 
-
 
1619
		List<InStockBrandModel> assStock = currentInventorySnapshotRepository
1646
		List<InStockBrandModel> accesStock = currentInventorySnapshotRepository
1620
				.selectSumInStockAccessoriesGroupByBrand(fofoId);
1647
				.selectSumInStockAccessoriesGroupByBrand(fofoId);
1621
 
1648
 
-
 
1649
		List<InStockBrandItemModel> stockItemlist = currentInventorySnapshotRepository
-
 
1650
				.selectInStockItemsByBrand(fofoId);
-
 
1651
 
-
 
1652
		Map<String, List<InStockBrandItemModel>> stockItemMap = stockItemlist.stream()
-
 
1653
				.collect(Collectors.groupingBy(InStockBrandItemModel::getBrand));
-
 
1654
 
-
 
1655
		model.addAttribute("stockItemMap", stockItemMap);
1622
		model.addAttribute("mobileStock", mobileStock);
1656
		model.addAttribute("mobileStock", mobileStocks);
1623
		model.addAttribute("assStock", assStock);
1657
		model.addAttribute("accesStock", accesStock);
1624
		model.addAttribute("customRetailer", customRetailer);
1658
		model.addAttribute("customRetailer", customRetailer);
1625
		return "partner-instock-item";
1659
		return "partner-instock-item";
1626
	}
1660
	}
1627
 
1661
 
-
 
1662
	@RequestMapping(value = "/getOpenTicketByFofoId", method = RequestMethod.GET)
-
 
1663
	public String getOpenTicketByFofoId(HttpServletRequest request,
-
 
1664
			@RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId, Model model) throws Exception {
-
 
1665
		Map<Integer, AuthUser> ticketIdAuthUser = new HashMap<>();
-
 
1666
		CustomRetailer customRetailer = retailerService.getFofoRetailer(fofoId);
-
 
1667
		List<Integer> ticketIds = ticketRepository.selectAllOpenTicketByRetailer(fofoId).stream().map(x -> x.getId())
-
 
1668
				.collect(Collectors.toList());
-
 
1669
		List<TicketAssigned> ticketAssigns = ticketAssignedRepository.selectByTicketIds(ticketIds);
-
 
1670
 
-
 
1671
		for (TicketAssigned ticketAssign : ticketAssigns) {
-
 
1672
			AuthUser authUser = authRepository.selectById(ticketAssign.getAssineeId());
-
 
1673
			ticketIdAuthUser.put(ticketAssign.getTicketId(), authUser);
-
 
1674
		}
-
 
1675
		model.addAttribute("ticketIdAuthUser", ticketIdAuthUser);
-
 
1676
		model.addAttribute("ticketAssigns", ticketAssigns);
-
 
1677
		model.addAttribute("customRetailer", customRetailer);
-
 
1678
		return "open-ticket";
-
 
1679
	}
-
 
1680
 
1628
}
1681
}