Subversion Repositories SmartDukaan

Rev

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

Rev 24410 Rev 24431
Line 264... Line 264...
264
	@RequestMapping(value = "/priceDropImeis/{priceDropId}", method = RequestMethod.GET)
264
	@RequestMapping(value = "/priceDropImeis/{priceDropId}", method = RequestMethod.GET)
265
	public String priceDropStatus(HttpServletRequest request, @PathVariable int priceDropId, Model model)
265
	public String priceDropStatus(HttpServletRequest request, @PathVariable int priceDropId, Model model)
266
			throws Exception {
266
			throws Exception {
267
 
267
 
268
		PriceDropImeisModel priceDropImeisModel = new PriceDropImeisModel();
268
		PriceDropImeisModel priceDropImeisModel = new PriceDropImeisModel();
-
 
269
		
-
 
270
		//This call is used to persit imeis to pricedrop imeis in case its not there.
-
 
271
		priceDropService.priceDropStatus(priceDropId);
-
 
272
		
269
		List<String> pendingImeis = new ArrayList<>();
273
		List<String> pendingImeis = new ArrayList<>();
270
		List<String> approvedImeis = new ArrayList<>();
274
		List<String> approvedImeis = new ArrayList<>();
271
		List<String> rejectedImeis = new ArrayList<>();
275
		List<String> rejectedImeis = new ArrayList<>();
272
		List<PriceDropIMEI> priceDropImeis = priceDropIMEIRepository.selectByPriceDropId(priceDropId);
276
		List<PriceDropIMEI> priceDropImeis = priceDropIMEIRepository.selectByPriceDropId(priceDropId);
273
		if (priceDropImeis.size() == 0) {
-
 
274
			PriceDrop priceDrop = priceDropRepository.selectById(priceDropId);
-
 
275
			List<ImeiDropSummaryModel> imeis = this.getAllSerialNumbersByAffectedDate(priceDrop.getAffectedOn(),
-
 
276
					priceDrop.getCatalogItemId());
-
 
277
			for (ImeiDropSummaryModel imei : imeis) {
-
 
278
				PriceDropIMEI priceDropIMEI = new PriceDropIMEI();
-
 
279
				priceDropIMEI.setImei(imei.getSerialNumber());
-
 
280
				priceDropIMEI.setPriceDropId(priceDropId);
-
 
281
				priceDropIMEI.setPartnerId(imei.getRetailerId());
-
 
282
				priceDropIMEIRepository.persist(priceDropIMEI);
-
 
283
			}
-
 
284
			priceDropImeis = priceDropIMEIRepository.selectByPriceDropId(priceDropId);
-
 
285
		}
-
 
286
 
-
 
287
		for (PriceDropIMEI priceDropIMEI : priceDropImeis) {
277
		for (PriceDropIMEI priceDropIMEI : priceDropImeis) {
288
			if (priceDropIMEI.getStatus().equals(PriceDropImeiStatus.PENDING)) {
278
			if (priceDropIMEI.getStatus().equals(PriceDropImeiStatus.PENDING)) {
289
				pendingImeis.add(priceDropIMEI.getImei());
279
				pendingImeis.add(priceDropIMEI.getImei());
290
			} else if (priceDropIMEI.getStatus().equals(PriceDropImeiStatus.APPROVED)) {
280
			} else if (priceDropIMEI.getStatus().equals(PriceDropImeiStatus.APPROVED)) {
291
				approvedImeis.add(priceDropIMEI.getImei());
281
				approvedImeis.add(priceDropIMEI.getImei());
Line 471... Line 461...
471
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
461
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
472
		return "response";
462
		return "response";
473
 
463
 
474
	}
464
	}
475
 
465
 
476
	private List<ImeiDropSummaryModel> getAllSerialNumbersByAffectedDate(LocalDateTime affectedOn,
-
 
477
			Integer catalogItemId) throws Exception {
-
 
478
		List<Item> items = itemRepository.selectAllByCatalogItemId(catalogItemId);
-
 
479
		List<String> itemIds = items.stream().map(x -> String.valueOf(x.getId())).collect(Collectors.toList());
-
 
480
 
-
 
481
		Map<String, String> params = new HashMap<>();
-
 
482
		params.put("MANUAL_criteria1_FROMDATE", FormattingUtils.formatReporitcoDate(affectedOn.minusDays(1)));
-
 
483
		params.put("MANUAL_itemId", StringUtils.join(itemIds, ","));
-
 
484
 
-
 
485
		Map<String, String> params1 = new HashMap<>();
-
 
486
		params1.put("MANUAL_criteriaDate_FROMDATE", FormattingUtils.formatReporitcoDate(affectedOn.minusDays(1)));
-
 
487
		params1.put("MANUAL_criteriaItemId", StringUtils.join(itemIds, ","));
-
 
488
 
-
 
489
		Map<String, String> params2 = new HashMap<>();
-
 
490
		params2.put("MANUAL_Criteria2_FROMDATE", FormattingUtils.formatReporitcoDate(affectedOn.minusDays(1)));
-
 
491
		params2.put("MANUAL_Criteria1", StringUtils.join(itemIds, ","));
-
 
492
 
-
 
493
		List<? extends ImeiDropSummaryModel> grnPendingList = getReports(GrnPendingDataModel.class,
-
 
494
				ReporticoProject.FOCO, "imeispendinggrn.xml", params);
-
 
495
		List<? extends ImeiDropSummaryModel> partnerImeiNotSoldList = getReports(PartnerImeiNotSold.class,
-
 
496
				ReporticoProject.FOCO, "PartnerIMEINotSold.xml", params1);
-
 
497
		List<? extends ImeiDropSummaryModel> itemStockOnDateList = getReports(ClosingStockOnDate.class,
-
 
498
				ReporticoProject.WAREHOUSENEW, "itemstockondate.xml", params2);
-
 
499
 
-
 
500
		List<ImeiDropSummaryModel> mergedImeis = new ArrayList<>();
-
 
501
		mergedImeis.addAll(grnPendingList);
-
 
502
		mergedImeis.addAll(partnerImeiNotSoldList);
-
 
503
		mergedImeis.addAll(itemStockOnDateList);
-
 
504
		return mergedImeis;
-
 
505
	}
-
 
506
 
-
 
507
	private ByteArrayOutputStream getByteArrayOutputStream(LocalDateTime affectedOn, Integer catalogItemId)
466
	private ByteArrayOutputStream getByteArrayOutputStream(LocalDateTime affectedOn, Integer catalogItemId)
508
			throws Exception {
467
			throws Exception {
509
		List<ImeiDropSummaryModel> imeiDropSummaryModelList = this.getAllSerialNumbersByAffectedDate(affectedOn,
468
		List<ImeiDropSummaryModel> imeiDropSummaryModelList = this.getAllSerialNumbersByAffectedDate(affectedOn,
510
				catalogItemId);
469
				catalogItemId);
511
		List<List<Object>> rows = new ArrayList<>();
470
		List<List<Object>> rows = new ArrayList<>();
Line 528... Line 487...
528
		row.add(imeiDropSummaryModel.getColor());
487
		row.add(imeiDropSummaryModel.getColor());
529
		row.add(FormattingUtils.formatReporitcoDate(imeiDropSummaryModel.getLastScanned()));
488
		row.add(FormattingUtils.formatReporitcoDate(imeiDropSummaryModel.getLastScanned()));
530
		return row;
489
		return row;
531
	}
490
	}
532
 
491
 
533
	private <T> List<T> getReports(Class<T> className, ReporticoProject project, String reportName,
-
 
534
			Map<String, String> params) throws Exception {
-
 
535
		HttpResponse reportResponse = reporticoService.getJsonFile(project, reportName, params);
-
 
536
		JavaType type = objectMapper.getTypeFactory().constructParametricType(ReporticoResponseModel.class, className);
-
 
537
		ObjectReader or = objectMapper.readerFor(type);
-
 
538
		ReporticoResponseModel<T> responseObj = or.readValue(reportResponse.getEntity().getContent());
-
 
539
		return responseObj.getData();
-
 
540
	}
492
 
541
 
493
 
542
	private boolean validatePriceDrop(PriceDropModel priceDropModel) throws ProfitMandiBusinessException {
494
	private boolean validatePriceDrop(PriceDropModel priceDropModel) throws ProfitMandiBusinessException {
543
		if (priceDropModel.getMop() > 0 && priceDropModel.getDp() > 0
495
		if (priceDropModel.getMop() > 0 && priceDropModel.getDp() > 0
544
				&& priceDropModel.getTp() > 0) {
496
				&& priceDropModel.getTp() > 0) {
545
			return true;
497
			return true;