Subversion Repositories SmartDukaan

Rev

Rev 35957 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 35957 Rev 36040
Line 1... Line 1...
1
package com.spice.profitmandi.web.controller;
1
package com.spice.profitmandi.web.controller;
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.CustomRetailer;
4
import com.spice.profitmandi.common.model.CustomRetailer;
5
import com.spice.profitmandi.common.model.ProfitMandiConstants;
5
import com.spice.profitmandi.common.model.ProfitMandiConstants;
6
import com.spice.profitmandi.common.util.Utils;
-
 
7
import com.spice.profitmandi.dao.entity.auth.AuthUser;
6
import com.spice.profitmandi.dao.entity.auth.AuthUser;
8
import com.spice.profitmandi.service.mail.MailOutboxService;
-
 
9
import com.spice.profitmandi.dao.entity.cs.*;
7
import com.spice.profitmandi.dao.entity.cs.*;
10
import com.spice.profitmandi.dao.entity.cs.Position;
-
 
11
import com.spice.profitmandi.dao.entity.dtr.Document;
-
 
12
import com.spice.profitmandi.dao.entity.cs.TicketReadStatus.UserType;
8
import com.spice.profitmandi.dao.entity.cs.TicketReadStatus.UserType;
-
 
9
import com.spice.profitmandi.dao.entity.dtr.Document;
13
import com.spice.profitmandi.dao.entity.fofo.ActivityType;
10
import com.spice.profitmandi.dao.entity.fofo.ActivityType;
14
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
11
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
15
import com.spice.profitmandi.dao.enumuration.cs.TicketStatus;
12
import com.spice.profitmandi.dao.enumuration.cs.TicketStatus;
16
import com.spice.profitmandi.dao.model.CreatePositionModel;
13
import com.spice.profitmandi.dao.model.CreatePositionModel;
17
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
14
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
18
import com.spice.profitmandi.dao.repository.cs.*;
15
import com.spice.profitmandi.dao.repository.cs.*;
19
import com.spice.profitmandi.dao.repository.dtr.DocumentRepository;
16
import com.spice.profitmandi.dao.repository.dtr.DocumentRepository;
20
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
17
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
21
import com.spice.profitmandi.service.authentication.RoleManager;
18
import com.spice.profitmandi.service.authentication.RoleManager;
-
 
19
import com.spice.profitmandi.service.mail.MailOutboxService;
22
import com.spice.profitmandi.service.user.RetailerService;
20
import com.spice.profitmandi.service.user.RetailerService;
23
import com.spice.profitmandi.web.model.LoginDetails;
21
import com.spice.profitmandi.web.model.LoginDetails;
24
import com.spice.profitmandi.web.util.CookiesProcessor;
22
import com.spice.profitmandi.web.util.CookiesProcessor;
25
import com.spice.profitmandi.web.util.MVCResponseSender;
23
import com.spice.profitmandi.web.util.MVCResponseSender;
26
import org.apache.logging.log4j.LogManager;
24
import org.apache.logging.log4j.LogManager;
Line 31... Line 29...
31
import org.springframework.transaction.annotation.Transactional;
29
import org.springframework.transaction.annotation.Transactional;
32
import org.springframework.ui.Model;
30
import org.springframework.ui.Model;
33
import org.springframework.web.bind.annotation.*;
31
import org.springframework.web.bind.annotation.*;
34
 
32
 
35
import javax.servlet.http.HttpServletRequest;
33
import javax.servlet.http.HttpServletRequest;
36
import javax.swing.SortOrder;
34
import javax.swing.*;
37
import java.time.LocalDateTime;
35
import java.time.LocalDateTime;
38
import java.util.*;
36
import java.util.*;
39
import java.util.stream.Collectors;
37
import java.util.stream.Collectors;
40
 
38
 
41
@Controller
39
@Controller
Line 631... Line 629...
631
        authUserIdAndAuthUserMap = csService.getTicketIdAndAuthUserMapUsingTickets(tickets);
629
        authUserIdAndAuthUserMap = csService.getTicketIdAndAuthUserMapUsingTickets(tickets);
632
        if (authUserIdAndAuthUserMap == null) {
630
        if (authUserIdAndAuthUserMap == null) {
633
            authUserIdAndAuthUserMap = new HashMap<>();
631
            authUserIdAndAuthUserMap = new HashMap<>();
634
        }
632
        }
635
 
633
 
-
 
634
        Map<Integer, List<AuthUser>> authUserListMap = csService.getAssignedAuthList(tickets);
-
 
635
        if (authUserListMap == null) {
-
 
636
            authUserListMap = new HashMap<>();
-
 
637
        }
-
 
638
 
636
        int totalPages = (int) Math.ceil((double) totalRecords / pageSize);
639
        int totalPages = (int) Math.ceil((double) totalRecords / pageSize);
637
        if (totalPages == 0) totalPages = 1;
640
        if (totalPages == 0) totalPages = 1;
