Untitled
unknown
java
2 years ago
4.5 kB
9
Indexable
@Scheduled(cron = "${shop.earn.approved.orders.report.scheduler}")
public void shopAndEarnApprovedOrderMailSend() {
LOGGER.info("[ApprovedOrderReportMailProcess]ShopAndEarnApprovedOrderMailSend] Scheduler started");
try {
String[] header = {"Retailer Id", "Retailer Mobile Number", "Order id", "Total Commission", "TDS", "GST", "Final amount", "Created at"};
HashMap<Integer, String[]> approvedOrderRecords = new HashMap<>();
final String paynearbyMallOrderReports = "paynearby_mall_approved_orders_report";
final String excel = KeyConstants.EXCEL_EXTENTION;
LocalDateTime now = LocalDateTime.now();
LocalDateTime fifteenDaysAgo = now.minusDays(15);
Long currentDateTime = commonUtils.generateLongTimeStamp(now);
List<AffiliateOrdersReport> approvedOrders = affiliaOrdersReportRepository.findByStatusApproved(now, fifteenDaysAgo);
ConfigParam configParamShopAndEarnReportMailReceivers = configParamRepository.findByNameIgnoreCase(paynearbyMallOrderReports).orElse(null);
if (configParamShopAndEarnReportMailReceivers != null && !StringUtils.isEmpty(configParamShopAndEarnReportMailReceivers.getValue())) {
if (approvedOrders.isEmpty()) {
LOGGER.info("[ApprovedOrderReportMailProcess]ShopAndEarnApprovedOrderMailSend] Scheduler Today no entry found");
} else {
LOGGER.info("[ApprovedOrderReportMailProcess]ShopAndEarnApprovedOrderMailSend] Scheduler previous day entry found ");
int index = 1;
for (AffiliateOrdersReport ordersReport : approvedOrders) {
String[] approveRecord = new String[8];
double commission = ordersReport.getAgentCashback();
double tds = commission * 0.05;
double gst = commission * 0.18;
double finalAmount = commission - (tds + gst);
DecimalFormat df = new DecimalFormat("#.##");
approveRecord[0] = ordersReport.getAgentId().toString();
approveRecord[1] = ordersReport.getPartnerName();
approveRecord[2] = ordersReport.getOrderId();
approveRecord[3] = df.format(commission);
approveRecord[4] = df.format(tds);
approveRecord[5] = df.format(gst);
approveRecord[6] = df.format(finalAmount);
approveRecord[7] = commonUtils.getYYYYMMDDHHMMSS(ordersReport.getCreatedAt());
approvedOrderRecords.put(index, approveRecord);
index++;
}
String fileName = paynearbyMallOrderReports + currentDateTime + excel;
FileReaderAndWriter.excelFileCreate(filePath, fileName, localFileSheetName);
FileReaderAndWriter.writeExcel(filePath, fileName, localFileSheetName, approvedOrderRecords);
LOGGER.info("[ApprovedOrderReportMailProcess]ShopAndEarnApprovedOrderMailSend] Scheduler file created successfully");
String attachmentPath = filePath + fileName;
String mailSubject = emailSubject + " " + currentDateTime;
String mailBody = emailBody + " Shop_and_earn_approved_orders_report" + currentDateTime + KeyConstants.EXCEL_EXTENTION;
emailSender.sendMailWithAttachment(senderEmailId, configParamShopAndEarnReportMailReceivers.getValue(), mailSubject, mailBody, attachmentPath);
Files.deleteIfExists(Paths.get(filePath + fileName));
LOGGER.info("[ApprovedOrderReportMailProcess]ShopAndEarnApprovedOrderMailSend] Scheduler Deleting file");
}
} else {
LOGGER.info("[ApprovedOrderReportMailProcess]ShopAndEarnApprovedOrderMailSend] Scheduler config param data missing");
}
LOGGER.info("[ApprovedOrderReportMailProcess]ShopAndEarnApprovedOrderMailSend] Scheduler end successfully");
} catch (IOException e) {
LOGGER.error(String.format("[ApprovedOrderReportMailProcess]ShopAndEarnApprovedOrderMailSend] IOException while running Scheduler %s", e.getMessage()));
} catch (Exception e) {
LOGGER.error(String.format("[ApprovedOrderReportMailProcess]ShopAndEarnApprovedOrderMailSend] Exception while running Scheduler %s", e.getMessage()));
} finally {
LOGGER.info("[ApprovedOrderReportMailProcess]ShopAndEarnApprovedOrderMailSend] Scheduler Completed");
}
}
Editor is loading...
Leave a Comment