From f820bc3406e6fe88660124b28507f21df6b659ab Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 24 12월 2021 16:47:39 +0900
Subject: [PATCH] 이슈타입 리스트 하위 프로젝트꺼까지 다 보이도록 수정

---
 src/main/webapp/views/issue/issueAdd.html                                          |    1 
 src/main/java/kr/wisestone/owl/web/form/IssueForm.java                             |  248 +++++++++++++++++++++++++++++++++++++++++
 src/main/webapp/custom_components/js-autocomplete-single/js-autocomplete-single.js |   13 +
 src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java              |   13 ++
 src/main/webapp/scripts/app/issue/issueAdd.controller.js                           |   27 +++-
 5 files changed, 293 insertions(+), 9 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
index 7d3c3f4..b32b1d4 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
@@ -10,6 +10,7 @@
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.IssueTypeMapper;
 import kr.wisestone.owl.repository.IssueTypeRepository;
+import kr.wisestone.owl.repository.ProjectClosureRepository;
 import kr.wisestone.owl.repository.ProjectRepository;
 import kr.wisestone.owl.service.*;
 import kr.wisestone.owl.util.ConvertUtil;
@@ -66,6 +67,9 @@
 
     @Autowired
     private UserService userService;
+
+    @Autowired
+    private ProjectClosureRepository projectClosureRepository;
 
     @Autowired
     private ExcelView excelView;
@@ -192,6 +196,15 @@
         condition.setPageSize(pageable.getPageSize());
         condition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
 
