Subversion Repositories SmartDukaan

Rev

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

Rev 35009 Rev 35050
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
}