| Line 745... |
Line 745... |
| 745 |
|
745 |
|
| 746 |
double gotDrrPercent = (todayRequiredDrr / monthDay1Drr) * 100;
|
746 |
double gotDrrPercent = (todayRequiredDrr / monthDay1Drr) * 100;
|
| 747 |
|
747 |
|
| 748 |
int orderId = orderRepository.getLastOrderByFofoId(fofoId);
|
748 |
int orderId = orderRepository.getLastOrderByFofoId(fofoId);
|
| 749 |
|
749 |
|
| - |
|
750 |
// Determine alert level
|
| - |
|
751 |
String alertLevel = "-";
|
| - |
|
752 |
int lastPurchaseDays = 0;
|
| 750 |
if (orderId != 0) {
|
753 |
if (orderId != 0) {
|
| 751 |
Order order = orderRepository.selectById(orderId);
|
754 |
Order order = orderRepository.selectById(orderId);
|
| 752 |
|
755 |
|
| 753 |
// Calculate the number of days since the last purchase (billing)
|
756 |
// Calculate the number of days since the last purchase (billing)
|
| 754 |
int lastPurchaseDays = (int) Duration.between(order.getCreateTimestamp().plusDays(1), LocalDateTime.now()).toDays();
|
757 |
lastPurchaseDays = (int) Duration.between(order.getCreateTimestamp().plusDays(1), LocalDateTime.now()).toDays();
|
| 755 |
|
758 |
|
| 756 |
// Determine alert level
|
- |
|
| 757 |
String alertLevel = "";
|
- |
|
| 758 |
if (lastPurchaseDays >= 11) {
|
759 |
if (lastPurchaseDays >= 11) {
|
| 759 |
alertLevel = "Alert for Management";
|
760 |
alertLevel = "Alert for Management";
|
| 760 |
} else if (lastPurchaseDays >= 8) {
|
761 |
} else if (lastPurchaseDays >= 8) {
|
| 761 |
alertLevel = " Alert for RSM/SH";
|
762 |
alertLevel = " Alert for RSM/SH";
|
| 762 |
} else if (lastPurchaseDays >= 6) {
|
763 |
} else if (lastPurchaseDays >= 6) {
|
| Line 764... |
Line 765... |
| 764 |
} else if (lastPurchaseDays >= 3) {
|
765 |
} else if (lastPurchaseDays >= 3) {
|
| 765 |
alertLevel = "OK";
|
766 |
alertLevel = "OK";
|
| 766 |
} else {
|
767 |
} else {
|
| 767 |
alertLevel = "No Action Needed";
|
768 |
alertLevel = "No Action Needed";
|
| 768 |
}
|
769 |
}
|
| - |
|
770 |
}
|
| 769 |
|
771 |
|
| - |
|
772 |
//investment modal set all related value
|
| - |
|
773 |
FofoInvestmentModel fofoInvestmentModel = new FofoInvestmentModel();
|
| 770 |
|
774 |
|
| 771 |
// investment modal set all related value
|
- |
|
| 772 |
FofoInvestmentModel fofoInvestmentModel = new FofoInvestmentModel();
|
- |
|
| 773 |
|
- |
|
| 774 |
fofoInvestmentModel.setCounterPotential(fofoStore.getCounterPotential());
|
775 |
fofoInvestmentModel.setCounterPotential(fofoStore.getCounterPotential());
|
| 775 |
fofoInvestmentModel.setShortInvestment(shortInvestment);
|
776 |
fofoInvestmentModel.setShortInvestment(shortInvestment);
|
| 776 |
fofoInvestmentModel.setDefaultLoan(defaultLoanAmount);
|
777 |
fofoInvestmentModel.setDefaultLoan(defaultLoanAmount);
|
| 777 |
fofoInvestmentModel.setInvestmentLevel(investmentLevel);
|
778 |
fofoInvestmentModel.setInvestmentLevel(investmentLevel);
|
| 778 |
fofoInvestmentModel.setActiveLoan(activeLoan);
|
779 |
fofoInvestmentModel.setActiveLoan(activeLoan);
|
| 779 |
fofoInvestmentModel.setPoValue(poValue);
|
780 |
fofoInvestmentModel.setPoValue(poValue);
|
| 780 |
fofoInvestmentModel.setPoAndBilled(poAndBilledValue);
|
781 |
fofoInvestmentModel.setPoAndBilled(poAndBilledValue);
|
| 781 |
fofoInvestmentModel.setAgreedInvestment(agreedInvestment);
|
782 |
fofoInvestmentModel.setAgreedInvestment(agreedInvestment);
|
| 782 |
fofoInvestmentModel.setWallet(partnerDailyInvestmentMap.get(fofoId) != null ? partnerDailyInvestmentMap.get(fofoId).getWalletAmount() : 0);
|
783 |
fofoInvestmentModel.setWallet(partnerDailyInvestmentMap.get(fofoId) != null ? partnerDailyInvestmentMap.get(fofoId).getWalletAmount() : 0);
|
| 783 |
fofoInvestmentModel.setMonthBeginingDrr(monthDay1Drr);
|
784 |
fofoInvestmentModel.setMonthBeginingDrr(monthDay1Drr);
|
| 784 |
fofoInvestmentModel.setRequiredDrr(todayRequiredDrr);
|
785 |
fofoInvestmentModel.setRequiredDrr(todayRequiredDrr);
|
| 785 |
fofoInvestmentModel.setDrrPercent(gotDrrPercent);
|
786 |
fofoInvestmentModel.setDrrPercent(gotDrrPercent);
|
| 786 |
fofoInvestmentModel.setLastBillingDone(lastPurchaseDays);
|
787 |
fofoInvestmentModel.setLastBillingDone(lastPurchaseDays);
|
| 787 |
fofoInvestmentModel.setSlab(alertLevel);
|
788 |
fofoInvestmentModel.setSlab(alertLevel);
|
| 788 |
|
789 |
|
| 789 |
biInvestmentModelMap.put(fofoId, fofoInvestmentModel);
|
790 |
biInvestmentModelMap.put(fofoId, fofoInvestmentModel);
|
| 790 |
}
|
- |
|
| 791 |
String assessment = "";
|
791 |
String assessment = "";
|
| 792 |
if(defaultLoanAmount > 0 ){
|
792 |
if(defaultLoanAmount > 0 ){
|
| 793 |
assessment = "Loan Default";
|
793 |
assessment = "Loan Default";
|
| 794 |
}else if(investmentLevel <= 75 && defaultLoanAmount < 1){
|
794 |
}else if(investmentLevel <= 75 && defaultLoanAmount < 1){
|
| 795 |
assessment = "Low Invest";
|
795 |
assessment = "Low Invest";
|
| Line 996... |
Line 996... |
| 996 |
|
996 |
|
| 997 |
// Send to email
|
997 |
// Send to email
|
| 998 |
// ByteArrayOutputStream csvStream = FileUtil.getCSVByteStreamWithMultiHeaders(headerGroup, rows);
|
998 |
// ByteArrayOutputStream csvStream = FileUtil.getCSVByteStreamWithMultiHeaders(headerGroup, rows);
|
| 999 |
ByteArrayOutputStream csvStream = getExcelStreamWithMultiHeaders(headerGroup, rows);
|
999 |
ByteArrayOutputStream csvStream = getExcelStreamWithMultiHeaders(headerGroup, rows);
|
| 1000 |
String fileName = "BI-Retailer-Monthly-Report-" + FormattingUtils.formatDate(LocalDateTime.now()) + ".xlsx";
|
1000 |
String fileName = "BI-Retailer-Monthly-Report-" + FormattingUtils.formatDate(LocalDateTime.now()) + ".xlsx";
|
| 1001 |
String[] sendToArray = new String[]{"ranu.rajput@smartdukaan.com"};
|
1001 |
String[] sendToArray = new String[]{"ranu.rajput@smartdukaan.com","ashutosh.verma@smartdukaan.com"};
|
| 1002 |
|
1002 |
|
| 1003 |
Utils.sendMailWithAttachment(googleMailSender, sendToArray, new String[]{}, "BI Retailer Monthly Report", "Please find attached the BI retailer secondary/tertiary monthly report.", fileName, new ByteArrayResource(csvStream.toByteArray()));
|
1003 |
Utils.sendMailWithAttachment(googleMailSender, sendToArray, new String[]{}, "BI Retailer Monthly Report", "Please find attached the BI retailer secondary/tertiary monthly report.", fileName, new ByteArrayResource(csvStream.toByteArray()));
|
| 1004 |
|
1004 |
|
| 1005 |
|
1005 |
|
| 1006 |
}
|
1006 |
}
|