OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2022-02-15 d2d33c7634f26a2cfbda6768059ae242c1866773
src/main/webapp/scripts/app/issue/issueModify.controller.js
@@ -39,7 +39,12 @@
                    setIssueTypeTemplate : setIssueTypeTemplate,    //  이슈 유형 템플릿 적용하기
                    startExecute : startExecute, //  최초 실행
                    containsPartner : containsPartner,
                    getPartners : getPartners
                    getPartners : getPartners,
                    getCompanyTypeListCallBack : getCompanyTypeListCallBack,
                    getParentSectorListCallBack : getParentSectorListCallBack,
                    getChildSectorListCallBack : getChildSectorListCallBack,
                    getRegionListCallBack : getRegionListCallBack,
                    getStatusListCallBack : getStatusListCallBack,
                };
                $scope.vm = {
@@ -55,7 +60,7 @@
                        issueCompanyFields : [], // 업체정보
                        issueIspFields : [], // ISP 정보
                        issueHostingFields : [], // 호스팅정보
                        issueTypeId : "",   //  이슈 유형 아이디
                        issueTypeId : parameter.issueTypeId,   //  이슈 유형 아이디
                        priorityId : "",    //  우선순위 아이디
                        severityId : "",    //  중요도 아이디
                        issueStatusId : "", //  이슈 상태 아이디
@@ -66,6 +71,23 @@
                        startCompleteDateRange : "", //  시작일 ~ 종료일
                        issueCustomFields : [],  //  이슈에서 사용되는 사용자 정의 필드
                        removeFiles : [],   //  삭제한 파일 정보
                        companyTypeId : "",
                        companyType : "", //기업구분
                        parentSectorId : "",
                        parentSector : "", //업종(대분류)
                        childSectorId : "",
                        childSector : "", //업종(중분류)
                        regionId : "",
                        region : "", //지역
                        statusId : "",
                        status : "", //상태
                    },
                    typeCategory : {
                        companyType : "COMPANYTYPE",
                        parentSector : "PARENTSECTOR",
                        childSector : "CHILDSECTOR",
                        region : "REGION",
                        status : "STATUS"
                    },
                    projectName : "",   //  프로젝트 명 검색
                    userName : "",  //  사용자 검색
@@ -115,6 +137,26 @@
                            totalPage : 0
                        },
                        hostingField : {
                            page : 0,
                            totalPage : 0
                        },
                        companyType : {
                            page : 0,
                            totalPage : 0
                        },
                        parentSector : {
                            page : 0,
                            totalPage : 0
                        },
                        childSector : {
                            page : 0,
                            totalPage : 0
                        },
                        region : {
                            page : 0,
                            totalPage : 0
                        },
                        status : {
                            page : 0,
                            totalPage : 0
                        }