+        List<ProjectClosure> projectClosures = this.projectClosureRepository.findByParentProjectId(condition.getProjectId());
+        if (projectClosures != null) {
+            for (ProjectClosure projectClosure : projectClosures) {
+                Long downProjectId = projectClosure.getProject().getId();
+                downProjectIds.add(downProjectId);
+            }
+        }
+        condition.setDownProjectIds(downProjectIds);
+
         List<Map<String, Object>> results = this.issueTypeMapper.find(condition);
         for (Map<String, Object> result : results) {
             Long projectId = MapUtil.getLong(result, "projectId");
diff --git a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
index 30b89de..f2a8b70 100644
--- a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
@@ -40,6 +40,30 @@
     private List<Map<String, Object>> issueCompanyFields = Lists.newArrayList();
     private List<Map<String, Object>> issueIspFields = Lists.newArrayList();
     private List<Map<String, Object>> issueHostingFields = Lists.newArrayList();
+    //�뙆�듃�꼫 �젙蹂� 吏곸젒異붽�
+    private String companyName;
+    private String companyManager;
+    private String companyTel;
+    private String companyUrl;
+    private String companyEmail;
+    private String companyMemo;
+
+    private String ispName;
+    private String ispCode;
+    private String ispManager;
+    private String ispTel;
+    private String ispUrl;
+    private String ispEmail;
+    private String ispMemo;
+
+    private String hostingName;
+    private String hostingCode;
+    private String hostingManager;
+    private String hostingTel;
+    private String hostingUrl;
+    private String hostingEmail;
+    private String hostingMemo;
+
     private List<Map<String, Object>> files = Lists.newArrayList(); // api�슜 泥⑤��뙆�씪
     private Long parentIssueId; // �긽�쐞 �씠�뒋
     private String isApi;
@@ -134,6 +158,70 @@
         if (MapUtil.getObject(params, "downIssuesStatus") != null){
             form.setDownIssuesStatus((List)MapUtil.getObject(params, "downIssuesStatus"));
         }
+
+        if (MapUtil.getString(params, "companyName") != null) {
+            form.setCompanyName(MapUtil.getString(params, "companyName"));
+        }
+        if (MapUtil.getString(params, "companyManager") != null) {
+            form.setCompanyManager(MapUtil.getString(params, "companyManager"));
+        }
+        if (MapUtil.getString(params, "companyTel") != null) {
+            form.setCompanyTel(MapUtil.getString(params, "companyTel"));
+        }
+        if (MapUtil.getString(params, "companyUrl") != null) {
+            form.setCompanyUrl(MapUtil.getString(params, "companyUrl"));
+        }
+        if (MapUtil.getString(params, "companyEmail") != null) {
+            form.setCompanyEmail(MapUtil.getString(params, "companyEmail"));
+        }
+        if (MapUtil.getString(params, "companyMemo") != null) {
+            form.setCompanyMemo(MapUtil.getString(params, "companyMemo"));
+        }
+
+        if (MapUtil.getString(params, "ispName") != null) {
+            form.setIspName(MapUtil.getString(params, "ispName"));
+        }
+        if (MapUtil.getString(params, "ispCode") != null) {
+            form.setIspCode(MapUtil.getString(params, "ispCode"));
+        }
+        if (MapUtil.getString(params, "ispManager") != null) {
+            form.setIspManager(MapUtil.getString(params, "ispManager"));
+        }
+        if (MapUtil.getString(params, "ispTel") != null) {
+            form.setIspTel(MapUtil.getString(params, "ispTel"));
+        }
+        if (MapUtil.getString(params, "ispUrl") != null) {
+            form.setIspUrl(MapUtil.getString(params, "ispUrl"));
+        }
+        if (MapUtil.getString(params, "ispEmail") != null) {
+            form.setIspEmail(MapUtil.getString(params, "ispEmail"));
+        }
+        if (MapUtil.getString(params, "ispMemo") != null) {
+            form.setIspMemo(MapUtil.getString(params, "ispMemo"));
+        }
+
+        if (MapUtil.getString(params, "hostingName") != null) {
+            form.setHostingName(MapUtil.getString(params, "hostingName"));
+        }
+        if (MapUtil.getString(params, "hostingCode") != null) {
+            form.setHostingCode(MapUtil.getString(params, "hostingCode"));
+        }
+        if (MapUtil.getString(params, "hostingManager") != null) {
+            form.setHostingManager(MapUtil.getString(params, "hostingManager"));
+        }
+        if (MapUtil.getString(params, "hostingTel") != null) {
+            form.setHostingTel(MapUtil.getString(params, "hostingTel"));
+        }
+        if (MapUtil.getString(params, "hostingUrl") != null) {
+            form.setHostingUrl(MapUtil.getString(params, "hostingUrl"));
+        }
+        if (MapUtil.getString(params, "hostingEmail") != null) {
+            form.setHostingEmail(MapUtil.getString(params, "hostingEmail"));
+        }
+        if (MapUtil.getString(params, "hostingMemo") != null) {
+            form.setHostingMemo(MapUtil.getString(params, "hostingMemo"));
+        }
+
         return form;
     }
 
