Subversion Repositories SmartDukaan

Rev

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

Rev 29598 Rev 29744
Line 39... Line 39...
39
import com.spice.profitmandi.common.model.OptionModel;
39
import com.spice.profitmandi.common.model.OptionModel;
40
import com.spice.profitmandi.common.model.PieLables;
40
import com.spice.profitmandi.common.model.PieLables;
41
import com.spice.profitmandi.common.model.ProfitMandiConstants;
41
import com.spice.profitmandi.common.model.ProfitMandiConstants;
42
import com.spice.profitmandi.common.util.FileUtil;
42
import com.spice.profitmandi.common.util.FileUtil;
43
import com.spice.profitmandi.dao.entity.auth.AuthUser;
43
import com.spice.profitmandi.dao.entity.auth.AuthUser;
-
 
44
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
44
import com.spice.profitmandi.dao.entity.user.Lead;
45
import com.spice.profitmandi.dao.entity.user.Lead;
45
import com.spice.profitmandi.dao.entity.user.LeadActivity;
46
import com.spice.profitmandi.dao.entity.user.LeadActivity;
46
import com.spice.profitmandi.dao.enumuration.dtr.LeadSource;
47
import com.spice.profitmandi.dao.enumuration.dtr.LeadSource;
47
import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;
48
import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;
48
import com.spice.profitmandi.dao.model.ChartLeadModel;
49
import com.spice.profitmandi.dao.model.ChartLeadModel;
Line 95... Line 96...
95
	List<LeadStatus> status = Arrays.asList(LeadStatus.notInterested, LeadStatus.finalized);
96
	List<LeadStatus> status = Arrays.asList(LeadStatus.notInterested, LeadStatus.finalized);
96
 
97
 
97
	@RequestMapping(value = "/getOpenLead", method = RequestMethod.GET)
98
	@RequestMapping(value = "/getOpenLead", method = RequestMethod.GET)
98
	public String getOpenLead(HttpServletRequest request,
99
	public String getOpenLead(HttpServletRequest request,
99
			@RequestParam(name = "leadStatus", required = false, defaultValue = "All") List<LeadStatus> leadStatus,
100
			@RequestParam(name = "leadStatus", required = false, defaultValue = "All") List<LeadStatus> leadStatus,
100
			@RequestParam(name = "color", required = false, defaultValue = "") List<String> color,
101
			@RequestParam(name = "color", required = false, defaultValue = "All") List<String> color,
101
			@RequestParam(name = "leadDate", required = false, defaultValue = "") LocalDate leadDate, Model model)
102
			@RequestParam(name = "leadDate", required = false, defaultValue = "") LocalDate leadDate, Model model)
102
			throws Exception {
103
			throws Exception {
103
 
104
 
104
		LocalDateTime localDateTime = null;
105
		LocalDateTime localDateTime = null;
105
 
-
 
106
		LOGGER.info("color" + color);
-
 
107
 
-
 
108
		LOGGER.info("leadDate" + leadDate);
-
 
109
 
-
 
110
		if (leadDate != null) {
106
		if (leadDate != null) {
111
			localDateTime = leadDate.atStartOfDay();
107
			localDateTime = leadDate.atStartOfDay();
112
 
-
 
113
		}
108
		}
114
 
-
 
115
		if (color == null) {
-
 
116
			color.add("");
-
 
117
		}
-
 
118
 
-
 
119
		LOGGER.info("localDateTime" + localDateTime);
109
		LOGGER.info("localDateTime" + localDateTime);
120
 
110
 
121
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
111
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
122
		String emailId = loginDetails.getEmailId();
112
		String emailId = loginDetails.getEmailId();
123
		AuthUser authUser = authRepository.selectByEmailOrMobile(emailId);
113
		AuthUser authUser = authRepository.selectByEmailOrMobile(emailId);
Line 130... Line 120...
130
			leadStatus.add(LeadStatus.pending);
120
			leadStatus.add(LeadStatus.pending);
131
			leadStatus.add(LeadStatus.notInterested);
121
			leadStatus.add(LeadStatus.notInterested);
132
			leadStatus.add(LeadStatus.finalized);
122
			leadStatus.add(LeadStatus.finalized);
133
		}
123
		}