@@ -356,6 +398,39 @@
                    $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getCompanyTypeListCallBack(result) {
                    $scope.vm.autoCompletePage.companyType.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getParentSectorListCallBack(result, value) {
                    if (value === "") {
                        $scope.vm.form.parentSectorId = "";
                        if ($rootScope.isDefined($scope.vm.form.parentSectors) && $rootScope.isDefined($scope.vm.form.parentSectors[0])) {
                            $scope.vm.form.parentSectors[0].id = "";
                        }
                        $scope.vm.form.childSectorId = "";
                        $scope.vm.form.childSector = "";
                        $scope.vm.form.childSectors = [];
                    }
                    $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getChildSectorListCallBack(result) {
                    $scope.vm.autoCompletePage.childSector.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getRegionListCallBack(result) {
                    $scope.vm.autoCompletePage.region.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getStatusListCallBack(result) {
                    $scope.vm.autoCompletePage.status.totalPage = result.data.page.totalPage;
                }
                function formCheck(formInvalid) {
                    if (formInvalid) {
@@ -369,59 +444,133 @@
                    return false;
                }
                $scope.$on("companyTypeEvent", function (event, result) {
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.form.companyTypeId = result[0].id;
                    }
                });
                $scope.$on("parentSectorEvent", function (event, result) {
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.form.parentSectorId = result[0].id;
                    }  else {
                        $scope.vm.form.parentSectorId = "";
                        if ($rootScope.isDefined($scope.vm.form.parentSectors) && $rootScope.isDefined($scope.vm.form.parentSectors[0])) {
                            $scope.vm.form.parentSectors[0].id = "";
                        }
                    }
                    $scope.vm.form.childSectorId = "";
                    $scope.vm.form.childSector = "";
                    $scope.vm.form.childSectors = [];
                });
                $scope.$on("childSectorEvent", function (event, result) {
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.form.childSectorId = result[0].id;
                    }
                });
                $scope.$on("regionEvent", function (event, result) {
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.form.regionId = result[0].id;
                    }
                });
                $scope.$on("statusEvent", function (event, result) {
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.form.statusId = result[0].id;
                    }
                });
                // 업체정보 결과 값 Event 처리(set)
                $scope.$on("companyFieldEvent", function (event, result) {
                    var ispFieldVo = result[0].ispFieldVo;
                    var hostingFieldVo = result[0].hostingFieldVo;
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        var ispFieldVo = result[0].ispFieldVo;
                        var hostingFieldVo = result[0].hostingFieldVo;
                    $scope.vm.companyId = result[0].id;
                    $scope.vm.companyName = result[0].name;
                    $scope.vm.companyManager = result[0].manager;
                    $scope.vm.companyTel = result[0].tel;
                    $scope.vm.companyEmail = result[0].email;
                    $scope.vm.companyUrl = result[0].url;
                    $scope.vm.companyMemo = result[0].memo;
                        $scope.vm.companyId = result[0].id;
                        $scope.vm.companyName = result[0].name;
                        $scope.vm.companyManager = result[0].manager;
                        $scope.vm.companyTel = result[0].tel;
                        $scope.vm.companyEmail = result[0].email;
                        $scope.vm.companyUrl = result[0].url;
                        $scope.vm.companyMemo = result[0].memo;
                        $scope.vm.form.companyTypeId = result[0].companyTypeId;
                        $scope.vm.form.parentSectorId = result[0].parentSectorId;
                        $scope.vm.form.childSectorId = result[0].childSectorId;
                        $scope.vm.form.regionId = result[0].regionId;
                        $scope.vm.form.statusId = result[0].statusId;
                        $scope.vm.form.companyType = result[0].companyTypeName;
                        $scope.vm.form.parentSector = result[0].parentSectorName;
                        $scope.vm.form.childSector = result[0].childSectorName;
                        $scope.vm.form.region = result[0].regionName;
                        $scope.vm.form.status = result[0].statusName;
                    $scope.vm.ispName = ispFieldVo.name;
                    $scope.vm.ispCode = ispFieldVo.code;
                    $scope.vm.ispManager = ispFieldVo.manager;
                    $scope.vm.ispTel = ispFieldVo.tel;
                    $scope.vm.ispEmail = ispFieldVo.email;
                    $scope.vm.ispUrl = ispFieldVo.url;
                    $scope.vm.ispMemo = ispFieldVo.memo;
                        $scope.vm.ispId = "";
                        $scope.vm.ispName = "";
                        $scope.vm.ispCode = "";
                        $scope.vm.ispManager = "";
                        $scope.vm.ispTel = "";
                        $scope.vm.ispEmail = "";
                        $scope.vm.ispUrl = "";
                        $scope.vm.ispMemo = "";
                    $scope.vm.hostingName = hostingFieldVo.name;
                    $scope.vm.hostingCode = hostingFieldVo.code;
                    $scope.vm.hostingManager = hostingFieldVo.manager;
                    $scope.vm.hostingTel = hostingFieldVo.tel;
                    $scope.vm.hostingEmail = hostingFieldVo.email;
                    $scope.vm.hostingUrl = hostingFieldVo.url;
                    $scope.vm.hostingMemo = hostingFieldVo.memo;
                        $scope.vm.hostingId = "";
                        $scope.vm.hostingName = "";
                        $scope.vm.hostingCode = "";
                        $scope.vm.hostingManager = "";
                        $scope.vm.hostingTel = "";
                        $scope.vm.hostingEmail = "";
                        $scope.vm.hostingUrl = "";
                        $scope.vm.hostingMemo = "";
                        if (ispFieldVo != null) {
                            $scope.vm.form.issueIspFields[0] = angular.copy(ispFieldVo);
                            $scope.vm.ispId = ispFieldVo.id;
                            $scope.vm.ispName = ispFieldVo.name;
                            $scope.vm.ispCode = ispFieldVo.code;
                            $scope.vm.ispManager = ispFieldVo.manager;
                            $scope.vm.ispTel = ispFieldVo.tel;
                            $scope.vm.ispEmail = ispFieldVo.email;
                            $scope.vm.ispUrl = ispFieldVo.url;
                            $scope.vm.ispMemo = ispFieldVo.memo;
                        }
                        if (hostingFieldVo != null) {
                            $scope.vm.form.issueHostingFields[0] = angular.copy(hostingFieldVo);
                            $scope.vm.hostingId = hostingFieldVo.id;
                            $scope.vm.hostingName = hostingFieldVo.name;
                            $scope.vm.hostingCode = hostingFieldVo.code;
                            $scope.vm.hostingManager = hostingFieldVo.manager;
                            $scope.vm.hostingTel = hostingFieldVo.tel;
                            $scope.vm.hostingEmail = hostingFieldVo.email;
                            $scope.vm.hostingUrl = hostingFieldVo.url;
                            $scope.vm.hostingMemo = hostingFieldVo.memo;
                        }
                    }
                });
                // ISP정보 결과 값 Event 처리(set)
                $scope.$on("ispFieldEvent", function (event, result) {
                    $scope.vm.ispId = result[0].id;
                    $scope.vm.ispName = result[0].name;
                    $scope.vm.ispCode = result[0].code;
                    $scope.vm.ispManager = result[0].manager;
                    $scope.vm.ispTel = result[0].tel;
                    $scope.vm.ispEmail = result[0].email;
                    $scope.vm.ispUrl = result[0].url;
                    $scope.vm.ispMemo = result[0].memo;
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.ispId = result[0].id;
                        $scope.vm.ispName = result[0].name;
                        $scope.vm.ispCode = result[0].code;
                        $scope.vm.ispManager = result[0].manager;
                        $scope.vm.ispTel = result[0].tel;
                        $scope.vm.ispEmail = result[0].email;
                        $scope.vm.ispUrl = result[0].url;
                        $scope.vm.ispMemo = result[0].memo;
                    }
                });
                // 호스팅정보 결과 값 Event 처리(set)
                $scope.$on("hostingFieldEvent", function (event, result) {
                    $scope.vm.hostingId = result[0].id;
                    $scope.vm.hostingName = result[0].name;
                    $scope.vm.hostingCode = result[0].code;
                    $scope.vm.hostingManager = result[0].manager;
                    $scope.vm.hostingTel = result[0].tel;
                    $scope.vm.hostingEmail = result[0].email;
                    $scope.vm.hostingUrl = result[0].url;
                    $scope.vm.hostingMemo = result[0].memo;
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.hostingId = result[0].id;
                        $scope.vm.hostingName = result[0].name;
                        $scope.vm.hostingCode = result[0].code;
                        $scope.vm.hostingManager = result[0].manager;
                        $scope.vm.hostingTel = result[0].tel;
                        $scope.vm.hostingEmail = result[0].email;
                        $scope.vm.hostingUrl = result[0].url;
                        $scope.vm.hostingMemo = result[0].memo;
                    }
                });
                function formSubmit() {
@@ -437,6 +586,54 @@
                        companyEmail :$scope.vm.companyEmail,
                        companyUrl : $scope.vm.companyUrl,
                        companyMemo : $scope.vm.companyMemo,
                        companyTypeId : (function () {
                            var companyTypeId = null;
                            if ($scope.vm.form.companyTypes != null && $scope.vm.form.companyTypes.length > 0) {
                                companyTypeId = $scope.vm.form.companyTypes[0].id;
                            } else {
                                companyTypeId = $scope.vm.form.companyTypeId;
                            }
                            return companyTypeId;
                        })(),
                        parentSectorId : (function () {
                            var parentSectorId = null;
                            if ($scope.vm.form.parentSectors != null && $scope.vm.form.parentSectors.length > 0) {
                                parentSectorId = $scope.vm.form.parentSectors[0].id;
                            } else {
                                parentSectorId = $scope.vm.form.parentSectorId;
                            }
                            return parentSectorId;
                        })(),
                        childSectorId : (function () {
                            var childSectorId = null;
                            if ($scope.vm.form.childSectors != null && $scope.vm.form.childSectors.length > 0) {
                                childSectorId = $scope.vm.form.childSectors[0].id;
                            } else {
                                childSectorId = $scope.vm.form.childSectorId;
                            }
                            return childSectorId;
                        })(),
                        regionId : (function () {
                            var regionId = null;
                            if ($scope.vm.form.regions != null && $scope.vm.form.regions.length > 0) {
                                regionId = $scope.vm.form.regions[0].id;
                            } else {
                                regionId = $scope.vm.form.regionId;
                            }
                            return regionId;
                        })(),
                        statusId : (function () {
                            var statusId = null;
                            if ($scope.vm.form.statuses != null && $scope.vm.form.statuses.length > 0) {
                                statusId = $scope.vm.form.statuses[0].id;
                            } else {
                                statusId = $scope.vm.form.statusId;
                            }
                            return statusId;
                        })(),
                        statusName : $scope.vm.form.status,
                        ispName : $scope.vm.ispName,
                        ispCode : $scope.vm.ispCode,
                        ispManager : $scope.vm.ispManager,
@@ -468,9 +665,9 @@
                        issueStatusId : $scope.vm.form.issueStatusId,   //  이슈 상태 아이디
                        companyId : (function () {
                            var companyId = -1;
                            var companyId = null;
                            if ($scope.vm.form.issueCompanyFields.length > 0) {
                            if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0) {
                                companyId = $scope.vm.form.issueCompanyFields[0].id;
                            }
@@ -478,9 +675,9 @@
                        }),
                        ispId : (function () {
                            var ispId = -1;
                            var ispId = null;
                            if ($scope.vm.form.issueIspFields.length > 0) {
                            if ($scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0) {
                                ispId = $scope.vm.form.issueIspFields[0].id;
                            }
@@ -488,7 +685,7 @@
                        }),
                        hostingId : (function () {
                            var hostingId = -1;
                            var hostingId = null;
                            if ($scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0) {
                                hostingId = $scope.vm.form.issueHostingFields[0].id;
@@ -531,7 +728,12 @@
                        issueCompanyFields : (function () {
                            var issueCompanyFields = [];
                            if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0 ){
                                var companyField = $scope.vm.form.issueCompanyFields[0];
                                //사용자가 직접 업체 추가 할 경우
                                if ($rootScope.isDefined(companyField) && companyField.name !== $scope.vm.companyName) {
                                    return issueCompanyFields;
                                }
                                issueCompanyFields.push({
                                    id : companyField.id,
@@ -541,7 +743,13 @@
                                    tel : $scope.vm.companyTel,
                                    email :$scope.vm.companyEmail,
                                    url :$scope.vm.companyUrl,
                                    memo : $scope.vm.companyMemo
                                    memo : $scope.vm.companyMemo,
                                    companyTypeId : $scope.vm.form.companyTypeId,
                                    parentSectorId : $scope.vm.form.parentSectorId,
                                    childSectorId : $scope.vm.form.childSectorId,
                                    regionId : $scope.vm.form.regionId,
                                    statusId : $scope.vm.form.statusId,
                                    statusName : $scope.vm.form.status
                                });
                            }
@@ -550,11 +758,17 @@
                        issueIspFields : (function () {
                            var issueIspFields = [];
                            if ($scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0 ){
                            if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0
                                && $scope.vm.form.issueCompanyFields[0].ispFieldVo != null
                                || $scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0 ){
                                var ispField = $scope.vm.form.issueIspFields[0];
                                //사용자가 직접 ISP 추가 할 경우
                                if ($rootScope.isDefined(ispField) && ispField.name !== $scope.vm.ispName) {
                                    return issueIspFields;
                                }
                                issueIspFields.push({
                                    id : ispField.id,
                                    ispId : $scope.vm.ispId,
                                    code : $scope.vm.ispCode,
                                    name : $scope.vm.ispName,
@@ -572,12 +786,17 @@
                        issueHostingFields : (function () {
                            var issueHostingFields = [];
                            if ($scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0 ){
                            if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0
                                && $scope.vm.form.issueCompanyFields[0].hostingFieldVo != null
                                || $scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0 ){
                                var hostingField = $scope.vm.form.issueHostingFields[0];
                                //사용자가 직접 호스팅 추가 할 경우
                                if ($rootScope.isDefined(hostingField) && hostingField.name !== $scope.vm.hostingName) {
                                    return issueHostingFields;
                                }
                                issueHostingFields.push({
                                    id : hostingField.id,
                                    hostingId : $scope.vm.hostingId,
                                    name : $scope.vm.hostingName,
                                    code : $scope.vm.hostingCode,
@@ -824,8 +1043,8 @@
                //  이슈 상세 정보
                function detail() {
                    $rootScope.spinner = true;
                    var deferred = $q.defer();
                    Issue.detail($resourceProvider.getContent(
                        $scope.vm.search,
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
@@ -857,6 +1076,16 @@
                                    $scope.vm.companyEmail = issueCompanyFieldValue.email;
                                    $scope.vm.companyUrl = issueCompanyFieldValue.url;
                                    $scope.vm.companyMemo = issueCompanyFieldValue.memo;
                                    $scope.vm.form.companyTypeId = issueCompanyFieldValue.companyTypeId;
                                    $scope.vm.form.companyType = issueCompanyFieldValue.companyTypeName;
                                    $scope.vm.form.parentSectorId = issueCompanyFieldValue.parentSectorId;
                                    $scope.vm.form.parentSector = issueCompanyFieldValue.parentSectorName;
                                    $scope.vm.form.childSectorId = issueCompanyFieldValue.childSectorId;
                                    $scope.vm.form.childSector = issueCompanyFieldValue.childSectorName;
                                    $scope.vm.form.regionId = issueCompanyFieldValue.regionId;
                                    $scope.vm.form.region = issueCompanyFieldValue.regionName;
                                    $scope.vm.form.statusId = issueCompanyFieldValue.statusId;
                                    $scope.vm.form.status = issueCompanyFieldValue.statusName;
                                }
                                if (result.data.data.issueIspVos != null && result.data.data.issueIspVos.length > 0) {
                                    $scope.vm.form.issueIspFields = result.data.data.issueIspVos;
@@ -900,10 +1129,9 @@
                        else {
                            SweetAlert.error($filter("translate")("issue.failedToProjectDetails"), result.data.message.message); // 프로젝트 상세 정보 조회 실패
                        }
                        $rootScope.spinner = false;
                        deferred.resolve(result.data.data);
                    });
                    return deferred.promise;
                }
@@ -949,7 +1177,9 @@
                function getPartners() {
                    if($scope.vm.form.issueTypeId === ""){
                        $scope.vm.form.issueTypeId = $rootScope.issueTypeMenu.id
                        if ($rootScope.issueTypeMenu != null) {
                            $scope.vm.form.issueTypeId = $rootScope.issueTypeMenu.id
                        }
                    }
                    var content = {
                        issueTypeId : $scope.vm.form.issueTypeId,