대시보드 - 멤버별 진행률 하위 프로젝트와 합쳐서 보여주는 함수 생성 및 파트너리스트 사이드바 수정
| | |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, usePartnerVos); |
| | | } |
| | | } |
| | | |
| | | /*@Override |
| | | @Transactional |
| | | public void findMailTargetAll(Map<String, Object> resJsonData, IssueCondition condition, Pageable pageable) { |
| | | IssueVo issueVo = new IssueVo(); |
| | | //Long issueId = MapUtil.getLong(params, "issueId"); |
| | | Long issueId = condition.getId(); |
| | | |
| | | List<String> emailList = Lists.newArrayList(); |
| | | |
| | | if(issueId != null){ |
| | | Issue issue = this.getIssue(issueId); |
| | | issueVo = ConvertUtil.copyProperties(issue, IssueVo.class); |
| | | this.setIssueCompanyField(issue, issueVo); //업체 정보 세팅 |
| | | this.setIssueIspField(issue, issueVo); //ISP 정보 세팅 |
| | | this.setIssueHostingField(issue, issueVo); //HOSTING 정보 세팅 |
| | | for(IssueCompanyVo issueCompanyVo : issueVo.getIssueCompanyVos()) { |
| | | emailList.add(issueCompanyVo.getEmail()); |
| | | } |
| | | for(IssueIspVo issueIspVo : issueVo.getIssueIspVos()) { |
| | | emailList.add(issueIspVo.getEmail()); |
| | | } |
| | | for(IssueHostingVo issueHostingVo : issueVo.getIssueHostingVos()) { |
| | | emailList.add(issueHostingVo.getEmail()); |
| | | } |
| | | |
| | | } |
| | | |
| | | Long totalCount = this.issueMapper.count(condition); |
| | | int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1; |
| | | |
| | | condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); |
| | | condition.setPageSize(pageable.getPageSize()); |
| | | //resJsonData.put(Constants.RES_KEY_CONTENTS, emailList); |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, emailList); |
| | | resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(), |
| | | totalPage, totalCount)); |
| | | }*/ |
| | | |
| | | /*@Override |
| | | @Transactional |
| | | public void findMailTargetCompany(Map<String, Object> resJsonData, Map<String, Object> params) { |
| | | IssueVo issueVo = new IssueVo(); |
| | | Long issueId = MapUtil.getLong(params, "issueId"); |
| | | |
| | | List<String> emailList = Lists.newArrayList(); |
| | | |
| | | if(issueId != null){ |
| | | Issue issue = this.getIssue(issueId); |
| | | issueVo = ConvertUtil.copyProperties(issue, IssueVo.class); |
| | | this.setIssueCompanyField(issue, issueVo); //업체 정보 세팅 |
| | | for(IssueCompanyVo issueCompanyVo : issueVo.getIssueCompanyVos()) { |
| | | emailList.add(issueCompanyVo.getEmail()); |
| | | } |
| | | } |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, emailList); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void findMailTargetIsp(Map<String, Object> resJsonData, Map<String, Object> params) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void findMailTargetHosting(Map<String, Object> resJsonData, Map<String, Object> params) { |
| | | |
| | | }*/ |
| | | } |
| | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 메일 발송 대상자 목록 조회 |
| | | /*@RequestMapping(value = "/issue/findMailTargetAll", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> findMailTargetAll(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params)); |
| | | |
| | | // this.issueService.findMailTargetAll(resJsonData, IssueCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | }*/ |
| | | |
| | | |
| | | /*// 업체 담당자 메일 목록 조회 |
| | | @RequestMapping(value = "/issue/findMailTargetCompany", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> findMailTargetCompany(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | |
| | | this.issueService.findMailTargetCompany(resJsonData, params.get(Constants.REQ_KEY_CONTENT)); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // ISP 담당자 메일 목록 조회 |
| | | @RequestMapping(value = "/issue/findMailTargetIsp", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> findMailTargetIsp(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | |
| | | this.issueService.findMailTargetIsp(resJsonData, params.get(Constants.REQ_KEY_CONTENT)); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 호스팅 담당자 메일 목록 조회 |
| | | @RequestMapping(value = "/issue/findMailTargetHosting", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> findMailTargetHosting(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | |
| | | this.issueService.findMailTargetHosting(resJsonData, params.get(Constants.REQ_KEY_CONTENT)); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | }*/ |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | // 함수 모음 |
| | | $scope.fn = { |
| | | findAllWidget : findAllWidget // 대시보드 위젯 전체 조회 |
| | | findAllWidget : findAllWidget, // 대시보드 위젯 전체 조회 |
| | | filterMembers : filterMembers // 멤버별 진행률 - 메인 프로젝트 + 하위 프로젝트 합쳐서 보여주기 |
| | | }; |
| | | |
| | | // 변수 모음 |
| | |
| | | issueTypeWidget : null, // 이슈 유형별 이슈 현황 |
| | | severityIssueWidget: null, // 중요도 별 이슈 현황 |
| | | }; |
| | | |
| | | function filterMembers(result) { |
| | | const members = result.data.memberProgressWidget.members; |
| | | var filterMembers = members.filter(function(item, idx){ |
| | | return members.findIndex(function(item2, idx2){ |
| | | return item.departmentName === item2.departmentName |
| | | }) == idx; |
| | | }); |
| | | |
| | | var departmentNames = []; |
| | | angular.forEach(filterMembers, function (member) { |
| | | departmentNames.push(member.departmentName); |
| | | }); |
| | | var completeCounts = []; |
| | | var delayCounts = []; |
| | | var remainCounts = []; |
| | | |
| | | for(var j=0; j<departmentNames.length; j++){ //배열 초기값 선언 |
| | | completeCounts[j] = 0; |
| | | delayCounts[j] = 0; |
| | | remainCounts[j] = 0; |
| | | } |
| | | |
| | | for(var i=0; i<members.length; i++){ |
| | | for(var j=0; j<departmentNames.length; j++){ |
| | | if(members[i].departmentName === departmentNames[j]){ |
| | | completeCounts[j] += members[i].completeCount; |
| | | delayCounts[j] += members[i].delayCount; |
| | | remainCounts[j] += members[i].remainCount; |
| | | } |
| | | } |
| | | } |
| | | for(var i=0; i<filterMembers.length; i++){ |
| | | filterMembers[i].completeCount = completeCounts[i] |
| | | filterMembers[i].delayCount = delayCounts[i] |
| | | filterMembers[i].remainCount = remainCounts[i] |
| | | } |
| | | result.data.memberProgressWidget.members = filterMembers; |
| | | } |
| | | |
| | | // 대시보드 위젯 전체 조회 |
| | | function findAllWidget() { |
| | |
| | | // 나의 이슈 현황 정보를 저장한다. |
| | | $scope.vm.myIssueWidget = result.data.myIssueWidget; |
| | | |
| | | const members = result.data.memberProgressWidget.members; |
| | | var filterMembers = members.filter(function(item, idx){ |
| | | return members.findIndex(function(item2, idx2){ |
| | | return item.departmentName === item2.departmentName |
| | | }) == idx; |
| | | }); |
| | | |
| | | var departmentNames = []; |
| | | angular.forEach(filterMembers, function (member) { |
| | | departmentNames.push(member.departmentName); |
| | | }); |
| | | var completeCounts = []; |
| | | var delayCounts = []; |
| | | var remainCounts = []; |
| | | |
| | | for(var j=0; j<departmentNames.length; j++){ //배열 초기값 선언 |
| | | completeCounts[j] = 0; |
| | | delayCounts[j] = 0; |
| | | remainCounts[j] = 0; |
| | | } |
| | | |
| | | for(var i=0; i<members.length; i++){ |
| | | for(var j=0; j<departmentNames.length; j++){ |
| | | if(members[i].departmentName === departmentNames[j]){ |
| | | completeCounts[j] += members[i].completeCount; |
| | | delayCounts[j] += members[i].delayCount; |
| | | remainCounts[j] += members[i].remainCount; |
| | | } |
| | | } |
| | | } |
| | | for(var i=0; i<filterMembers.length; i++){ |
| | | filterMembers[i].completeCount = completeCounts[i] |
| | | filterMembers[i].delayCount = delayCounts[i] |
| | | filterMembers[i].remainCount = remainCounts[i] |
| | | } |
| | | result.data.memberProgressWidget.members = filterMembers; |
| | | |
| | | // 멤버별 진행률을 저장한다. |
| | | $scope.fn.filterMembers(result);// 하위프로젝트가 있을 경우 합쳐서 보여주기 |
| | | $scope.vm.memberProgressWidget = result.data.memberProgressWidget; |
| | | // 전체 이슈 처리 현황 정보를 저장한다. |
| | | $scope.vm.issueCompleteWidget = result.data.issueCompleteWidget; |
| | |
| | | </li> |
| | | |
| | | <li class="sub-header" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_PARTNER')"> |
| | | <span>LIST MANAGEMENT</span> |
| | | <span>PARTNER LIST</span> |
| | | </li> |
| | | <li class="" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_PARTNER')"> |
| | | <a ui-sref="companyField.list" tabindex="-1"> |