Subversion Repositories SmartDukaan

Rev

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

Rev 31238 Rev 31249
Line 1... Line 1...
1
package com.spice.profitmandi.web.controller;
1
package com.spice.profitmandi.web.controller;
2
 
2
 
-
 
3
import java.io.ByteArrayInputStream;
-
 
4
import java.io.InputStream;
-
 
5
import java.time.LocalDate;
-
 
6
import java.time.LocalDateTime;
-
 
7
import java.time.format.DateTimeFormatter;
-
 
8
import java.util.ArrayList;
-
 
9
import java.util.Arrays;
-
 
10
import java.util.HashMap;
-
 
11
import java.util.HashSet;
-
 
12
import java.util.List;
-
 
13
import java.util.Map;
-
 
14
import java.util.Set;
-
 
15
import java.util.TreeMap;
-
 
16
import java.util.stream.Collectors;
-
 
17
 
-
 
18
import javax.servlet.http.HttpServletRequest;
-
 
19
import javax.servlet.http.HttpServletResponse;
-
 
20
import javax.transaction.Transactional;
-
 
21
 
-
 
22
import org.apache.commons.csv.CSVRecord;
-
 
23
import org.apache.logging.log4j.LogManager;
-
 
24
import org.apache.logging.log4j.Logger;
-
 
25
import org.springframework.beans.factory.annotation.Autowired;
-
 
26
import org.springframework.core.io.InputStreamResource;
-
 
27
import org.springframework.http.HttpHeaders;
-
 
28
import org.springframework.http.HttpStatus;
-
 
29
import org.springframework.http.ResponseEntity;
-
 
30
import org.springframework.stereotype.Controller;
-
 
31
import org.springframework.ui.Model;
-
 
32
import org.springframework.util.StringUtils;
-
 
33
import org.springframework.web.bind.annotation.RequestBody;
-
 
34
import org.springframework.web.bind.annotation.RequestMapping;
-
 
35
import org.springframework.web.bind.annotation.RequestMethod;
-
 
36
import org.springframework.web.bind.annotation.RequestParam;
-
 
37
import org.springframework.web.bind.annotation.RequestPart;
-
 
38
import org.springframework.web.multipart.MultipartFile;
-
 
39
 
3
import com.google.gson.Gson;
40
import com.google.gson.Gson;
4
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
41
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
-
 
42
import com.spice.profitmandi.common.model.CustomRetailer;
5
import com.spice.profitmandi.common.model.*;
43
import com.spice.profitmandi.common.model.Legend;
-
 
44
import com.spice.profitmandi.common.model.OptionModel;
-
 
45
import com.spice.profitmandi.common.model.PieLables;
-
 
46
import com.spice.profitmandi.common.model.ProfitMandiConstants;
6
import com.spice.profitmandi.common.util.FileUtil;
47
import com.spice.profitmandi.common.util.FileUtil;
7
import com.spice.profitmandi.dao.entity.auth.AuthUser;
48
import com.spice.profitmandi.dao.entity.auth.AuthUser;
8
import com.spice.profitmandi.dao.entity.fofo.PartnerDailyInvestment;
49
import com.spice.profitmandi.dao.entity.fofo.PartnerDailyInvestment;
9
import com.spice.profitmandi.dao.entity.user.FranchiseeActivity;
50
import com.spice.profitmandi.dao.entity.user.FranchiseeActivity;
10
import com.spice.profitmandi.dao.entity.user.FranchiseeVisit;
51
import com.spice.profitmandi.dao.entity.user.FranchiseeVisit;
11
import com.spice.profitmandi.dao.entity.user.Lead;
52
import com.spice.profitmandi.dao.entity.user.Lead;
12
import com.spice.profitmandi.dao.entity.user.LeadActivity;
53
import com.spice.profitmandi.dao.entity.user.LeadActivity;
-
 
54
import com.spice.profitmandi.dao.entity.user.VisitRequest;
13
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
55
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
-
 
