| 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;
|