OWL ITS + 탐지시스템(인터넷 진흥원)
대시보드 - 멤버별 진행률 하위 프로젝트와 합쳐서 보여주는 함수 생성 및 파트너리스트 사이드바 수정
4개 파일 변경됨
202 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 69 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/controller/IssueController.java 51 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js 80 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/common/sidebar.html 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -2829,73 +2829,4 @@
            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) {
    }*/
}
src/main/java/kr/wisestone/owl/web/controller/IssueController.java
@@ -164,55 +164,4 @@
        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);
    }*/
}
src/main/webapp/scripts/app/widget/widgetDashBoard.controller.js
@@ -12,7 +12,8 @@
                //  함수 모음
                $scope.fn = {
                    findAllWidget : findAllWidget   //  대시보드 위젯 전체 조회
                    findAllWidget : findAllWidget,   //  대시보드 위젯 전체 조회
                    filterMembers : filterMembers   //  멤버별 진행률 - 메인 프로젝트 + 하위 프로젝트 합쳐서 보여주기
                };
                //  변수 모음
@@ -31,6 +32,45 @@
                    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() {
@@ -52,44 +92,8 @@
                            //  나의 이슈 현황 정보를 저장한다.
                            $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;
src/main/webapp/views/common/sidebar.html
@@ -326,7 +326,7 @@
        </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">