56
import com.spice.profitmandi.dao.enumuration.dtr.CommunicationType;
14
import com.spice.profitmandi.dao.enumuration.dtr.LeadSource;
57
import com.spice.profitmandi.dao.enumuration.dtr.LeadSource;
15
import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;
58
import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;
-
 
59
import com.spice.profitmandi.dao.model.ChartLeadModel;
-
 
60
import com.spice.profitmandi.dao.model.CreateLeacdActivityRequest;
-
 
61
import com.spice.profitmandi.dao.model.CreateRefferalRequest;
16
import com.spice.profitmandi.dao.model.*;
62
import com.spice.profitmandi.dao.model.DataLeadModel;
-
 
63
import com.spice.profitmandi.dao.model.DateRangeModel;
-
 
64
import com.spice.profitmandi.dao.model.LeadStatusData;
-
 
65
import com.spice.profitmandi.dao.model.PartnerCollectionPlanModel;
-
 
66
import com.spice.profitmandi.dao.model.RBMPerformanceSummaryModel;
-
 
67
import com.spice.profitmandi.dao.model.TeamCommitmentModel;
-
 
68
import com.spice.profitmandi.dao.model.TotalTargetColectionModel;
-
 
69
import com.spice.profitmandi.dao.model.UserVisitModel;
-
 
70
import com.spice.profitmandi.dao.model.VisitDescriptionModel;
17
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
71
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
18
import com.spice.profitmandi.dao.repository.auth.PartnerCollectionPlanRepository;
72
import com.spice.profitmandi.dao.repository.auth.PartnerCollectionPlanRepository;
19
import com.spice.profitmandi.dao.repository.auth.PartnerCollectionRemarkRepository;
73
import com.spice.profitmandi.dao.repository.auth.PartnerCollectionRemarkRepository;
20
import com.spice.profitmandi.dao.repository.cs.CsService;
74
import com.spice.profitmandi.dao.repository.cs.CsService;
21
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
75
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
Line 27... Line 81...
27
import com.spice.profitmandi.service.PartnerCollectionService;
81
import com.spice.profitmandi.service.PartnerCollectionService;
28
import com.spice.profitmandi.service.user.RetailerService;
82
import com.spice.profitmandi.service.user.RetailerService;
29
import com.spice.profitmandi.web.model.LoginDetails;
83
import com.spice.profitmandi.web.model.LoginDetails;
30
import com.spice.profitmandi.web.util.CookiesProcessor;
84
import com.spice.profitmandi.web.util.CookiesProcessor;
31
import com.spice.profitmandi.web.util.MVCResponseSender;
85
import com.spice.profitmandi.web.util.MVCResponseSender;
32
import org.apache.commons.csv.CSVRecord;
-
 
33
import org.apache.logging.log4j.LogManager;
-
 
34
import org.apache.logging.log4j.Logger;
-
 
35
import org.springframework.beans.factory.annotation.Autowired;
-
 
36
import org.springframework.core.io.InputStreamResource;
-
 
37
import org.springframework.http.HttpHeaders;
-
 
38
import org.springframework.http.HttpStatus;
-
 
39
import org.springframework.http.ResponseEntity;
-
 
40
import org.springframework.stereotype.Controller;
-
 
41
import org.springframework.ui.Model;
-
 
42
import org.springframework.util.StringUtils;
-
 
43
import org.springframework.web.bind.annotation.*;
-
 
44
import org.springframework.web.multipart.MultipartFile;
-
 
45
 
-
 
46
import javax.servlet.http.HttpServletRequest;
-
 
47
import javax.servlet.http.HttpServletResponse;
-
 
48
import javax.transaction.Transactional;
-
 
49
import java.io.ByteArrayInputStream;
-
 
50
import java.io.InputStream;
-
 
51
import java.time.LocalDate;
-
 
52
import java.time.LocalDateTime;
-
 
53
import java.time.format.DateTimeFormatter;
-
 
54
import java.util.*;
-
 
55
import java.util.stream.Collectors;
-
 