@@ -410,4 +498,164 @@
     public void setDownIssuesStatus(List<String> downIssuesStatus) {
         this.downIssuesStatus = downIssuesStatus;
     }
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public String getCompanyManager() {
+        return companyManager;
+    }
+
+    public void setCompanyManager(String companyManager) {
+        this.companyManager = companyManager;
+    }
+
+    public String getCompanyTel() {
+        return companyTel;
+    }
+
+    public void setCompanyTel(String companyTel) {
+        this.companyTel = companyTel;
+    }
+
+    public String getCompanyUrl() {
+        return companyUrl;
+    }
+
+    public void setCompanyUrl(String companyUrl) {
+        this.companyUrl = companyUrl;
+    }
+
+    public String getCompanyEmail() {
+        return companyEmail;
+    }
+
+    public void setCompanyEmail(String companyEmail) {
+        this.companyEmail = companyEmail;
+    }
+
+    public String getCompanyMemo() {
+        return companyMemo;
+    }
+
+    public void setCompanyMemo(String companyMemo) {
+        this.companyMemo = companyMemo;
+    }
+
+    public String getIspName() {
+        return ispName;
+    }
+
+    public void setIspName(String ispName) {
+        this.ispName = ispName;
+    }
+
+    public String getIspCode() {
+        return ispCode;
+    }
+
+    public void setIspCode(String ispCode) {
+        this.ispCode = ispCode;
+    }
+
+    public String getIspManager() {
+        return ispManager;
+    }
+
+    public void setIspManager(String ispManager) {
+        this.ispManager = ispManager;
+    }
+
+    public String getIspTel() {
+        return ispTel;
+    }
+
+    public void setIspTel(String ispTel) {
+        this.ispTel = ispTel;
+    }
+
+    public String getIspUrl() {
+        return ispUrl;
+    }
+
+    public void setIspUrl(String ispUrl) {
+        this.ispUrl = ispUrl;
+    }
+
+    public String getIspEmail() {
+        return ispEmail;
+    }
+
+    public void setIspEmail(String ispEmail) {
+        this.ispEmail = ispEmail;
+    }
+
+    public String getIspMemo() {
+        return ispMemo;
+    }
+
+    public void setIspMemo(String ispMemo) {
+        this.ispMemo = ispMemo;
+    }
+
+    public String getHostingName() {
+        return hostingName;
+    }
+
+    public void setHostingName(String hostingName) {
+        this.hostingName = hostingName;
+    }
+
+    public String getHostingCode() {
+        return hostingCode;
+    }
+
+    public void setHostingCode(String hostingCode) {
+        this.hostingCode = hostingCode;
+    }
+
+    public String getHostingManager() {
+        return hostingManager;
+    }
+
+    public void setHostingManager(String hostingManager) {
+        this.hostingManager = hostingManager;
+    }
+
+    public String getHostingTel() {
+        return hostingTel;
+    }
+
+    public void setHostingTel(String hostingTel) {
+        this.hostingTel = hostingTel;
+    }
+
+    public String getHostingUrl() {
+        return hostingUrl;
+    }
+
+    public void setHostingUrl(String hostingUrl) {
+        this.hostingUrl = hostingUrl;
+    }
+
+    public String getHostingEmail() {
+        return hostingEmail;
+    }
+
+    public void setHostingEmail(String hostingEmail) {
+        this.hostingEmail = hostingEmail;
+    }
+
+    public String getHostingMemo() {
+        return hostingMemo;
+    }
+
+    public void setHostingMemo(String hostingMemo) {
+        this.hostingMemo = hostingMemo;
+    }
 }
diff --git a/src/main/webapp/custom_components/js-autocomplete-single/js-autocomplete-single.js b/src/main/webapp/custom_components/js-autocomplete-single/js-autocomplete-single.js
index e8ad598..00505d3 100644
--- a/src/main/webapp/custom_components/js-autocomplete-single/js-autocomplete-single.js
+++ b/src/main/webapp/custom_components/js-autocomplete-single/js-autocomplete-single.js
@@ -23,6 +23,7 @@
                 page : "=",
                 totalPage : "=",
                 inputDisabled : "=",
