Subversion Repositories SmartDukaan

Rev

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

Rev 28093 Rev 28166
Line 11... Line 11...
11
import java.util.List;
11
import java.util.List;
12
import java.util.Map;
12
import java.util.Map;
13
import java.util.Optional;
13
import java.util.Optional;
14
import java.util.Random;
14
import java.util.Random;
15
import java.util.Set;
15
import java.util.Set;
-
 
16
import java.util.AbstractMap.SimpleEntry;
16
import java.util.function.Function;
17
import java.util.function.Function;
17
import java.util.stream.Collectors;
18
import java.util.stream.Collectors;
18
 
19
 
-
 
20
import javax.persistence.criteria.CriteriaBuilder;
-
 
21
import javax.persistence.criteria.CriteriaQuery;
-
 
22
import javax.persistence.criteria.Predicate;
-
 
23
import javax.persistence.criteria.Root;
-
 
24
 
19
import org.apache.logging.log4j.LogManager;
25
import org.apache.logging.log4j.LogManager;
20
import org.apache.logging.log4j.Logger;
26
import org.apache.logging.log4j.Logger;
-
 
27
import org.hibernate.Session;
-
 
28
import org.hibernate.SessionFactory;
21
import org.json.JSONObject;
29
import org.json.JSONObject;
22
import org.springframework.beans.factory.annotation.Autowired;
30
import org.springframework.beans.factory.annotation.Autowired;
23
import org.springframework.beans.factory.annotation.Qualifier;
31
import org.springframework.beans.factory.annotation.Qualifier;
24
import org.springframework.cache.annotation.Cacheable;
32
import org.springframework.cache.annotation.Cacheable;
25
import org.springframework.stereotype.Component;
33
import org.springframework.stereotype.Component;
26
 
34
 
-
 
35
import com.mongodb.MongoClient;
27
import com.spice.profitmandi.common.enumuration.ItemType;
36
import com.spice.profitmandi.common.enumuration.ItemType;
28
import com.spice.profitmandi.common.enumuration.SearchType;
37
import com.spice.profitmandi.common.enumuration.SearchType;
29
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
38
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
30
import com.spice.profitmandi.common.model.BadReturnRequest;
39
import com.spice.profitmandi.common.model.BadReturnRequest;
31
import com.spice.profitmandi.common.model.CartFofo;
40
import com.spice.profitmandi.common.model.CartFofo;
Line 85... Line 94...
85
import com.spice.profitmandi.dao.repository.catalog.StateGstRateRepository;
94
import com.spice.profitmandi.dao.repository.catalog.StateGstRateRepository;
86
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
95
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
87
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
96
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
88
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
97
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
89
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
98
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
-
 
99
import com.spice.profitmandi.dao.repository.dtr.Mongo;
90
import com.spice.profitmandi.dao.repository.dtr.PaymentOptionTransactionRepository;
100
import com.spice.profitmandi.dao.repository.dtr.PaymentOptionTransactionRepository;
91
import com.spice.profitmandi.dao.repository.dtr.PolicyNumberGenerationSequenceRepository;
101
import com.spice.profitmandi.dao.repository.dtr.PolicyNumberGenerationSequenceRepository;
92
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
102
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
93
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
103
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
94
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
104
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
Line 116... Line 126...
116
import com.spice.profitmandi.dao.repository.warehouse.WarehouseInventoryItemRepository;
126
import com.spice.profitmandi.dao.repository.warehouse.WarehouseInventoryItemRepository;
117
import com.spice.profitmandi.service.integrations.zest.InsuranceService;
127
import com.spice.profitmandi.service.integrations.zest.InsuranceService;
118
import com.spice.profitmandi.service.inventory.InventoryService;
128
import com.spice.profitmandi.service.inventory.InventoryService;
119
import com.spice.profitmandi.service.inventory.PurchaseReturnService;
129
import com.spice.profitmandi.service.inventory.PurchaseReturnService;
120
import com.spice.profitmandi.service.inventory.SaholicInventoryService;
130
import com.spice.profitmandi.service.inventory.SaholicInventoryService;
-
 