638
        int startRecord = totalRecords > 0 ? offset + 1 : 0;
641
        int startRecord = totalRecords > 0 ? offset + 1 : 0;
639
        int endRecord = (int) Math.min(offset + pageSize, totalRecords);
642
        int endRecord = (int) Math.min(offset + pageSize, totalRecords);
640
 
643
 
Line 710... Line 713...
710
        model.addAttribute("tickets", tickets);
713
        model.addAttribute("tickets", tickets);
711
        model.addAttribute("resolved", ActivityType.RESOLVED);
714
        model.addAttribute("resolved", ActivityType.RESOLVED);
712
        model.addAttribute("resolved-accepted", ActivityType.RESOLVED_ACCEPTED);
715
        model.addAttribute("resolved-accepted", ActivityType.RESOLVED_ACCEPTED);
713
        model.addAttribute("resolved-rejected", ActivityType.RESOLVED_REJECTED);
716
        model.addAttribute("resolved-rejected", ActivityType.RESOLVED_REJECTED);
714
        model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
717
        model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
-
 
718
        model.addAttribute("authUserListMap", authUserListMap);
715
        model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
719
        model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
716
 
720
 
717
        model.addAttribute("subCategoryIdAndCategoryMap", subCategoryIdAndCategoryMap);
721
        model.addAttribute("subCategoryIdAndCategoryMap", subCategoryIdAndCategoryMap);
718
        model.addAttribute("activityMap", activityMap);
722
        model.addAttribute("activityMap", activityMap);
719
        model.addAttribute("authUserMap", authUserMap);
723
        model.addAttribute("authUserMap", authUserMap);
Line 791... Line 795...
791
            }
795
            }
792
        }
796
        }
793
        List<Activity> activities = null;
797
        List<Activity> activities = null;
794
        if (isAdmin) {
798
        if (isAdmin) {
795
            Set<Integer> authUserIds = allactivities.stream().map(x -> x.getCreatedBy()).collect(Collectors.toSet());
799
            Set<Integer> authUserIds = allactivities.stream().map(x -> x.getCreatedBy()).collect(Collectors.toSet());
-
 
800
 
-
 
801
            // Fetch current assignees for this ticket to show in ASSIGNED/ESCALATED activities
-
 
802
            List<TicketAssigned> ticketAssignments = ticketAssignedRepository.selectByTicketIds(Arrays.asList(ticketId));
-
 
803
            Set<Integer> assigneeIds = ticketAssignments.stream()
-
 
804
                    .map(TicketAssigned::getAssineeId)
-
 
805
                    .collect(Collectors.toSet());
-
 
806
            authUserIds.addAll(assigneeIds);
-
 
807
 
796
            List<AuthUser> users = authRepository.selectByIds(new ArrayList<>(authUserIds));
808
            List<AuthUser> users = authRepository.selectByIds(new ArrayList<>(authUserIds));
797
            Map<Integer, String> authUserNameMap = users.stream().collect(Collectors.toMap(AuthUser::getId, x -> x.getFirstName() + " " + x.getLastName()));
809
            Map<Integer, String> authUserNameMap = users.stream().collect(Collectors.toMap(AuthUser::getId, x -> x.getFirstName() + " " + x.getLastName()));
-
 
810
 
-
 
811
            // Get current assignee name (most recent assignment)
-
 
812
            String currentAssigneeName = null;
-
 
813
            if (!ticketAssignments.isEmpty()) {
-
 
814
                int latestAssigneeId = ticketAssignments.get(ticketAssignments.size() - 1).getAssineeId();
-
 
815
                currentAssigneeName = authUserNameMap.get(latestAssigneeId);
-
 
816
            }
-
 
817
            final String assigneeName = currentAssigneeName;
-
 
818
 
-
 
819
            allactivities.stream().forEach(x -> {
798
            allactivities.stream().forEach(x -> x.setName(authUserNameMap.get(x.getCreatedBy())));
820
                x.setName(authUserNameMap.get(x.getCreatedBy()));
-
 
821
                // For ASSIGNED/ESCALATED activities, use name field to show assignee
-
 
822
                ActivityType actType = x.getType();
-
 
823
                if (assigneeName != null && (actType == ActivityType.ASSIGNED || actType == ActivityType.ESCALATED || actType == ActivityType.ESCALATED_FINAL)) {
-
 
824
                    x.setName(assigneeName);
-
 
825
                }
-
 
826
            });
799
            activities = allactivities;
827
            activities = allactivities;
800
        } else {
828
        } else {
801
            activities = allactivities.stream().filter(x -> ActivityType.PARTNER_ACTIVITIES.contains(x.getType())).collect(Collectors.toList());
829
            activities = allactivities.stream().filter(x -> ActivityType.PARTNER_ACTIVITIES.contains(x.getType())).collect(Collectors.toList());
802
        }
830
        }
803
        if (activities == null) {
831
        if (activities == null) {