| Line 2... |
Line 2... |
| 2 |
|
2 |
|
| 3 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
3 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
| 4 |
import com.spice.profitmandi.common.model.ProfitMandiConstants;
|
4 |
import com.spice.profitmandi.common.model.ProfitMandiConstants;
|
| 5 |
import com.spice.profitmandi.dao.entity.auth.AuthUser;
|
5 |
import com.spice.profitmandi.dao.entity.auth.AuthUser;
|
| 6 |
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
|
6 |
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
|
| - |
|
7 |
import com.spice.profitmandi.dao.model.WarehouseItemAgeingModel;
|
| 7 |
import com.spice.profitmandi.dao.model.purchaseSaleRatio.CatalogAgedModel;
|
8 |
import com.spice.profitmandi.dao.model.purchaseSaleRatio.CatalogAgedModel;
|
| 8 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
9 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
| 9 |
import com.spice.profitmandi.dao.repository.cs.CsService;
|
10 |
import com.spice.profitmandi.dao.repository.cs.CsService;
|
| 10 |
import com.spice.profitmandi.dao.repository.warehouse.WarehouseSupplierInvoiceRepository;
|
11 |
import com.spice.profitmandi.dao.repository.warehouse.WarehouseSupplierInvoiceRepository;
|
| 11 |
import com.spice.profitmandi.service.AuthService;
|
12 |
import com.spice.profitmandi.service.AuthService;
|
| Line 20... |
Line 21... |
| 20 |
import javax.mail.MessagingException;
|
21 |
import javax.mail.MessagingException;
|
| 21 |
import javax.mail.internet.InternetAddress;
|
22 |
import javax.mail.internet.InternetAddress;
|
| 22 |
import javax.mail.internet.MimeMessage;
|
23 |
import javax.mail.internet.MimeMessage;
|
| 23 |
import java.io.UnsupportedEncodingException;
|
24 |
import java.io.UnsupportedEncodingException;
|
| 24 |
import java.time.LocalDateTime;
|
25 |
import java.time.LocalDateTime;
|
| - |
|
26 |
import java.util.ArrayList;
|
| - |
|
27 |
import java.util.Arrays;
|
| - |
|
28 |
import java.util.Comparator;
|
| 25 |
import java.util.*;
|
29 |
import java.util.List;
|
| 26 |
import java.util.stream.Collectors;
|
30 |
import java.util.stream.Collectors;
|
| 27 |
|
31 |
|
| 28 |
@Service
|
32 |
@Service
|
| 29 |
@Transactional(rollbackFor = Throwable.class)
|
33 |
@Transactional(rollbackFor = Throwable.class)
|
| 30 |
public class PurSaleServiceImpl implements PurSaleService {
|
34 |
public class PurSaleServiceImpl implements PurSaleService {
|
| Line 88... |
Line 92... |
| 88 |
sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getUnsold() + "</td>");
|
92 |
sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getUnsold() + "</td>");
|
| 89 |
sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getAge() + "</td>");
|
93 |
sb.append("<td style='border:1px solid black;padding: 5px'>" + catalogAgedModel.getAge() + "</td>");
|
| 90 |
sb.append("</tr>");
|
94 |
sb.append("</tr>");
|
| 91 |
|
95 |
|
| 92 |
}
|
96 |
}
|
| - |
|
97 |
sb.append("</tbody>");
|
| - |
|
98 |
sb.append("</table>");
|
| - |
|
99 |
|
| - |
|
100 |
|
| - |
|
101 |
List<WarehouseItemAgeingModel> warehouseAgeQtyModel = getAgeingModelsGtDays(startDate, endDate, 4);
|
| - |
|
102 |
sb.append("<br /><br /><b>Warehouse Stock</b>");
|
| - |
|
103 |
sb.append("<table style='border:1px solid black'><thead>")
|
| - |
|
104 |
.append("<th>No.</th>")
|
| - |
|
105 |
.append("<th>Vendor</th>")
|
| - |
|
106 |
.append("<th>Category</th>")
|
| - |
|
107 |
.append("<th>Brand</th>")
|
| - |
|
108 |
.append("<th>Model</th>")
|
| - |
|
109 |
.append("<th>Color</th>")
|
| - |
|
110 |
.append("<th>Age</th>")
|
| - |
|
111 |
.append("<th>Warehouse</th>")
|
| - |
|
112 |
.append("<th>Grn On</th>")
|
| - |
|
113 |
.append("<th>In Stock</th>")
|
| - |
|
114 |
.append("</thead>")
|
| - |
|
115 |
.append("<tbody>");
|
| - |
|
116 |
i = 0;
|
| - |
|
117 |
for (WarehouseItemAgeingModel warehouseItemAgeingModel : warehouseAgeQtyModel) {
|
| - |
|
118 |
|
| - |
|
119 |
sb.append("<tr>")
|
| - |
|
120 |
.append("<td style='border:1px solid black;padding:5px'>").append(++i).append("</td>")
|
| - |
|
121 |
.append("<td style='border:1px solid black;padding:5px'>").append(warehouseItemAgeingModel.getSupplierName()).append("</td>")
|
| - |
|
122 |
.append("<td style='border:1px solid black;padding:5px'>").append(warehouseItemAgeingModel.getStatus()).append("</td>")
|
| - |
|
123 |
.append("<td style='border:1px solid black;padding:5px'>").append(warehouseItemAgeingModel.getBrand()).append("</td>")
|
| - |
|
124 |
.append("<td style='border:1px solid black;padding:5px'>").append(warehouseItemAgeingModel.getBrand().equals("Samsung") ? warehouseItemAgeingModel.getModelNumber() : warehouseItemAgeingModel.getModelName()).append("</td>")
|
| - |
|
125 |
.append("<td style='border:1px solid black;padding:5px'>").append(warehouseItemAgeingModel.getColor()).append("</td>")
|
| - |
|
126 |
.append("<td style='border:1px solid black;padding:5px'>").append(warehouseItemAgeingModel.getAge()).append("</td>")
|
| - |
|
127 |
.append("<td style='border:1px solid black;padding:5px'>").append(warehouseItemAgeingModel.getWarehouseName()).append("</td>")
|
| - |
|
128 |
.append("<td style='border:1px solid black;padding:5px'>").append(warehouseItemAgeingModel.getCreated()).append("</td>")
|
| - |
|
129 |
.append("<td style='border:1px solid black;padding:5px'>").append(warehouseItemAgeingModel.getCurrentQuantity()).append("</td>")
|
| - |
|
130 |
.append("</tr>");
|
| - |
|
131 |
}
|
| - |
|
132 |
|
| - |
|
133 |
sb.append("</tbody></table></body></html>");
|
| 93 |
String subject = "Aging Stock Report: 4 Days or Older";
|
134 |
String subject = "Aging Stock Report: 4 Days or Older";
|
| 94 |
String messageText = sb.toString();
|
135 |
String messageText = sb.toString();
|
| 95 |
MimeMessage message = mailSender.createMimeMessage();
|
136 |
MimeMessage message = mailSender.createMimeMessage();
|
| 96 |
MimeMessageHelper helper = new MimeMessageHelper(message, true);
|
137 |
MimeMessageHelper helper = new MimeMessageHelper(message, true);
|
| 97 |
|
138 |
|
| 98 |
List<AuthUser> accountsAuthUserList = csService.getAuthUserIds(ProfitMandiConstants.TICKET_CATEGORY_ACCOUNTS, Arrays.asList(EscalationType.L1, EscalationType.L2));
|
139 |
List<AuthUser> accountsAuthUserList = csService.getAuthUserIds(ProfitMandiConstants.TICKET_CATEGORY_ACCOUNTS, Arrays.asList(EscalationType.L1, EscalationType.L2));
|
| 99 |
List<String> accountTeamMails = accountsAuthUserList.stream().map(x->x.getEmailId()).collect(Collectors.toList());
|
140 |
List<String> accountTeamMails = accountsAuthUserList.stream().map(x -> x.getEmailId()).collect(Collectors.toList());
|
| 100 |
accountTeamMails.add("neeraj.gupta@smartdukaan.com");
|
141 |
accountTeamMails.add("neeraj.gupta@smartdukaan.com");
|
| 101 |
|
142 |
|
| 102 |
List<AuthUser> salesAuthUserList = csService.getAuthUserIds(ProfitMandiConstants.TICKET_CATEGORY_SALES, Arrays.asList(EscalationType.L1, EscalationType.L2));
|
143 |
List<AuthUser> salesAuthUserList = csService.getAuthUserIds(ProfitMandiConstants.TICKET_CATEGORY_SALES, Arrays.asList(EscalationType.L1, EscalationType.L2));
|
| 103 |
List<String> salesTeamMails = salesAuthUserList.stream().map(x->x.getEmailId()).collect(Collectors.toList());
|
144 |
List<String> salesTeamMails = salesAuthUserList.stream().map(x -> x.getEmailId()).collect(Collectors.toList());
|
| 104 |
|
145 |
|
| 105 |
List<AuthUser> abmAuthUserList = csService.getAuthUserIds(ProfitMandiConstants.TICKET_CATEGORY_ABM, Arrays.asList(EscalationType.L1, EscalationType.L2));
|
146 |
List<AuthUser> abmAuthUserList = csService.getAuthUserIds(ProfitMandiConstants.TICKET_CATEGORY_ABM, Arrays.asList(EscalationType.L1, EscalationType.L2));
|
| 106 |
List<String> abmTeamMails = abmAuthUserList.stream().map(x->x.getEmailId()).collect(Collectors.toList());
|
147 |
List<String> abmTeamMails = abmAuthUserList.stream().map(x -> x.getEmailId()).collect(Collectors.toList());
|
| 107 |
|
148 |
|
| 108 |
List<AuthUser> categoryAuthUserList = csService.getAuthUserIds(ProfitMandiConstants.TICKET_CATEGORY_ABM, Arrays.asList(EscalationType.L1, EscalationType.L2,EscalationType.L3));
|
149 |
List<AuthUser> categoryAuthUserList = csService.getAuthUserIds(ProfitMandiConstants.TICKET_CATEGORY_ABM, Arrays.asList(EscalationType.L1, EscalationType.L2, EscalationType.L3));
|
| 109 |
List<String> categoryTeamMails = categoryAuthUserList.stream().map(x->x.getEmailId()).collect(Collectors.toList());
|
150 |
List<String> categoryTeamMails = categoryAuthUserList.stream().map(x -> x.getEmailId()).collect(Collectors.toList());
|
| 110 |
|
151 |
|
| 111 |
List<String> allEmails = new ArrayList<>(Arrays.asList(
|
152 |
List<String> allEmails = new ArrayList<>(Arrays.asList(
|
| 112 |
"sm@smartdukaan.com",
|
153 |
//"sm@smartdukaan.com",
|
| 113 |
"tarun.verma@smartdukaan.com"
|
154 |
//"tarun.verma@smartdukaan.com"
|
| - |
|
155 |
"amit.gupta@smartdukaan.com"
|
| 114 |
));
|
156 |
));
|
| 115 |
|
157 |
|
| 116 |
// niranjan kala(authId -54) Team Emails,
|
158 |
// niranjan kala(authId -54) Team Emails,
|
| 117 |
List<Integer> allReportees = authService.getAllReportees(54);
|
159 |
List<Integer> allReportees = authService.getAllReportees(54);
|
| 118 |
List<AuthUser> authUsers = authRepository.selectAllAuthUserByIds(allReportees);
|
160 |
List<AuthUser> authUsers = authRepository.selectAllAuthUserByIds(allReportees);
|
| 119 |
List<String> categotyTeamEmails = authUsers.stream().map(x -> x.getEmailId()).collect(Collectors.toList());
|
161 |
List<String> categotyTeamEmails = authUsers.stream().map(x -> x.getEmailId()).collect(Collectors.toList());
|
| 120 |
|
162 |
|
| 121 |
allEmails.addAll(categotyTeamEmails);
|
163 |
//allEmails.addAll(categotyTeamEmails);
|
| 122 |
String[] emailTo = allEmails.toArray(new String[allEmails.size()]);
|
164 |
String[] emailTo = allEmails.toArray(new String[allEmails.size()]);
|
| 123 |
helper.setSubject(subject);
|
165 |
helper.setSubject(subject);
|
| 124 |
helper.setText(messageText, true);
|
166 |
helper.setText(messageText, true);
|
| 125 |
helper.setTo(emailTo);
|
167 |
helper.setTo(emailTo);
|
| 126 |
|
168 |
|
| Line 145... |
Line 187... |
| 145 |
warehouseSupplierInvoiceRepository.selectCatalogAge(startDate, endDate, null, 0, null)
|
187 |
warehouseSupplierInvoiceRepository.selectCatalogAge(startDate, endDate, null, 0, null)
|
| 146 |
.stream().filter(x -> x.getAge() >= 4 && x.getUnsold() > 0).collect(Collectors.toList());
|
188 |
.stream().filter(x -> x.getAge() >= 4 && x.getUnsold() > 0).collect(Collectors.toList());
|
| 147 |
LOGGER.info("fiterCatalogAgedModels - " + fiterCatalogAgedModels);
|
189 |
LOGGER.info("fiterCatalogAgedModels - " + fiterCatalogAgedModels);
|
| 148 |
return fiterCatalogAgedModels;
|
190 |
return fiterCatalogAgedModels;
|
| 149 |
}
|
191 |
}
|
| - |
|
192 |
|
| - |
|
193 |
|
| - |
|
194 |
private List<WarehouseItemAgeingModel> getAgeingModelsGtDays(LocalDateTime startDate, LocalDateTime endDate, int days) {
|
| - |
|
195 |
List<WarehouseItemAgeingModel> fiterCatalogAgedModels =
|
| - |
|
196 |
warehouseSupplierInvoiceRepository.selectWarehouseItemAgeing(startDate, endDate, null, 0, null)
|
| - |
|
197 |
.stream().filter(x -> x.getAge() >= days).sorted(Comparator.comparing(WarehouseItemAgeingModel::getAge).reversed()).collect(Collectors.toList());
|
| 150 |
// 192.168.0.16:8080
|
198 |
return fiterCatalogAgedModels;
|
| - |
|
199 |
}
|
| 151 |
}
|
200 |
}
|