131
import com.spice.profitmandi.service.offers.ItemCriteria;
-
 
132
import com.spice.profitmandi.service.offers.PartnerCriteria;
121
import com.spice.profitmandi.service.pricing.PricingService;
133
import com.spice.profitmandi.service.pricing.PricingService;
122
import com.spice.profitmandi.service.scheme.SchemeService;
134
import com.spice.profitmandi.service.scheme.SchemeService;
123
import com.spice.profitmandi.service.user.RetailerService;
135
import com.spice.profitmandi.service.user.RetailerService;
124
import com.spice.profitmandi.service.wallet.WalletService;
136
import com.spice.profitmandi.service.wallet.WalletService;
125
 
137
 
Line 242... Line 254...
242
 
254
 
243
	@Autowired
255
	@Autowired
244
	private SchemeService schemeService;
256
	private SchemeService schemeService;
245
 
257
 
246
	private static final List<Integer> orderIdsConsumed = new ArrayList<>();
258
	private static final List<Integer> orderIdsConsumed = new ArrayList<>();
247
	
259
 
248
	@Autowired
260
	@Autowired
249
	@Qualifier("fofoInventoryService")
261
	@Qualifier("fofoInventoryService")
250
	private InventoryService inventoryService;
262
	private InventoryService inventoryService;
251
 
263
 
252
	@Autowired
264
	@Autowired
Line 256... Line 268...
256
	private OrderRepository orderRepository;
268
	private OrderRepository orderRepository;
257
 
269
 
258
	@Autowired
270
	@Autowired
259
	private HygieneDataRepository hygieneDataRepository;
271
	private HygieneDataRepository hygieneDataRepository;
260
 
272
 
-
 
273
	@Autowired
-
 
274
	private SessionFactory sessionFactory;
-
 
275
 
-
 
276
	@Autowired
-
 
277
	private Mongo mongoClient;
-
 
278
 
261
	@Override
279
	@Override
262
	public int createOrder(CreateOrderRequest createOrderRequest, int fofoId, boolean accessoriesDeals)
280
	public int createOrder(CreateOrderRequest createOrderRequest, int fofoId, boolean accessoriesDeals)
263
			throws ProfitMandiBusinessException {
281
			throws ProfitMandiBusinessException {
264
		LOGGER.info("fofoId -- {} Order Request -- {}", fofoId, createOrderRequest);
282
		LOGGER.info("fofoId -- {} Order Request -- {}", fofoId, createOrderRequest);
265
		CustomCustomer customCustomer = createOrderRequest.getCustomer();
283
		CustomCustomer customCustomer = createOrderRequest.getCustomer();
Line 633... Line 651...
633
					int itemId = warehouseInventoryItem.getItemId();
651
					int itemId = warehouseInventoryItem.getItemId();
634
					LocalDateTime grnDate = warehouseInventoryItem.getCreated();
652
					LocalDateTime grnDate = warehouseInventoryItem.getCreated();
635
					Random random = new Random();
653
					Random random = new Random();
636
					int randomDays = random.ints(2, 15).findFirst().getAsInt();
654
					int randomDays = random.ints(2, 15).findFirst().getAsInt();
637
					LocalDateTime saleDate = grnDate.plusDays(randomDays);
655
					LocalDateTime saleDate = grnDate.plusDays(randomDays);
638
					if(saleDate.isAfter(LocalDate.now().atStartOfDay())) {
656
					if (saleDate.isAfter(LocalDate.now().atStartOfDay())) {
639
						saleDate = LocalDateTime.now().minusDays(2);
657
						saleDate = LocalDateTime.now().minusDays(2);
640
					}
658
					}
641
					Random offsetRandom = new Random();
659
					Random offsetRandom = new Random();
642
					int offset = offsetRandom.ints(2, 100).findFirst().getAsInt();
660
					int offset = offsetRandom.ints(2, 100).findFirst().getAsInt();
643
					FofoOrder fofoOrder = fofoOrderRepository.selectFirstOrderAfterDate(saleDate, offset);
661
					FofoOrder fofoOrder = fofoOrderRepository.selectFirstOrderAfterDate(saleDate, offset);
644
					while (orderIdsConsumed.contains(fofoOrder.getId())) {
662
					while (orderIdsConsumed.contains(fofoOrder.getId())) {
645
						Random offsetRandom2 = new Random();
663
						Random offsetRandom2 = new Random();
646
						int offset2 = offsetRandom2.ints(2, 100).findFirst().getAsInt();
664
						int offset2 = offsetRandom2.ints(2, 100).findFirst().getAsInt();
647
						FofoOrder fofoOrder2 = fofoOrderRepository.selectFirstOrderAfterDate(saleDate, offset2);
665
						FofoOrder fofoOrder2 = fofoOrderRepository.selectFirstOrderAfterDate(saleDate, offset2);
648
						if(fofoOrder2 != null) {
666
						if (fofoOrder2 != null) {
649
							fofoOrder = fofoOrder2;
667
							fofoOrder = fofoOrder2;
650
						}
668
						}
651
					}
669
					}
652
					PdfModel pdfModel = this.getInvoicePdfModel(fofoOrder.getId());
670
					PdfModel pdfModel = this.getInvoicePdfModel(fofoOrder.getId());
653
					orderIdsConsumed.add(fofoOrder.getId());
671
					orderIdsConsumed.add(fofoOrder.getId());
Line 660... Line 678...
660
			throw new ProfitMandiBusinessException("Serial Number", serialNumber,
678
			throw new ProfitMandiBusinessException("Serial Number", serialNumber,
661
					"Serial Number does not exist in our warehouse");
679
					"Serial Number does not exist in our warehouse");
662
		}
680
		}
