| | |
| | | import kr.wisestone.owl.common.ExcelConditionCheck; |
| | | import kr.wisestone.owl.common.MessageAccessor; |
| | | import kr.wisestone.owl.constant.Constants; |
| | | import kr.wisestone.owl.constant.MngPermission; |
| | | import kr.wisestone.owl.constant.MsgConstants; |
| | | import kr.wisestone.owl.domain.*; |
| | | import kr.wisestone.owl.domain.enumType.ProjectType; |
| | |
| | | |
| | | @Autowired |
| | | private UserService userService; |
| | | |
| | | @Autowired |
| | | private UserLevelService userLevelService; |
| | | |
| | | @Autowired |
| | | private UserDepartmentService userDepartmentService; |
| | |
| | | @Transactional(readOnly = true) |
| | | public WidgetCondition makeWidgetCondition() { |
| | | User user = this.webAppUtil.getLoginUserObject(); |
| | | UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); |
| | | // 해당 워크스페이스에서 참여하고 있는 프로젝트 중 상태가 오픈인 프로젝트 |
| | | List<Map<String, Object>> projects = null; |
| | | if (this.userWorkspaceService.checkWorkspaceManager(user)) { |
| | | if (this.userWorkspaceService.checkWorkspaceManager(user) |
| | | || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)) { |
| | | projects = this.projectService.findByWorkspaceManagerAll(); |
| | | } else { |
| | | projects = this.projectService.findByWorkspaceIdAndIncludeProjectAll(Lists.newArrayList("02"), ProjectType.BTS_PROJECT.toString()); |
| | |
| | | Long delayIssue = 0L; // 지연된 이슈 |
| | | Long completeIssue = 0L; // 완료된 이슈 |
| | | |
| | | widgetCondition.setLoginUserId(this.webAppUtil.getLoginId()); |
| | | widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); |
| | | User user = this.webAppUtil.getLoginUserObject(); |
| | | UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); |
| | | |
| | | if (widgetCondition.getProjectIds().size() > 0) { |
| | | SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition); |
| | | |
| | | remainIssue = this.widgetMapper.countRemainIssue(widgetCondition); // 잔여 이슈 |
| | | delayIssue = this.widgetMapper.countTodayDelayIssue(widgetCondition); // 지연된 이슈 |
| | | assigneeIssue = this.widgetMapper.countAssigneeIssue(widgetCondition); // 할당된 이슈 |
| | | registerIssue = this.widgetMapper.countTodayRegisterIssue(widgetCondition); // 등록한 이슈 |
| | | noAssigneeIssue = this.widgetMapper.countNoAssigneeIssue(widgetCondition); // 미할당 이슈 |
| | | completeIssue = this.widgetMapper.countCompleteIssue(widgetCondition); // 완료된 이슈 |
| | | if (this.userWorkspaceService.checkWorkspaceManager(user) |
| | | || (MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT) && |
| | | MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE))) { |
| | | remainIssue = this.widgetMapper.countRemainIssue(widgetCondition); // 잔여 이슈 |
| | | delayIssue = this.widgetMapper.countTodayDelayIssue(widgetCondition); // 지연된 이슈 |
| | | assigneeIssue = this.widgetMapper.countAssigneeIssue(widgetCondition); // 할당된 이슈 |
| | | registerIssue = this.widgetMapper.countTodayRegisterIssue(widgetCondition); // 등록한 이슈 |
| | | noAssigneeIssue = this.widgetMapper.countNoAssigneeIssue(widgetCondition); // 미할당 이슈 |
| | | completeIssue = this.widgetMapper.countCompleteIssue(widgetCondition); // 완료된 이슈 |
| | | } else { |
| | | SetMyDepartmentId(widgetCondition); |
| | | remainIssue = this.widgetMapper.countRemainIssueByDepartment(widgetCondition); // 잔여 이슈 |
| | | delayIssue = this.widgetMapper.countTodayDelayIssueByDepartment(widgetCondition); // 지연된 이슈 |
| | | assigneeIssue = this.widgetMapper.countAssigneeIssueByDepartment(widgetCondition); // 할당된 이슈 |
| | | registerIssue = this.widgetMapper.countTodayRegisterIssueByDepartment(widgetCondition); // 등록한 이슈 |
| | | //noAssigneeIssue = this.widgetMapper.countNoAssigneeIssueByDepartment(widgetCondition); // 일반 유저는 미할당 이슈 0개로 보이게 |
| | | completeIssue = this.widgetMapper.countCompleteIssueByDepartment(widgetCondition); // 완료된 이슈 |
| | | } |
| | | } |
| | | |
| | | Map<String, Object> results = new HashMap<>(); |
| | |
| | | List<Map<String, Object>> progressingProjectDetails = Lists.newArrayList(); |
| | | |
| | | User user = this.webAppUtil.getLoginUserObject(); |
| | | UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); |
| | | |
| | | if (widgetCondition.getProjectIds().size() > 0) { |
| | | SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition); |
| | | if (this.userWorkspaceService.checkWorkspaceManager(user)) { |
| | | if (this.userWorkspaceService.checkWorkspaceManager(user) |
| | | || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)) { |
| | | progressingProjectDetails = this.widgetMapper.findProjectProgressAll(widgetCondition); |
| | | } else { |
| | | progressingProjectDetails = this.widgetMapper.findProjectProgress(widgetCondition); |
| | |
| | | |
| | | if (widgetCondition.getProjectIds().size() > 0) { |
| | | SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition); |
| | | this.SetMyDepartmentId(widgetCondition); |
| | | todayCount = this.widgetMapper.countTodayMyAssigneeIssue(widgetCondition); |
| | | assigneeIssues = this.widgetMapper.findMyAssigneeIssue(widgetCondition); |
| | | totalCount = this.widgetMapper.countMyAssigneeIssue(widgetCondition); |
| | | } |
| | | |
| | | |
| | | // 0.156 - 0.166 |
| | | int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1; |
| | |
| | | // 위젯 검색 조건을 만들고 전체 프로젝트 정보를 리턴한다. |
| | | Map<String, Object> results = this.makeWidgetConditionAllProject(widgetCondition, getWidgetCondition); |
| | | |
| | | widgetCondition.setLoginUserId(this.webAppUtil.getLoginId()); |
| | | widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); |
| | | User user = this.webAppUtil.getLoginUserObject(); |
| | | UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); |
| | | |
| | | if (widgetCondition.getProjectId() != null) { |
| | | SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition); |
| | | List<Map<String, Object>> projectMemberIssues = this.widgetMapper.findProjectMemberIssue(widgetCondition); |
| | | List<Map<String, Object>> projectMemberIssues = Lists.newArrayList(); |
| | | if (this.userWorkspaceService.checkWorkspaceManager(user) |
| | | || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)) { |
| | | projectMemberIssues = this.widgetMapper.findProjectMemberIssue(widgetCondition); |
| | | } else { |
| | | projectMemberIssues = this.widgetMapper.findProjectMemberIssueByDepartment(widgetCondition); |
| | | } |
| | | |
| | | for (Map<String, Object> projectMemberIssue : projectMemberIssues) { |
| | | //String departmentName = MapUtil.getString(projectMemberIssue, "departmentName"); |
| | |
| | | } |
| | | |
| | | List<Map<String, Object>> results = Lists.newArrayList(); |
| | | User user = this.webAppUtil.getLoginUserObject(); |
| | | UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); |
| | | |
| | | if (widgetCondition.getProjectIds().size() > 0) { |
| | | SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition); |
| | | results = this.widgetMapper.findByStandIssueStatus(widgetCondition); |
| | | if (this.userWorkspaceService.checkWorkspaceManager(user) |
| | | || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE)) { |
| | | results = this.widgetMapper.findByStandIssueStatus(widgetCondition); |
| | | }else { |
| | | results = this.widgetMapper.findByStandIssueStatusOfDepartment(widgetCondition); |
| | | } |
| | | } |
| | | |
| | | for (Map<String, Object> result : results) { |
| | |
| | | public void findByStandIssueType(Map<String, Object> resJsonData, WidgetCondition widgetCondition, Boolean getWidgetCondition) { |
| | | // 위젯 검색 조건을 얻어야 할 상황일 때 - 화면에서 탭을 눌러 데이터를 재요청했을 때 위젯 검색 조건을 만들고 전체 프로젝트 정보를 리턴한다. |
| | | Map<String, Object> results = this.makeWidgetConditionAllProject(widgetCondition, getWidgetCondition); |
| | | |
| | | User user = this.webAppUtil.getLoginUserObject(); |
| | | UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); |
| | | if (widgetCondition.getProjectId() != null) { |
| | | SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition); |
| | | List<Map<String, Object>> issueTypeIssues = this.widgetMapper.findByStandIssueType(widgetCondition); |
| | | List<Map<String, Object>> issueTypeIssues = Lists.newArrayList(); |
| | | if (this.userWorkspaceService.checkWorkspaceManager(user) |
| | | || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE)) { |
| | | issueTypeIssues = this.widgetMapper.findByStandIssueType(widgetCondition); |
| | | } else { |
| | | issueTypeIssues = this.widgetMapper.findByStandIssueTypeOfDepartment(widgetCondition); |
| | | } |
| | | // 이슈 정보 |
| | | results.put("issues", issueTypeIssues); |
| | | } else { |
| | |
| | | List<Map<String, Object>> severityIssues = Lists.newArrayList(); |
| | | Long totalCount = 0L; |
| | | |
| | | widgetCondition.setLoginUserId(this.webAppUtil.getLoginId()); |
| | | widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); |
| | | User user = this.webAppUtil.getLoginUserObject(); |
| | | UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); |
| | | |
| | | if (widgetCondition.getProjectIds().size() > 0) { |
| | | SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition); |
| | | |
| | | severityCounts = this.widgetMapper.countSeverityIssue(widgetCondition); |
| | | severityIssues = this.widgetMapper.findSeverityIssues(widgetCondition); |
| | | totalCount = this.widgetMapper.countSearchIssue(widgetCondition); |
| | | if (this.userWorkspaceService.checkWorkspaceManager(user) |
| | | || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE)) { |
| | | severityCounts = this.widgetMapper.countSeverityIssue(widgetCondition); |
| | | severityIssues = this.widgetMapper.findSeverityIssues(widgetCondition); |
| | | totalCount = this.widgetMapper.countSearchIssue(widgetCondition); |
| | | }else { |
| | | SetMyDepartmentId(widgetCondition); |
| | | severityCounts = this.widgetMapper.countSeverityIssueByDepartment(widgetCondition); |
| | | severityIssues = this.widgetMapper.findSeverityIssuesByDepartment(widgetCondition); |
| | | totalCount = this.widgetMapper.countSearchIssueByDepartment(widgetCondition); |
| | | } |
| | | } |
| | | |
| | | Long criticalIssueCount = 0L, majorIssueCount = 0L, minorIssueCount = 0L, trivialIssueCount = 0L; |
| | |
| | | // 나에게 할당된 이슈 정보를 엑셀로 다운로드 한다. |
| | | private ExportExcelVo downloadExcelMyAssigneeIssue() { |
| | | WidgetCondition widgetCondition = this.makeWidgetCondition(); |
| | | |
| | | /*widgetCondition.setLoginUserId(this.webAppUtil.getLoginId()); |
| | | widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); |
| | | User user = this.webAppUtil.getLoginUserObject();*/ |
| | | |
| | | // 나에게 할당된 이슈 |
| | | List<Map<String, Object>> assigneeIssues = Lists.newArrayList(); |
| | | if (widgetCondition.getProjectIds().size() > 0) { |
| | | //if (this.userWorkspaceService.checkWorkspaceManager(user)) { |
| | | assigneeIssues = this.widgetMapper.findMyAssigneeIssue(this.makeWidgetCondition()); |
| | | /*} else { |
| | | assigneeIssues = this.widgetMapper.findMyAssigneeIssueByDepartment(this.makeWidgetCondition()); |
| | | }*/ |
| | | } |
| | | |
| | | ExportExcelVo excelInfo = new ExportExcelVo(); |