| 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 |
}
|