663
	}
681
	}
664
 
682
 
665
	void modifyDummyModel(FofoOrder fofoOrder, PdfModel pdfModel, int itemId, String serialNumber) throws ProfitMandiBusinessException {
683
	void modifyDummyModel(FofoOrder fofoOrder, PdfModel pdfModel, int itemId, String serialNumber)
-
 
684
			throws ProfitMandiBusinessException {
666
		
685
 
667
		int retailerAddressId = retailerRegisteredAddressRepository.selectAddressIdByRetailerId(fofoOrder.getFofoId());
686
		int retailerAddressId = retailerRegisteredAddressRepository.selectAddressIdByRetailerId(fofoOrder.getFofoId());
668
 
687
 
669
		Address retailerAddress = addressRepository.selectById(retailerAddressId);
688
		Address retailerAddress = addressRepository.selectById(retailerAddressId);
670
		Customer customer = customerRepository.selectById(fofoOrder.getCustomerId());
689
		Customer customer = customerRepository.selectById(fofoOrder.getCustomerId());
671
 
690
 
672
		CustomerAddress customerAddress = customer.getCustomerAddress().stream()
691
		CustomerAddress customerAddress = customer.getCustomerAddress().stream()
673
				.filter(x -> x.getId() == fofoOrder.getCustomerAddressId()).findFirst().get();
692
				.filter(x -> x.getId() == fofoOrder.getCustomerAddressId()).findFirst().get();
674
 
693
 
675
 
-
 
676
		Integer stateId = null;
694
		Integer stateId = null;
677
		if (customerAddress.getState().equals(retailerAddress.getState())) {
695
		if (customerAddress.getState().equals(retailerAddress.getState())) {
678
			try {
696
			try {
679
				stateId = Long.valueOf(Utils.getStateInfo(customerAddress.getState()).getId()).intValue();
697
				stateId = Long.valueOf(Utils.getStateInfo(customerAddress.getState()).getId()).intValue();
680
			} catch (Exception e) {
698
			} catch (Exception e) {
681
				LOGGER.error("Unable to get state rates");
699
				LOGGER.error("Unable to get state rates");
682
			}
700
			}
683
		}
701
		}
684
		CustomOrderItem cli = pdfModel.getOrderItems().stream().findFirst().get();
702
		CustomOrderItem cli = pdfModel.getOrderItems().stream().findFirst().get();
-
 
703
		List<FofoOrderItem> fofoOrderItems = Arrays
685
		List<FofoOrderItem> fofoOrderItems = Arrays.asList(this.getDummyFofoOrderItem(itemId, fofoOrder.getId(), serialNumber, stateId));
704
				.asList(this.getDummyFofoOrderItem(itemId, fofoOrder.getId(), serialNumber, stateId));
686
		pdfModel.setPaymentOptions(pdfModel.getPaymentOptions().stream().limit(1).collect(Collectors.toList()));
705
		pdfModel.setPaymentOptions(pdfModel.getPaymentOptions().stream().limit(1).collect(Collectors.toList()));
687
		CustomPaymentOption paymentOption = pdfModel.getPaymentOptions().get(0);
706
		CustomPaymentOption paymentOption = pdfModel.getPaymentOptions().get(0);
688
		paymentOption.setAmount(fofoOrderItems.get(0).getMop());
707
		paymentOption.setAmount(fofoOrderItems.get(0).getMop());
689
		Set<CustomOrderItem> customerFofoOrderItems = new HashSet<>();
708
		Set<CustomOrderItem> customerFofoOrderItems = new HashSet<>();
690
		for (FofoOrderItem fofoOrderItem : fofoOrderItems) {
709
		for (FofoOrderItem fofoOrderItem : fofoOrderItems) {
Line 721... Line 740...
721
			customFofoOrderItem.setHsnCode(fofoOrderItem.getHsnCode());
740
			customFofoOrderItem.setHsnCode(fofoOrderItem.getHsnCode());
722
			customerFofoOrderItems.add(customFofoOrderItem);
741
			customerFofoOrderItems.add(customFofoOrderItem);
723
		}
742
		}
724
		pdfModel.setTotalAmount(paymentOption.getAmount());
743
		pdfModel.setTotalAmount(paymentOption.getAmount());
725
		pdfModel.setOrderItems(customerFofoOrderItems);
744
		pdfModel.setOrderItems(customerFofoOrderItems);
726
		
745
 
727
	}
746
	}