56
 
86
 
57
@Controller
87
@Controller
58
@Transactional(rollbackOn = Throwable.class)
88
@Transactional(rollbackOn = Throwable.class)
59
public class LeadController {
89
public class LeadController {
60
	private static final Logger LOGGER = LogManager.getLogger(LeadController.class);
90
	private static final Logger LOGGER = LogManager.getLogger(LeadController.class);
Line 114... Line 144...
114
	private FranchiseeVisitRepository franchiseeVisitRepository;
144
	private FranchiseeVisitRepository franchiseeVisitRepository;
115
 
145
 
116
	@Autowired
146
	@Autowired
117
	private FranchiseeActivityRepository franchiseeActivityRepository;
147
	private FranchiseeActivityRepository franchiseeActivityRepository;
118
 
148
 
-
 
149
	@Autowired
-
 
150
	private VisitRequestRepository visitRequestRepository;
-
 
151
 
119
	List<LeadStatus> status = Arrays.asList(LeadStatus.notInterested, LeadStatus.finalized);
152
	List<LeadStatus> status = Arrays.asList(LeadStatus.notInterested, LeadStatus.finalized);
120
 
153
 
121
	@RequestMapping(value = "/getOpenLead", method = RequestMethod.GET)
154
	@RequestMapping(value = "/getOpenLead", method = RequestMethod.GET)
122
	public String getOpenLead(HttpServletRequest request,
155
	public String getOpenLead(HttpServletRequest request,
123
			@RequestParam(name = "leadStatus", required = false, defaultValue = "All") List<LeadStatus> leadStatus,
156
			@RequestParam(name = "leadStatus", required = false, defaultValue = "All") List<LeadStatus> leadStatus,
Line 336... Line 369...
336
		model.addAttribute("weekDates", weekDates);
369
		model.addAttribute("weekDates", weekDates);
337
 
370
 
338
		model.addAttribute("leadDate", leadDate);
371
		model.addAttribute("leadDate", leadDate);
339
		model.addAttribute("lastDate", lastDate);
372
		model.addAttribute("lastDate", lastDate);
340
		model.addAttribute("stateNames", stateNames);
373
		model.addAttribute("stateNames", stateNames);
-
 
374
 
-
 
375
		model.addAttribute("communicationTypes", CommunicationType.values());
-
 
376
 
341
		model.addAttribute("authUsers", authUsers);
377
		model.addAttribute("authUsers", authUsers);
342
		model.addAttribute("lead", leads);
378
		model.addAttribute("lead", leads);
343
		model.addAttribute("leadStatus", LeadStatus.values());
379
		model.addAttribute("leadStatus", LeadStatus.values());
344
		model.addAttribute("leadLasts", leadLasts);
380
		model.addAttribute("leadLasts", leadLasts);
345
		model.addAttribute("leadThirds", leadThirds);
381
		model.addAttribute("leadThirds", leadThirds);
Line 603... Line 639...
603
	}
639
	}
604
 
640
 
605
	@RequestMapping(value = "/getLeadActivity", method = RequestMethod.GET)
641
	@RequestMapping(value = "/getLeadActivity", method = RequestMethod.GET)
606
	public String getLeadActivity(HttpServletRequest request, @RequestParam int leadId, Model model) throws Exception {
642
	public String getLeadActivity(HttpServletRequest request, @RequestParam int leadId, Model model) throws Exception {
607
		List<LeadActivity> leadActivity = leadActivityRepository.selectBYLeadId(leadId);
643
		List<LeadActivity> leadActivity = leadActivityRepository.selectBYLeadId(leadId);
-
 
644
 
-
 
645
		LOGGER.info("leadActivity" + leadActivity);
-
 
646
 
608
		model.addAttribute("leadActivity", leadActivity);
647
		model.addAttribute("leadActivity", leadActivity);
-
 
648
		model.addAttribute("authUserMap",
-
 
649
				authRepository.selectAllActiveUser().stream().collect(Collectors.toMap(x -> x.getId(), x -> x)));
-
 
650
 
609
		return "lead_activity_modal";
651
		return "lead_activity_modal";
610
	}
652
	}
611
 
653
 
612
	@RequestMapping(value = "/createLead", method = RequestMethod.POST)
654
	@RequestMapping(value = "/createLead", method = RequestMethod.POST)
613
	public String CreateLead(HttpServletRequest request, @RequestBody CreateRefferalRequest createRefferalRequest,
655
	public String CreateLead(HttpServletRequest request, @RequestBody CreateRefferalRequest createRefferalRequest,
614
			Model model) throws Exception {
656
			Model model) throws Exception {
615
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
657
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
658
 
616
		LOGGER.info("createRefferalRequest" + createRefferalRequest.getSchelduleTimestamp());
659
		LOGGER.info("createRefferalRequest" + createRefferalRequest.getSchelduleTimestamp());
617
		Lead lead = new Lead();
660
		Lead lead = new Lead();
618
		lead.setFirstName(createRefferalRequest.getFirstName());
661
		lead.setFirstName(createRefferalRequest.getFirstName());
619
		lead.setLastName(createRefferalRequest.getLastName());
662
		lead.setLastName(createRefferalRequest.getLastName());
620
		lead.setLeadMobile(createRefferalRequest.getMobile());
663
		lead.setLeadMobile(createRefferalRequest.getMobile());
Line 635... Line 678...
635
 
678
 
636
		leadRepository.persist(lead);
679
		leadRepository.persist(lead);
637
		LeadActivity leadActivity = new LeadActivity();
680
		LeadActivity leadActivity = new LeadActivity();
638
		leadActivity.setLeadId(lead.getId());
681
		leadActivity.setLeadId(lead.getId());
639
		leadActivity.setRemark(createRefferalRequest.getRemark());
682
		leadActivity.setRemark(createRefferalRequest.getRemark());
-
 
683
		leadActivity.setAuthId(authUser.getId());
-
 
684
		LOGGER.info("createRefferalRequest" + createRefferalRequest.getCommunicationType());
640
 
685
 
641
		if (createRefferalRequest.getStatus() == LeadStatus.followUp) {
686
		if (createRefferalRequest.getStatus() == LeadStatus.followUp) {
642
			leadActivity.setSchelduleTimestamp(createRefferalRequest.getSchelduleTimestamp());
687
			leadActivity.setSchelduleTimestamp(createRefferalRequest.getSchelduleTimestamp());
-
 
688
			leadActivity.setCommunicationType(createRefferalRequest.getCommunicationType());
-
 
689
 
-
 
690
			if (leadActivity.getCommunicationType().equals(CommunicationType.VISIT)) {
-
 
691
				visitRequestRepository.createVisitRequest(lead.getId(), "lead", lead.getAssignTo(),
-
 
692
						createRefferalRequest.getSchelduleTimestamp());
-
 
693
			}
643
		} else {
694
		} else {
644
			leadActivity.setSchelduleTimestamp(null);
695
			leadActivity.setSchelduleTimestamp(null);
645
		}
696
		}
646
		leadActivity.setCreatedTimestamp(LocalDateTime.now());
697
		leadActivity.setCreatedTimestamp(LocalDateTime.now());
647
		leadActivityRepository.persist(leadActivity);
698
		leadActivityRepository.persist(leadActivity);
648
		model.addAttribute("response1", mvcResponseSender.createResponseString(true));
699
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
-
 
700
 
649
		return "response";
701
		return "response";
650
 
702
 
651
	}
703
	}
652
 
704
 
653
	@RequestMapping(value = "/editLead", method = RequestMethod.POST)
705
	@RequestMapping(value = "/editLead", method = RequestMethod.POST)
654
	public String EditLead(HttpServletRequest request,
706
	public String EditLead(HttpServletRequest request,
655
			@RequestBody CreateLeacdActivityRequest createLeadActivityRequest, Model model) throws Exception {
707
			@RequestBody CreateLeacdActivityRequest createLeadActivityRequest, Model model) throws Exception {
-
 
708
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
709
 
-
 
710
		AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
656
 
711
 
657
		LeadActivity leadActivity = new LeadActivity();
712
		LeadActivity leadActivity = new LeadActivity();
658
		leadActivity.setLeadId(createLeadActivityRequest.getId());
713
		leadActivity.setLeadId(createLeadActivityRequest.getId());
659
		leadActivity.setRemark(createLeadActivityRequest.getRemark());
714
		leadActivity.setRemark(createLeadActivityRequest.getRemark());
660
 
715
 
661
		LOGGER.info("createRefferalRequest" + createLeadActivityRequest);
716
		LOGGER.info("createRefferalRequest" + createLeadActivityRequest);
662
 
717
 
663
		if (createLeadActivityRequest.getStatus() == LeadStatus.followUp) {
718
		if (createLeadActivityRequest.getStatus() == LeadStatus.followUp) {
664
			leadActivity.setSchelduleTimestamp(createLeadActivityRequest.getScheldule());
719
			leadActivity.setSchelduleTimestamp(createLeadActivityRequest.getScheldule());
-
 
720
			leadActivity.setCommunicationType(createLeadActivityRequest.getCommunicationType());
-
 
721
			if (leadActivity.getCommunicationType().equals(CommunicationType.VISIT)) {
-
 
722
				visitRequestRepository.createVisitRequest(createLeadActivityRequest.getId(), "lead",
-
 
723
						createLeadActivityRequest.getAssignTo(), createLeadActivityRequest.getScheldule());
-
 
724
			}
665
		} else {
725
		} else {
666
			leadActivity.setSchelduleTimestamp(null);
726
			leadActivity.setSchelduleTimestamp(null);
667
		}
727
		}
668
		leadActivity.setCreatedTimestamp(LocalDateTime.now());
728
		leadActivity.setCreatedTimestamp(LocalDateTime.now());
-
 
729
		leadActivity.setAuthId(authUser.getId());
669
		leadActivityRepository.persist(leadActivity);
730
		leadActivityRepository.persist(leadActivity);
670
		Lead lead = leadRepository.selectById(createLeadActivityRequest.getId());
731
		Lead lead = leadRepository.selectById(createLeadActivityRequest.getId());
671
		lead.setAssignTo(createLeadActivityRequest.getAssignTo());
732
		lead.setAssignTo(createLeadActivityRequest.getAssignTo());
672
		lead.setStatus(createLeadActivityRequest.getStatus());
733
		lead.setStatus(createLeadActivityRequest.getStatus());
673
		lead.setNotinterestedReason(createLeadActivityRequest.getReason());
734
		lead.setNotinterestedReason(createLeadActivityRequest.getReason());
Line 1119... Line 1180...
1119
 
1180
 
1120
	}
1181
	}
1121
 
1182
 
1122
	@RequestMapping(value = "/indent/today_target", method = RequestMethod.GET)
1183
	@RequestMapping(value = "/indent/today_target", method = RequestMethod.GET)
1123
	public String todayTarget(HttpServletRequest request, Model model) throws Exception {
1184
	public String todayTarget(HttpServletRequest request, Model model) throws Exception {
1124
		// model.addAttribute("warehouseCollectionMap", warehouseCollectionMap);
-
 
1125
		List<RBMPerformanceSummaryModel> summaryModels = new ArrayList<>();
1185
		List<RBMPerformanceSummaryModel> summaryModels = new ArrayList<>();
1126
		List<Integer> rbmPositionsAuthIds = positionRepository
1186
		List<Integer> rbmPositionsAuthIds = positionRepository
1127
				.selectPositionByCategoryId(ProfitMandiConstants.TICKET_CATEGORY_RBM).stream()
1187
				.selectPositionByCategoryId(ProfitMandiConstants.TICKET_CATEGORY_RBM).stream()
1128
				.filter(x -> Arrays.asList(EscalationType.L1, EscalationType.L2).contains(x.getEscalationType()))
1188
				.filter(x -> Arrays.asList(EscalationType.L1, EscalationType.L2).contains(x.getEscalationType()))
1129
				.map(x -> x.getAuthUserId()).distinct().collect(Collectors.toList());
1189
				.map(x -> x.getAuthUserId()).distinct().collect(Collectors.toList());
Line 1195... Line 1255...
1195
		}
1255
		}
1196
		model.addAttribute("summaryModels", summaryModels);
1256
		model.addAttribute("summaryModels", summaryModels);
1197
		return "today_target";
1257
		return "today_target";
1198
	}
1258
	}
