OWL ITS + 탐지시스템(인터넷 진흥원)
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;