728
 
747
 
729
	private PdfModel getInvoicePdfModel(FofoOrder fofoOrder) throws ProfitMandiBusinessException {
748
	private PdfModel getInvoicePdfModel(FofoOrder fofoOrder) throws ProfitMandiBusinessException {
730
 
749
 
731
		List<PaymentOptionTransaction> paymentOptionTransactions = paymentOptionTransactionRepository
750
		List<PaymentOptionTransaction> paymentOptionTransactions = paymentOptionTransactionRepository
Line 1179... Line 1198...
1179
		fofoOrderItem.setColor(item.getColor());
1198
		fofoOrderItem.setColor(item.getColor());
1180
		fofoOrderItemRepository.persist(fofoOrderItem);
1199
		fofoOrderItemRepository.persist(fofoOrderItem);
1181
		return fofoOrderItem;
1200
		return fofoOrderItem;
1182
	}
1201
	}
1183
 
1202
 
1184
	private FofoOrderItem getDummyFofoOrderItem(int itemId, int fofoOrderId,
1203
	private FofoOrderItem getDummyFofoOrderItem(int itemId, int fofoOrderId, String serialNumber, Integer stateId)
1185
			String serialNumber, Integer stateId) throws ProfitMandiBusinessException {
1204
			throws ProfitMandiBusinessException {
1186
		Item item = itemRepository.selectById(itemId);
1205
		Item item = itemRepository.selectById(itemId);
1187
		TagListing tl = tagListingRepository.selectByItemId(itemId);
1206
		TagListing tl = tagListingRepository.selectByItemId(itemId);
1188
		FofoOrderItem fofoOrderItem = new FofoOrderItem();
1207
		FofoOrderItem fofoOrderItem = new FofoOrderItem();
1189
		fofoOrderItem.setItemId(itemId);
1208
		fofoOrderItem.setItemId(itemId);
1190
		fofoOrderItem.setQuantity(1);
1209
		fofoOrderItem.setQuantity(1);
Line 1666... Line 1685...
1666
	// This will remove the order and maintain order record and reverse inventory
1685
	// This will remove the order and maintain order record and reverse inventory
1667
	// and scheme
1686
	// and scheme
1668
	@Override
1687
	@Override
1669
	public void cancelOrder(List<String> invoiceNumbers) throws Exception {
1688
	public void cancelOrder(List<String> invoiceNumbers) throws Exception {
1670
		for (String invoiceNumber : invoiceNumbers) {
1689
		for (String invoiceNumber : invoiceNumbers) {
1671
			//Cancel only when not cancelled
1690
			// Cancel only when not cancelled
1672
			FofoOrder fofoOrder = fofoOrderRepository.selectByInvoiceNumber(invoiceNumber);
1691
			FofoOrder fofoOrder = fofoOrderRepository.selectByInvoiceNumber(invoiceNumber);
1673
			if(fofoOrder.getCancelledTimestamp()==null) {
1692
			if (fofoOrder.getCancelledTimestamp() == null) {
1674
				fofoOrder.setCancelledTimestamp(LocalDateTime.now());
1693
				fofoOrder.setCancelledTimestamp(LocalDateTime.now());
1675
				fofoOrderRepository.persist(fofoOrder);
1694
				fofoOrderRepository.persist(fofoOrder);
1676
				List<PaymentOptionTransaction> paymentTransactions = paymentOptionTransactionRepository
1695
				List<PaymentOptionTransaction> paymentTransactions = paymentOptionTransactionRepository
1677
						.selectByReferenceIdAndType(fofoOrder.getId(), PaymentOptionReferenceType.ORDER);
1696
						.selectByReferenceIdAndType(fofoOrder.getId(), PaymentOptionReferenceType.ORDER);
1678
				for (PaymentOptionTransaction paymentOptionTransaction : paymentTransactions) {
1697
				for (PaymentOptionTransaction paymentOptionTransaction : paymentTransactions) {
Line 1680... Line 1699...
1680
				}
1699
				}
1681
				List<FofoOrderItem> fois = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
1700
				List<FofoOrderItem> fois = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
1682
				List<InventoryItem> inventoryItems = new ArrayList<>();
1701
				List<InventoryItem> inventoryItems = new ArrayList<>();
1683
				fois.stream().forEach(x -> {
1702
				fois.stream().forEach(x -> {
1684
					x.getFofoLineItems().stream().forEach(y -> {
1703
					x.getFofoLineItems().stream().forEach(y -> {
1685
						inventoryService.rollbackInventory(y.getInventoryItemId(), y.getQuantity(), fofoOrder.getFofoId());
1704
						inventoryService.rollbackInventory(y.getInventoryItemId(), y.getQuantity(),
-
 
1705
								fofoOrder.getFofoId());
1686
						inventoryItems.add(inventoryItemRepository.selectById(y.getInventoryItemId()));
1706
						inventoryItems.add(inventoryItemRepository.selectById(y.getInventoryItemId()));
1687
					});
1707
					});
1688
				});
1708
				});
1689
				String reversalReason = "Order Rolledback/Cancelled for Invoice Number " + invoiceNumber;
1709
				String reversalReason = "Order Rolledback/Cancelled for Invoice Number " + invoiceNumber;
1690
				schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.OUT);
1710
				schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.OUT);
1691
				schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.ACTIVATION);
1711
				schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.ACTIVATION);
1692
				//If insured that no cancellation happens on next month
1712
				// If insured that no cancellation happens on next month
1693
				schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.INVESTMENT);
1713
				schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason, SchemeType.INVESTMENT);
1694
			}
1714
			}