+                customInput : "=",
             },
             templateUrl : "custom_components/js-autocomplete-single/js-autocomplete-single.html",
             link : function ($scope, $element, $attrs) {
@@ -33,6 +34,10 @@
                 if (!angular.isDefined($scope.inputDisabled)) {
                     $scope.inputDisabled = false;
                 }
+
+                /*if (!angular.isDefined($scope.customInput)) {
+                    $scope.customInput = false;
+                }*/
 
                 $scope.options = [];    //  �쟾泥� 紐⑸줉
                 $scope.networkSuccess = false;  //  �넻�떊 �셿猷� �썑 �솕硫� �몴�떆.
@@ -285,7 +290,9 @@
                             switch (event.keyCode) {
                                 case 9 :  //  �꺆�궎 �떕湲�
                                     $scope.open = false;
-                                    $scope.search = "";
+                                    if (!angular.isDefined($scope.customInput) && !$scope.customInput) {
+                                        $scope.search = "";
+                                    }
                                     $scope.page = 0;
                                     $scope.totalPage = 0;
                                     $scope.options = [];
@@ -523,7 +530,9 @@
                                 $scope.$apply(function () {
                                     $scope.open = false;
                                     if ($scope.selectedModel == null || $scope.selectedModel.length == 0) {
-                                        $scope.search = "";
+                                        if (!angular.isDefined($scope.customInput) && !$scope.customInput) {
+                                            $scope.search = "";
+                                        }
                                     }
                                     $scope.page = 0;
                                     $scope.totalPage = 0;
diff --git a/src/main/webapp/scripts/app/issue/issueAdd.controller.js b/src/main/webapp/scripts/app/issue/issueAdd.controller.js
index b9ebc23..5b4e9e7 100644
--- a/src/main/webapp/scripts/app/issue/issueAdd.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -550,12 +550,10 @@
 
                             return attachedFileIds;
                         })(),
-
                         issueCompanyFields : (function () {
                             var issueCompanyFields = [];
                             if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0 ){
                                 var companyField = $scope.vm.form.issueCompanyFields[0];
-
                                 issueCompanyFields.push({
                                     companyId : $scope.vm.companyId,
                                     name : $scope.vm.companyName,
@@ -566,9 +564,14 @@
                                     memo : $scope.vm.companyMemo
                                 });
                             }
-
                             return issueCompanyFields;
                         })(),
+                        companyName : $scope.vm.companyName,
+                        companyManager : $scope.vm.companyManager,
+                        companyTel : $scope.vm.companyTel,
+                        companyEmail :$scope.vm.companyEmail,
+                        companyUrl :$scope.vm.companyUrl,
+                        companyMemo : $scope.vm.companyMemo,
 
                         issueIspFields : (function () {
                             var issueIspFields = [];
@@ -576,7 +579,6 @@
                                 && $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];
-
                                 issueIspFields.push({
                                     ispId : $scope.vm.ispId,
                                     name : $scope.vm.ispName,
@@ -587,11 +589,16 @@
                                     url :$scope.vm.ispUrl,
                                     memo : $scope.vm.ispMemo
                                 });
-
                             }
-
                             return issueIspFields;
                         })(),
+                        ispName : $scope.vm.ispName,
+                        ispCode : $scope.vm.ispCode,
+                        ispManager : $scope.vm.ispManager,
+                        ispTel : $scope.vm.ispTel,
+                        ispEmail :$scope.vm.ispEmail,
+                        ispUrl :$scope.vm.ispUrl,
+                        ispMemo : $scope.vm.ispMemo,
 
                         issueHostingFields : (function () {
                             var issueHostingFields = [];
@@ -599,7 +606,6 @@
                                 && $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];
-
                                 issueHostingFields[0] = {
                                     hostingId : $scope.vm.hostingId,
                                     name : $scope.vm.hostingName,
@@ -613,6 +619,13 @@
                             }
                             return issueHostingFields;
                         })(),
+                        hostingName : $scope.vm.hostingName,
+                        hostingCode : $scope.vm.hostingCode,
+                        hostingManager : $scope.vm.hostingManager,
+                        hostingTel : $scope.vm.hostingTel,
+                        hostingEmail :$scope.vm.hostingEmail,
+                        hostingUrl :$scope.vm.hostingUrl,
+                        hostingMemo : $scope.vm.hostingMemo,
 
                         startCompleteDateRange : $scope.vm.form.startCompleteDateRange,
                         detectingDateRange : $scope.vm.form.detectingDateRange,
diff --git a/src/main/webapp/views/issue/issueAdd.html b/src/main/webapp/views/issue/issueAdd.html
index 9b4b9c5..9c7b98f 100644
--- a/src/main/webapp/views/issue/issueAdd.html
+++ b/src/main/webapp/views/issue/issueAdd.html
@@ -425,6 +425,7 @@
                         <js-autocomplete-single data-input-name="issueCompanyField"
                                                 selected-model="vm.form.issueCompanyFields"
                                                 search="vm.companyName"
+                                                custom-input="true"
                                                 source="fn.getIssueCompanyFieldList(vm.companyName, vm.form.issueCompanyFields, vm.autoCompletePage.companyField.page, fn.getIssueCompanyFieldListCallBack)"
                                                 page="vm.autoCompletePage.companyField.page"
                                                 total-page="vm.autoCompletePage.companyField.totalPage"

--
Gitblit v1.8.0