From 6dcba6ad1abcf6b757166b97ee032f3b1ad18f89 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 토, 27 11월 2021 22:57:38 +0900
Subject: [PATCH] 이슈 추가,수정 페이지에서 이슈유형별로 적용한 파트너 목록 보이기 수정 완료

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java   |   16 ++++++++
 src/main/webapp/scripts/components/utils/autoComplete.controller.js |    2 
 src/main/webapp/views/issueType/issueTypeAdd.html                   |    2 
 src/main/webapp/views/issueType/issueTypeModify.html                |    2 
 src/main/java/kr/wisestone/owl/service/IssueService.java            |    2 +
 src/main/webapp/scripts/components/issue/issue.service.js           |    6 +++
 src/main/webapp/scripts/app/issue/issueList.controller.js           |   23 +++++++++++
 src/main/java/kr/wisestone/owl/web/controller/IssueController.java  |   12 ++++++
 src/main/webapp/scripts/app/issue/issueDetail.controller.js         |    4 +-
 src/main/webapp/scripts/app/issue/issueAdd.controller.js            |   29 ++++++++++++--
 src/main/webapp/scripts/app/issue/issueModify.controller.js         |   11 +++--
 11 files changed, 96 insertions(+), 13 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/IssueService.java b/src/main/java/kr/wisestone/owl/service/IssueService.java
index 71d7f57..09eccea 100644
--- a/src/main/java/kr/wisestone/owl/service/IssueService.java
+++ b/src/main/java/kr/wisestone/owl/service/IssueService.java
@@ -70,4 +70,6 @@
     Map<String, Object> findTask(IssueCondition taskCondition);
 
     void modifyParentIssue(IssueForm issueForm);
+
+    void findPartner(Map<String, Object> resJsonData, Map<String, Object> params);
 }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
index cdcc647..d1b2243 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -2684,4 +2684,20 @@
         this.issueRepository.saveAndFlush(issue);
 
     }
+
+    @Override
+    public void findPartner(Map<String, Object> resJsonData, Map<String, Object> params) {
+        Long issueTypeId = MapUtil.getLong(params, "issueTypeId");
+        IssueType issueType = this.issueTypeService.getIssueType(issueTypeId); // �씠�뒋�쓽 �씠�뒋�쑀�삎 媛앹껜
+        Integer using = issueType.getUsePartner() != null ? issueType.getUsePartner().intValue() : 0; // �씠�뒋�쑀�삎蹂꾨줈 �궗�슜以묒씤 �뾽泥�/ISP/�샇�뒪�똿 媛�
+
+        List<UsePartnerVo> usePartnerVos = Lists.newArrayList();
+        for (Integer usePartner : UsePartner.partners) { //1(�뾽泥�), 2(ISP), 4(�샇�뒪�똿)
+            UsePartnerVo usePartnerVo = UsePartner.checkUsePartner(using, usePartner);
+            if (usePartnerVo != null) {
+                usePartnerVos.add(usePartnerVo);
+            }
+            resJsonData.put(Constants.RES_KEY_CONTENTS, usePartnerVos);
+        }
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
index 3f405ff..c6342eb 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
@@ -63,6 +63,18 @@
         return this.setSuccessMessage(resJsonData);
     }
 
+    //  �씠�뒋 議고쉶
+    @RequestMapping(value = "/issue/findPartner", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> findPartner(@RequestBody Map<String, Map<String, Object>> params) {
+        Map<String, Object> resJsonData = new HashMap<>();
+
+        this.issueService.findPartner(resJsonData, params.get(Constants.REQ_KEY_CONTENT));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
     //  �씠�뒋 �긽�꽭 議고쉶
     @RequestMapping(value = "/issue/detail", produces = MediaType.APPLICATION_JSON_VALUE)
     public
diff --git a/src/main/webapp/scripts/app/issue/issueAdd.controller.js b/src/main/webapp/scripts/app/issue/issueAdd.controller.js
index 94947eb..1985f6c 100644
--- a/src/main/webapp/scripts/app/issue/issueAdd.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -36,10 +36,12 @@
                     removeDepartment : removeDepartment,  //  �떞�떦遺��꽌 �궘�젣
                     setIssueTypeTemplate : setIssueTypeTemplate,    //  �씠�뒋 �쑀�삎 �뀥�뵆由� �쟻�슜�븯湲�
                     startExecute : startExecute, //  而⑦듃濡� 濡쒕뵫�떆 泥섏쓬�쑝濡� �떆�옉�릺�뒗 �븿�닔
-                    containsPartner : containsPartner
+                    containsPartner : containsPartner,
+                    getPartners : getPartners
                 };
 
                 $scope.vm = {
+                    partnerVos : "",
                     form : {
                         title : "",    //  �젣紐�
                         description : "",   //  �궡�슜
@@ -138,6 +140,10 @@
                         //  �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 媛��졇�삤湲�
                         $scope.fn.getIssueTypeCustomFields();
                     }
+                });
+
+                $scope.$watch("vm.form.issueTypeId", function (newValue, oldValue) {
+                    $scope.vm.partnerVos = $scope.fn.getPartners();
                 });
 
                 //  �꽟癒몃끂�듃 �씠誘몄� �뾽濡쒕뱶