1695
		}
1715
		}
1696
	}
1716
	}
1697
 
1717
 
Line 1749... Line 1769...
1749
			return fofoOrder;
1769
			return fofoOrder;
1750
		} else {
1770
		} else {
1751
			throw new Exception(String.format("Could not find inventoryItemId - %s", inventoryItemId));
1771
			throw new Exception(String.format("Could not find inventoryItemId - %s", inventoryItemId));
1752
		}
1772
		}
1753
	}
1773
	}
-
 
1774
 
-
 
1775
	@Override
-
 
1776
	public Map<Integer, Long> carryBagCreditCount(int fofoId) throws ProfitMandiBusinessException {
-
 
1777
 
-
 
1778
		FofoStore fs = fofoStoreRepository.selectByRetailerId(fofoId);
-
 
1779
		LocalDateTime lastCredit = fs.getBagsLastCredited();
-
 
1780
		/*
-
 
1781
		 * long carryBagCount = 0; List<FofoOrder> fofoOrders =
-
 
1782
		 * fofoOrderRepository.selectByFofoIdBetweenCreatedTimeStamp(fofoId,
-
 
1783
		 * lastCredit.atStartOfDay(), LocalDate.now().plusDays(1).atStartOfDay()); for
-
 
1784
		 * (FofoOrder fo : fofoOrders) { carryBagCount +=
-
 
1785
		 * fofoOrderItemRepository.selectByOrderId(fo.getId()).stream() .filter(x ->
-
 
1786
		 * x.getSellingPrice() >= 12000).count();
-
 
1787
		 * 
-
 
1788
		 * }
-
 
1789
		 */
-
 
1790
 
-
 
1791
		Session session = sessionFactory.getCurrentSession();
-
 
1792
		CriteriaBuilder cb = session.getCriteriaBuilder();
-
 
1793
 
-
 
1794
		CriteriaQuery<SimpleEntry> query = cb.createQuery(SimpleEntry.class);
-
 
1795
		Root<FofoOrder> fofoOrder = query.from(FofoOrder.class);
-
 
1796
		Root<FofoOrderItem> fofoOrderItem = query.from(FofoOrderItem.class);
-
 
1797
 
-
 
1798
		Predicate p2 = cb.between(fofoOrder.get(ProfitMandiConstants.CREATE_TIMESTAMP), lastCredit,
-
 
1799
				LocalDate.now().atStartOfDay());
-
 
1800
		Predicate p3 = cb.isNull(fofoOrder.get("cancelledTimestamp"));
-
 
1801
		Predicate p4 = cb.equal(fofoOrder.get(ProfitMandiConstants.ID),
-
 
1802
				fofoOrderItem.get(ProfitMandiConstants.ORDER_ID));
-
 
1803
		Predicate p5 = cb.equal(fofoOrder.get(ProfitMandiConstants.FOFO_ID), fofoId);
-
 
1804
		ItemCriteria itemCriteria = new ItemCriteria();
-
 
1805
		itemCriteria.setBrands(mongoClient.getMongoBrands(fofoId, null, 3).stream().map(x -> (String) x.get("name"))
-
 
1806
				.collect(Collectors.toList()));
-
 
1807
		float startValue = 12000;
-
 
1808
		itemCriteria.setStartPrice(startValue);
-
 
1809
		itemCriteria.setEndPrice(0);
-
 
1810
		itemCriteria.setFeaturedPhone(false);
-
 
1811
		itemCriteria.setSmartPhone(true);
-
 
1812
		itemCriteria.setCatalogIds(new ArrayList<>());
-
 
1813
		itemCriteria.setExcludeCatalogIds(new ArrayList<>());
-
 
1814
		Predicate itemPredicate = itemRepository.getItemPredicate(itemCriteria, query, cb, fofoOrderItem, "dp");
-
 
1815
		Predicate finalPredicate = cb.and(itemPredicate, p2, p3, p4, p5);
-
 
1816
		query = query.multiselect(fofoOrder.get(ProfitMandiConstants.FOFO_ID), cb.count(fofoOrder))
-
 
1817
				.where(finalPredicate).groupBy(fofoOrder.get(ProfitMandiConstants.FOFO_ID));
-
 
1818
		List<SimpleEntry> simpleEntries = session.createQuery(query).getResultList();
-
 
1819
		Map<Integer, Long> returnMap = new HashMap<>();
-
 
1820
 
-
 
1821
		for (SimpleEntry simpleEntry : simpleEntries) {
-
 
1822
			returnMap.put((Integer) simpleEntry.getKey(), (Long) simpleEntry.getValue());
-
 
1823
		}
-
 
1824
		return returnMap;
-
 
1825
 
-
 
1826
	}
1754
}
1827
}
1755
1828