1199
 
1259
 
-
 
1260
	@RequestMapping(value = "/visitPlan", method = RequestMethod.GET)
-
 
1261
	public String visitPlan(HttpServletRequest request, Model model) throws Exception {
-
 
1262
 
-
 
1263
		return "visit-request-plan";
-
 
1264
	}
-
 
1265
 
-
 
1266
	@RequestMapping(value = "/visit/getVisitPlan", method = RequestMethod.GET)
-
 
1267
	public String getVisitPlan(HttpServletRequest request, @RequestParam LocalDate date, Model model) throws Exception {
-
 
1268
		List<VisitRequest> visitRequests = visitRequestRepository.selectByAuthIdAndDate(date);
-
 
1269
 
-
 
1270
		List<Integer> leadIds = visitRequests.stream().filter(x -> x.getVisitType().equals("lead"))
-
 
1271
				.map(x -> x.getVisitId()).collect(Collectors.toList());
-
 
1272
		Map<Integer, Lead> leadMap = new HashMap<>();
-
 
1273
		if (!leadIds.isEmpty()) {
-
 
1274
			List<Lead> leads = leadRepository.selectAllByIds(leadIds);
-
 
1275
 
-
 
1276
			for (Lead lead : leads) {
-
 
1277
				List<LeadActivity> leadActivities = leadActivityRepository.selectBYLeadId(lead.getId());
-
 
1278
				lead.setScheduledTimestamp(leadActivities.get(0).getSchelduleTimestamp());
-
 
1279
				lead.setLeadActivity(leadActivities.get(0));
-
 
1280
 
-
 
1281
				leadMap.put(lead.getId(), lead);
-
 
1282
			}
-
 
1283
 
-
 
1284
		}
-
 
1285
		List<Integer> franchiseeIds = visitRequests.stream().filter(x -> x.getVisitType().equals("franchiseeVisit"))
-
 
1286
				.map(x -> x.getVisitId()).collect(Collectors.toList());
-
 
1287
		Map<Integer, FranchiseeVisit> franchiseeVisitsMap = new HashMap<>();
-
 
1288
		if (!franchiseeIds.isEmpty()) {
-
 
1289
			List<FranchiseeVisit> franchiseeVisits = franchiseeVisitRepository.selectAllByIds(franchiseeIds);
-
 
1290
			LOGGER.info("franchiseeVisits {}", franchiseeVisits);
-
 
1291
 
-
 
1292
			for (FranchiseeVisit franchiseeVisit : franchiseeVisits) {
-
 
1293
				List<FranchiseeActivity> franchiseeActivities = franchiseeActivityRepository
-
 
1294
						.selectByFranchiseeVisitId(franchiseeVisit.getId());
-
 
1295
				LOGGER.info("franchiseeActivities {}", franchiseeActivities);
-
 
1296
 
-
 
1297
				franchiseeVisit.setScheduleTimestamp(franchiseeActivities.get(0).getSchelduleTimestamp());
-
 
1298
				franchiseeVisit.setFranchiseeActivity(franchiseeActivities.get(0));
-
 
1299
 
-
 
1300
				franchiseeVisitsMap.put(franchiseeVisit.getId(), franchiseeVisit);
-
 
1301
			}
-
 
1302
 
-
 
1303
		}
-
 
1304
 
-
 
1305
		Map<Integer, List<VisitRequest>> visitRequestMap = visitRequests.stream()
-
 
1306
				.collect(Collectors.groupingBy(x -> x.getCreatedBy()));
-
 
1307
		List<AuthUser> authUsers = authRepository.selectAllActiveUser();
-
 
1308
		List<UserVisitModel> userVisits = new ArrayList<>();
-
 
1309
 
-
 
1310
		for (AuthUser authUser : authUsers) {
-
 
1311
 
-
 
1312
			List<VisitRequest> authVisitRequests = visitRequestMap.get(authUser.getId());
-
 
1313
 
-
 
1314
			if (authVisitRequests != null) {
-
 
1315
				UserVisitModel userVisitModel = new UserVisitModel();
-
 
1316
				userVisitModel.setAuthUser(authUser.getFullName());
-
 
1317
				List<VisitDescriptionModel> visitDescriptions = new ArrayList<>();
-
 
1318
 
-
 
1319
				for (VisitRequest authVisitRequest : authVisitRequests) {
-
 
1320
					VisitDescriptionModel visitDescriptionModel = new VisitDescriptionModel();
-
 
1321
					visitDescriptionModel.setVisitId(authVisitRequest.getVisitId());
-
 
1322
 
-
 
1323
					if (authVisitRequest.getVisitType().equals("lead")) {
-
 
1324
						Lead lead = leadMap.get(authVisitRequest.getVisitId());
-
 
1325
 
-
 
1326
						visitDescriptionModel.setVisitName(lead.getFirstName());
-
 
1327
						visitDescriptionModel.setCity(lead.getCity());
-
 
1328
						visitDescriptionModel.setState(lead.getState());
-
 
1329
						visitDescriptionModel.setScheduleTime(lead.getScheduledTimestamp());
-
 
1330
						visitDescriptionModel.setRemarks(lead.getLeadActivity().getRemark());
-
 
1331
 
-
 
1332
					} else {
-
 
1333
						FranchiseeVisit franchiseeVisit = franchiseeVisitsMap.get(authVisitRequest.getVisitId());
-
 
1334
						CustomRetailer customRetailer = retailerService.getFofoRetailer(franchiseeVisit.getFofoId());
-
 
1335
 
-
 
1336
						visitDescriptionModel.setVisitName(franchiseeVisit.getPartnerName());
-
 
1337
						visitDescriptionModel.setCity(customRetailer.getAddress().getCity());
-
 
1338
						visitDescriptionModel.setState(customRetailer.getAddress().getState());
-
 
1339
						visitDescriptionModel
-
 
1340
								.setScheduleTime(franchiseeVisit.getFranchiseeActivity().getSchelduleTimestamp());
-
 
1341
						visitDescriptionModel.setRemarks(franchiseeVisit.getAgenda());
-
 
1342
 
-
 
1343
					}
-
 
1344
 
-
 
1345
					if (authVisitRequest.getActionedBy() != 0) {
-
 
1346
						AuthUser au = authRepository.selectById(authVisitRequest.getActionedBy());
-
 
1347
 
-
 
1348
						visitDescriptionModel.setActionBy(au.getFullName());
-
 
1349
					}
-
 
1350
					visitDescriptionModel.setStatus(authVisitRequest.getStatus());
-
 
1351
					visitDescriptionModel.setVisitType(authVisitRequest.getVisitType());
-
 
1352
					visitDescriptions.add(visitDescriptionModel);
-
 
1353
				}
-
 
1354
 
-
 
1355
				userVisitModel.setVisitDescriptions(visitDescriptions);
-
 
1356
				userVisits.add(userVisitModel);
-
 
1357
			}
-
 
1358
 
-
 
1359
		}
-
 
1360
 
-
 
1361
		model.addAttribute("userVisits", userVisits);
-
 
1362
 
-
 
1363
		return "visit-request-plan";
-
 
1364
	}
1200
}
1365
}