@@ -314,8 +320,8 @@
                 function containsPartner(name) {
                     var result = false;
 
-                    if ($scope.vm.viewer.usePartnerVo != null) {
-                        $scope.vm.viewer.usePartnerVo.forEach(function (partnerVo) {
+                    if ($scope.vm.partnerVos != null) {
+                        $scope.vm.partnerVos.forEach(function (partnerVo) {
                             if (name === partnerVo.name) {
                                 result = true;
                             }
@@ -755,13 +761,28 @@
                     }
                 }
 
+                function getPartners() {
+                    var content = {
+                        issueTypeId : $scope.vm.form.issueTypeId
+                    };
+                    Issue.findPartners($resourceProvider.getContent(
+                        content,
+                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
+                        if (result.data.message.status === "success") {
+                            $scope.vm.partnerVos = result.data.data;
+                        }
+                    });
+
+                }
+
                 //  理쒖큹 �떎�뻾
                 function startExecute() {
 
                     var promises = {
                         getIssueTypes : $scope.fn.getIssueTypes(),
                         getPriorities : $scope.fn.getPriorities(),
-                        getSeverities : $scope.fn.getSeverities()
+                        getSeverities : $scope.fn.getSeverities(),
+                        getPartners : $scope.fn.getPartners()
                     };
                     $q.all(promises).then(function (results) {
                         // �쁽�옱 �봽濡쒖젥�듃 �꽕�젙
diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
index 42f532e..8eb6e19 100644
--- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -786,8 +786,8 @@
                 function containsPartner(name) {
                     var result = false;
 
-                    if ($scope.vm.viewer.usePartnerVo != null) {
-                        $scope.vm.viewer.usePartnerVo.forEach(function (partnerVo) {
+                    if ($scope.vm.viewer.usePartnerVos != null) {
+                        $scope.vm.viewer.usePartnerVos.forEach(function (partnerVo) {
                             if (name === partnerVo.name) {
                                 result = true;
                             }
diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js
index 01f4279..dd3880b 100644
--- a/src/main/webapp/scripts/app/issue/issueList.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -28,6 +28,7 @@
                     listView : listView,    //  紐⑸줉 �솕硫댁쑝濡� 蹂�寃�
                     importExcel : importExcel,  //  �뿊�� import 湲곕뒫 �뙘�뾽 �샇異�
                     getIssueTypes : getIssueTypes,  //  �씠�뒋 �쑀�삎 紐⑸줉�쓣 媛��졇�삩�떎.
+                    getUsePartner : getUsePartner,  //  �씠�뒋 �쑀�삎 蹂� �궗�슜�븯�뒗 �뙆�듃�꼫 紐⑸줉�쓣 媛��졇�삩�떎.
                     getPriorities : getPriorities,  //  �슦�꽑�닚�쐞 紐⑸줉�쓣 媛��졇�삩�떎.
                     getSeverities : getSeverities,  //  以묒슂�룄 紐⑸줉�쓣 媛��졇�삩�떎.
                     getIssueStatuses : getIssueStatuses,    //  �씠�뒋 �긽�깭 紐⑸줉�쓣 媛��졇�삩�떎.
@@ -42,6 +43,7 @@
                 //  蹂��닔
                 $scope.vm = {
                     issueTypeId : "",
+                    partnerVos : "",
                     search : {
                         title : "", //  �젣紐�
                         description : "",   //  �궡�슜
@@ -71,6 +73,7 @@
                     projects : [],  //  �봽濡쒖젥�듃
                     issueStatuses : [], //  �씠�뒋 �긽�깭
                     issueTypes : [],    //  �씠�뒋 �쑀�삎
+                    partners : [],    //  �씠�뒋 �쑀�삎
                     priorities : [],    //  �슦�꽑 �닚�쐞
                     severities : [],    //  以묒슂�룄
                     users : [], //  �떞�떦�옄
@@ -738,6 +741,26 @@
                     return deferred.promise;
                 }
 
+                //  �씠�뒋�쑀�삎 蹂� �뙆�듃�꼫 紐⑸줉
+                function getUsePartner() {
+                    var deferred = $q.defer();
+                    $scope.vm.partners = [];
+
+                    Issue.findPartners($resourceProvider.getContent({},
+                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
+                        if (result.data.message.status === "success") {
+                            $scope.vm.partnerVos = result.data.content;
+                        }
+                        else {
+                            SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // �슦�꽑�닚�쐞 紐⑸줉 議고쉶 �떎�뙣
+                        }
+
+                        deferred.resolve(result.data.data);
+                    });
+
+                    return deferred.promise;
+                }
+
                 //  �슦�꽑�닚�쐞 紐⑸줉
                 function getPriorities() {
                     var deferred = $q.defer();
diff --git a/src/main/webapp/scripts/app/issue/issueModify.controller.js b/src/main/webapp/scripts/app/issue/issueModify.controller.js
index 5c34166..f4b3e35 100644
--- a/src/main/webapp/scripts/app/issue/issueModify.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueModify.controller.js
@@ -896,12 +896,14 @@
                 }
 
                 function getPartners() {
-
-                    HostingField.getPartnerList($resourceProvider.getContent(
-                        {},
+                    var content = {
+                        issueTypeId : $scope.vm.form.issueTypeId
+                    };
+                    Issue.findPartners($resourceProvider.getContent(
+                        content,
                         $resourceProvider.getPageContent(0, 1))).then(function (result) {
                         if (result.data.message.status === "success") {
-                            $scope.vm.partnerVos = result.data.content;
+                            $scope.vm.partnerVos = result.data.data;
                         }
                     });
 
@@ -913,6 +915,7 @@
                     var promises = {
                         detail : $scope.fn.detail(),
                         getIssueTypes : $scope.fn.getIssueTypes(),
+                        getPriorities : $scope.fn.getPriorities(),
                         getSeverities : $scope.fn.getSeverities(),
                         getPartners : $scope.fn.getPartners()
                     };
diff --git a/src/main/webapp/scripts/components/issue/issue.service.js b/src/main/webapp/scripts/components/issue/issue.service.js
index 1c48a72..4c28715 100644
--- a/src/main/webapp/scripts/components/issue/issue.service.js
+++ b/src/main/webapp/scripts/components/issue/issue.service.js
@@ -33,6 +33,12 @@
                     return response;
                 });
             },
+            findPartners : function (conditions) {
+                return $http.post("issue/findPartner", conditions).then(function (response) {
+                    $log.debug("�궗�슜�븯�뒗 �뙆�듃�꼫 紐⑸줉 �뜲�씠�꽣 : ", response);
+                    return response;
+                });
+            },
             add : function (conditions) {
                 conditions.url = "issue/add";
                 return $upload.upload(conditions).progress(function (evt) {
diff --git a/src/main/webapp/scripts/components/utils/autoComplete.controller.js b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
index abdc4fb..cdb0fce 100644
--- a/src/main/webapp/scripts/components/utils/autoComplete.controller.js
+++ b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
@@ -386,7 +386,7 @@
 
                     var deferred = $q.defer();
 
-                    HostingField.getCompanyList($resourceProvider.getContent(         //  �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎.
+                    HostingField.getPartnerList($resourceProvider.getContent(         //  �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎.
                         conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) {
                         if (result.data.message.status === "success") {
                             if ($rootScope.isDefined(callBack)) {
diff --git a/src/main/webapp/views/issueType/issueTypeAdd.html b/src/main/webapp/views/issueType/issueTypeAdd.html
index 3324204..e496304 100644
--- a/src/main/webapp/views/issueType/issueTypeAdd.html
+++ b/src/main/webapp/views/issueType/issueTypeAdd.html
@@ -63,7 +63,7 @@
                 <js-autocomplete-multi data-input-name="departments"
                                        selected-model="vm.form.companies"
                                        search="vm.companyName"
-                                       source="fn.getCompanyList(vm.companyName, vm.form.companies)"
+                                       source="fn.getPartnerList(vm.companyName, vm.form.companies)"
                                        input-disabled="false"
                                        translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }"
                                        extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true }"></js-autocomplete-multi>
diff --git a/src/main/webapp/views/issueType/issueTypeModify.html b/src/main/webapp/views/issueType/issueTypeModify.html
index 8c8fe27..ccf2123 100644
--- a/src/main/webapp/views/issueType/issueTypeModify.html
+++ b/src/main/webapp/views/issueType/issueTypeModify.html
@@ -68,7 +68,7 @@
                 <js-autocomplete-multi data-input-name="departments"
                                        selected-model="vm.form.companies"
                                        search="vm.companyName"
-                                       source="fn.getCompanyList(vm.companyName, vm.form.companies)"
+                                       source="fn.getPartnerList(vm.companyName, vm.form.companies)"
                                        input-disabled="false"
                                        translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }"
                                        extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true }"></js-autocomplete-multi>

--
Gitblit v1.8.0