134
 
124
 
-
 
125
		if (color.contains("All")) {
-
 
126
			color.add("yellow");
-
 
127
			color.add("green");
-
 
128
		}
-
 
129
 
135
		List<Lead> leads = null;
130
		List<Lead> leads = null;
136
 
131
 
137
		model.addAttribute("colors", color);
132
		model.addAttribute("colors", color);
138
 
133
 
139
		Map<Integer, LeadActivity> leadActivityMap = new HashMap<>();
134
		Map<Integer, List<LeadActivity>> leadActivityMap = new HashMap<>();
140
		List<Integer> authUserIds = null;
-
 
141
		if (!color.isEmpty()) {
-
 
142
			if (color.contains("All")) {
-
 
143
				color.add("yellow");
-
 
144
				color.add("green");
-
 
145
			}
-
 
146
 
-
 
147
			LOGGER.info("color111" + color);
-
 
148
 
-
 
149
			if (authPositon) {
-
 
150
				authUserIds = authService.getAllReportees(authUser.getId());
-
 
151
				authUserIds.add(authUser.getId());
-
 
152
				LOGGER.info("authIds" + authUserIds);
-
 
153
 
-
 
154
				if (leadStatus.contains(LeadStatus.All)) {
-
 
155
					if (localDateTime == null) {
-
 
156
 
135
 
157
						leads = leadRepository.selectAllByColorStatusAndUpdatedTimestampAndAuthIds(leadStatus,
-
 
158
								authUserIds, color, LocalDateTime.now().minusMonths(1));
-
 
159
 
-
 
160
						List<Lead> leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
-
 
161
 
-
 
162
						leads.addAll(leadFollowUp);
-
 
163
 
-
 
164
					}
-
 
165
 
-
 
166
					else {
-
 
167
 
-
 
168
						leads = leadRepository.selectAllByColorStatusAndUpdatedTimestampAndAuthIds(leadStatus,
-
 
169
								authUserIds, color, localDateTime);
136
		List<Integer> authUserIds = null;
170
 
-
 
171
						List<Lead> leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
-
 
172
 
-
 
173
						leads.addAll(leadFollowUp);
-
 
174
 
137
 
175
					}
-
 
176
				} else
138
		LOGGER.info("color111" + color);
177
 
139
 
178
				{
-
 
179
					if (localDateTime == null) {
140
		List<Lead> leadFollowUp = new ArrayList<>();
180
 
141
 
-
 
142
		if (authPositon) {
181
						leads = leadRepository.selectAllByColorStatusAndUpdatedTimestampAndAuthIds(leadStatus,
143
			authUserIds = authService.getAllReportees(authUser.getId());
182
								authUserIds, color, LocalDateTime.now().minusMonths(1));
144
			authUserIds.add(authUser.getId());
-
 
145
			LOGGER.info("authIds" + authUserIds);
183
 
146
 
184
					} else {
-
 
185
						leads = leadRepository.selectAllByColorStatusAndUpdatedTimestampAndAuthIds(leadStatus,
-
 
186
								authUserIds, color, localDateTime);
147
			if (localDateTime == null) {
187
 
148
 
-
 
149
				leads = leadRepository.selectAllByColorStatusAndUpdatedTimestampAndAuthIds(leadStatus, authUserIds,
-
 
150
						color, LocalDateTime.now().minusDays(15));
-
 
151
				leadFollowUp = leadRepository.selectByAssignAuthIdsAndStatus(authUserIds, LeadStatus.followUp);
188
					}
152
				leads.addAll(leadFollowUp);
189
 
153
 
190
				}
154
			} else {
-
 
155
				leads = leadRepository.selectAllByColorStatusAndUpdatedTimestampAndAuthIds(leadStatus, authUserIds,
-
 
156
						color, localDateTime);
-
 
157
				leadFollowUp = leadRepository.selectByAssignAuthIdsAndStatus(authUserIds, LeadStatus.followUp);
-
 
158
				leads.addAll(leadFollowUp);
191
 
159
 
192
			}
160
			}
193
 
161
 
194
			else {
162
		} else {
195
 
-
 
196
				if (leadStatus.contains(LeadStatus.All)) {
-
 
197
 
-
 
198
					if (localDateTime == null) {
-
 
199
 
-
 
200
						leads = leadRepository.selectAllByColorStatusAndUpdatedTimestamp(leadStatus, color,
-
 
201
								LocalDateTime.now().minusMonths(1));
-
 
202
 
-
 
203
						List<Lead> leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
-
 
204
						leads.addAll(leadFollowUp);
-
 
205
						LOGGER.info("leadlocalDateTime1" + leads);
-
 
206
 
-
 
207
					} else {
-
 
208
 
-
 
209
						leads = leadRepository.selectAllByColorStatusAndUpdatedTimestamp(leadStatus, color,
-
 
210
								localDateTime);
-
 
211
 
163
 
212
						LOGGER.info("leadlocalDateTime2" + leads);
164
			if (localDateTime == null) {
213
 
165
 
-
 
166
				leads = leadRepository.selectAllByColorStatusAndUpdatedTimestamp(leadStatus, color,
214
					}
167
						LocalDateTime.now().minusDays(15));
-
 
168
				leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
215
				}
169
				leads.addAll(leadFollowUp);
-
 
170
				LOGGER.info("leadlocalDateTime1" + leads);
216
 
171
 
217
				else {
172
			} else {
218
 
173
 
-
 
174
				leads = leadRepository.selectAllByColorStatusAndUpdatedTimestamp(leadStatus, color, localDateTime);
-
 
175
				leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
-
 
176
				leads.addAll(leadFollowUp);
219
					if (localDateTime == null) {
177
				LOGGER.info("leadlocalDateTime2" + leads);
220
 
178
 
221
						leads = leadRepository.selectAllByColorStatusAndUpdatedTimestamp(leadStatus, color,
-
 
222
								LocalDateTime.now().minusMonths(1));
-
 
223
 
-
 
224
						LOGGER.info("leadlocalDateTime3" + leads);
-
 
225
					} else {
-
 
226
 
-
 
227
						leads = leadRepository.selectAllByColorStatusAndUpdatedTimestamp(leadStatus, color,
-
 
228
								localDateTime);
-
 
229
						LOGGER.info("leadlocalDateTime4" + leads);
-
 
230
					}
-
 
231
				}
-
 
232
			}
179
			}
233
		}
-
 
234
 
-
 
235
		else {
-
 
236
 
-
 
237
			if (authPositon) {
-
 
238
				authUserIds = authService.getAllReportees(authUser.getId());
-
 
239
				authUserIds.add(authUser.getId());
-
 
240
				LOGGER.info("authIds" + authUserIds);
-
 
241
				if (leadStatus.contains(LeadStatus.All)) {
-
 
242
					if (localDateTime == null) {
-
 
243
 
-
 
244
						leads = leadRepository.selectAllByStatusAndUpdatedTimestampAndAuthId(leadStatus,
-
 
245
								LocalDateTime.now().minusMonths(1), authUserIds);
-
 
246
						List<Lead> leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
-
 
247
						leads.addAll(leadFollowUp);
-
 
248
						LOGGER.info("leadlocalDateTime1" + leads);
-
 
249
					}
-
 
250
 
-
 
251
					else {
-
 
252
 
-
 
253
						leads = leadRepository.selectAllByStatusAndUpdatedTimestampAndAuthId(leadStatus, localDateTime,
-
 
254
								authUserIds);
-
 
255
						List<Lead> leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
-
 
256
						leads.addAll(leadFollowUp);
-
 
257
						LOGGER.info("leadlocalDateTime1" + leads);
-
 
258
 
-
 
259
					}
-
 
260
				}
-
 
261
 
-
 
262
				else {
-
 
263
 
-
 
264
					if (localDateTime == null) {
-
 
265
						leads = leadRepository.selectAllByStatusAndUpdatedTimestampAndAuthId(leadStatus,
-
 
266
								LocalDateTime.now().minusMonths(1), authUserIds);
-
 
267
					}
-
 
268
 
-
 
269
					else {
-
 
270
						leads = leadRepository.selectAllByStatusAndUpdatedTimestampAndAuthId(leadStatus, localDateTime,
-
 
271
								authUserIds);
-
 
272
					}
-
 
273
				}
-
 
274
			}
-
 
275
 
-
 
276
			else {
-
 
277
 
-
 
278
				if (leadStatus.contains(LeadStatus.All)) {
-
 
279
 
-
 
280
					if (localDateTime == null) {
-
 
281
 
-
 
282
						leads = leadRepository.selectAllByStatusAndUpdatedTimestamp(leadStatus,
-
 
283
								LocalDateTime.now().minusMonths(1));
-
 
284
						List<Lead> leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
-
 
285
						leads.addAll(leadFollowUp);
-
 
286
						LOGGER.info("leadlocalDateTime1" + leads);
-
 
287
 
-
 
288
					}
-
 
289
 
-
 
290
					else {
-
 
291
 
-
 
292
						leads = leadRepository.selectAllByStatusAndUpdatedTimestamp(leadStatus, localDateTime);
-
 
293
						List<Lead> leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
-
 
294
						leads.addAll(leadFollowUp);
-
 
295
						LOGGER.info("leadlocalDateTime1" + leads);
-
 
296
					}
-
 
297
				}
-
 
298
 
-
 
299
				else {
-
 
300
 
180
 
301
					if (localDateTime == null) {
-
 
302
 
-
 
303
						leads = leadRepository.selectAllByStatusAndUpdatedTimestamp(leadStatus,
-
 
304
								LocalDateTime.now().minusMonths(1));
-
 
305
 
-
 
306
					}
-
 
307
 
-
 
308
					else {
-
 
309
 
-
 
310
						leads = leadRepository.selectAllByStatusAndUpdatedTimestamp(leadStatus, localDateTime);
-
 
311
					}
-
 
312
 
-
 
313
				}
-
 
314
 
-
 
315
			}
-
 
316
			// List<Lead> leads = leadRepository.selectAllBylistStatus(leadStatus);
-
 
317
		}
181
		}
-
 
182
 
318
		if (authPositon && authUserIds.size() > 0) {
183
		if (authPositon && authUserIds.size() > 0) {
319
			List<String> leadCreators = new ArrayList<>();
184
			List<String> leadCreators = new ArrayList<>();
320
			leadCreators.add("daily-sync");
185
			leadCreators.add("daily-sync");
321
			leadCreators.addAll(authRepository.selectAllAuthUserByIds(authUserIds).stream().map(x -> x.getFullName())
186
			leadCreators.addAll(authRepository.selectAllAuthUserByIds(authUserIds).stream().map(x -> x.getFullName())
322
					.collect(Collectors.toList()));
187
					.collect(Collectors.toList()));
Line 335... Line 200...
335
			LeadWeakWiseModel lm = new LeadWeakWiseModel();
200
			LeadWeakWiseModel lm = new LeadWeakWiseModel();
336
			lm.setMonth(startOfDay.toLocalDate());
201
			lm.setMonth(startOfDay.toLocalDate());
337
			lwDays.add(lm);
202
			lwDays.add(lm);
338
		}
203
		}
339
		if (!leads.isEmpty()) {
204
		if (!leads.isEmpty()) {
340
			for (Lead lead : leads) {
-
 
341
 
205
 
-
 
206
			weekLast.addAll(
-
 
207
					leads.stream()
342
				if (lead.getCreatedTimestamp().isAfter(curDate.minusDays(28))
208
							.filter(x -> x.getCreatedTimestamp().isAfter(curDate.minusDays(28))
343
						&& lead.getCreatedTimestamp().isBefore(curDate.minusDays(21))) {
209
									&& x.getCreatedTimestamp().isBefore(curDate.minusDays(21)))
344
					weekLast.add(lead);
210
							.collect(Collectors.toList()));
345
 
211
 
-
 
212
			weekThird
-
 
213
					.addAll(leads.stream()
346
				} else if (lead.getCreatedTimestamp().isAfter(curDate.minusDays(21))
214
							.filter(x -> x.getCreatedTimestamp().isAfter(curDate.minusDays(21))
347
						&& lead.getCreatedTimestamp().isBefore(curDate.minusDays(14))) {
215
									&& x.getCreatedTimestamp().isBefore(curDate.minusDays(14)))
-
 
216
							.collect(Collectors.toList()));
-
 
217
 
-
 
218
			weekSecond
348
					weekThird.add(lead);
219
					.addAll(leads.stream()
349
				} else if (lead.getCreatedTimestamp().isAfter(curDate.minusDays(14))
220
							.filter(x -> x.getCreatedTimestamp().isAfter(curDate.minusDays(14))
350
						&& lead.getCreatedTimestamp().isBefore(curDate.minusDays(7))) {
221
									&& x.getCreatedTimestamp().isBefore(curDate.minusDays(7)))
-
 
222
							.collect(Collectors.toList()));
351
 
223
 
352
					weekSecond.add(lead);
-
 
353
				} else if (lead.getCreatedTimestamp().isAfter(curDate.minusDays(7))) {
224
			weekFirst.addAll(leads.stream().filter(x -> x.getCreatedTimestamp().isAfter(curDate.minusDays(7)))
354
					weekFirst.add(lead);
225
					.collect(Collectors.toList()));
355
				}
-
 
356
 
226
 
357
			}
-
 
358
		}
227
		}
359
		LOGGER.info("weekLast" + weekLast);
228
		LOGGER.info("weekLast" + weekLast);
360
		LOGGER.info("weekThird" + weekThird);
229
		LOGGER.info("weekThird" + weekThird);
361
		LOGGER.info("weekSecond" + weekSecond);
230
		LOGGER.info("weekSecond" + weekSecond);
362
		Map<String, Long> leadLasts = weekLast.stream()
231
		Map<String, Long> leadLasts = weekLast.stream()
Line 375... Line 244...
375
		List<Integer> authIds = new ArrayList<>();
244
		List<Integer> authIds = new ArrayList<>();
376
		if (!leads.isEmpty()) {
245
		if (!leads.isEmpty()) {
377
 
246
 
378
			authIds.addAll(leads.stream().map(x -> x.getAssignTo()).collect(Collectors.toList()));
247
			authIds.addAll(leads.stream().map(x -> x.getAssignTo()).collect(Collectors.toList()));
379
 
248
 
380
			for (Lead lead : leads) {
249
			leadActivityMap = leadActivityRepository
381
				List<LeadActivity> leadActivity = leadActivityRepository.selectBYLeadId(lead.getId());
250
					.selectAllByleadIds(leads.stream().map(x -> x.getId()).collect(Collectors.toList())).stream()
382
				if (!leadActivity.isEmpty()) {
-
 
383
					leadActivityMap.put(lead.getId(), leadActivity.get(0));
251
					.collect(Collectors.groupingBy(LeadActivity::getLeadId, Collectors.toList()));
384
				}
-
 
385
			}
252
 
386
			Map<Integer, AuthUser> authIdAndAuthUserMap = authRepository.selectAllAuthUserByIds(authIds).stream()
253
			Map<Integer, AuthUser> authIdAndAuthUserMap = authRepository.selectAllAuthUserByIds(authIds).stream()
387
					.collect(Collectors.toMap(x -> x.getId(), x -> x));
254
					.collect(Collectors.toMap(x -> x.getId(), x -> x));
388
			model.addAttribute("leadActivityMap", leadActivityMap);
255
			model.addAttribute("leadActivityMap", leadActivityMap);
389
			model.addAttribute("authIdAndAuthUserMap", authIdAndAuthUserMap);
256
			model.addAttribute("authIdAndAuthUserMap", authIdAndAuthUserMap);
390
		}
257
		}