From e8dd85537ec9060133956629019c429ffb22f8c0 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 10 12월 2021 18:34:32 +0900
Subject: [PATCH] 업체 isp,호스팅 연동

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java         |    4 
 src/main/java/kr/wisestone/owl/domain/CompanyField.java                   |   18 ++
 src/main/resources/mybatis/query-template/companyField-template.xml       |    4 
 src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js |   61 +++++++
 src/main/resources/mybatis/query-template/issue-template.xml              |    2 
 src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js    |   34 +++-
 src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java                     |   39 ++++-
 src/main/webapp/views/companyField/companyFieldModify.html                |   35 +++++
 src/main/webapp/scripts/app/issue/issueAdd.controller.js                  |   54 +++---
 src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java      |   24 ---
 src/main/resources/migration/V1_13__Alter_Table.sql                       |   10 +
 src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java   |   18 ++
 src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java  |   51 ++++--
 src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java  |   27 ---
 src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java             |   19 ++
 src/main/webapp/views/companyField/companyFieldAdd.html                   |    1 
 16 files changed, 273 insertions(+), 128 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/domain/CompanyField.java b/src/main/java/kr/wisestone/owl/domain/CompanyField.java
index 53fae93..d733e82 100644
--- a/src/main/java/kr/wisestone/owl/domain/CompanyField.java
+++ b/src/main/java/kr/wisestone/owl/domain/CompanyField.java
@@ -19,6 +19,8 @@
     private String url;
     private String email;
     private String memo;
+    private Long ispId;
+    private Long hostingId;
 
     public CompanyField() {}
 
@@ -77,4 +79,20 @@
     public void setUrl(String url) {
         this.url = url;
     }
+
+    public Long getIspId() {
+        return ispId;
+    }
+
+    public void setIspId(Long ispId) {
+        this.ispId = ispId;
+    }
+
+    public Long getHostingId() {
+        return hostingId;
+    }
+
+    public void setHostingId(Long hostingId) {
+        this.hostingId = hostingId;
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
index f777fde..b055955 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
@@ -6,10 +6,11 @@
 import kr.wisestone.owl.domain.IspField;
 import kr.wisestone.owl.repository.HostingFieldRepository;
 import kr.wisestone.owl.repository.IspFieldRepository;
-import kr.wisestone.owl.service.UserService;
+import kr.wisestone.owl.service.*;
 import kr.wisestone.owl.web.condition.CompanyFieldCondition;
 import kr.wisestone.owl.web.form.CompanyFieldForm;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
 import com.google.common.collect.Lists;
 import kr.wisestone.owl.common.ExcelConditionCheck;
@@ -18,8 +19,6 @@
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.CompanyFieldMapper;
 import kr.wisestone.owl.repository.CompanyFieldRepository;
-import kr.wisestone.owl.service.CompanyFieldService;
-import kr.wisestone.owl.service.WorkspaceService;
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.vo.*;
 import kr.wisestone.owl.web.view.ExcelView;
@@ -33,6 +32,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 @Service
 public class CompanyFieldServiceImpl extends AbstractServiceImpl<CompanyField, Long, JpaRepository<CompanyField, Long>> implements CompanyFieldService {
@@ -48,6 +48,12 @@
 
     @Autowired
     private HostingFieldRepository hostingFieldRepository;
+
+    @Autowired
+    private IspFieldService ispFieldService;
+
+    @Autowired
+    private HostingFieldService hostingFieldService;
 
     @Autowired
     private UserService userService;
@@ -112,13 +118,29 @@
 
     // �뾽泥� �긽�꽭 議고쉶�븳�떎.
     @Override
+    @Transactional
     public void detailCompany(Map<String, Object> resJsonData, CompanyFieldCondition companyFieldCondition) {
         CompanyFieldVo companyFieldVo = new CompanyFieldVo();
+        IspFieldVo ispFieldVo = new IspFieldVo();
+        HostingFieldVo hostingFieldVo = new HostingFieldVo();
 
         Long companyId = companyFieldCondition.getId();
         if (companyId != null) {
             CompanyField companyField = this.getCompany(companyId);
+            IspField ispField = null;
+            HostingField hostingField = null;
+            if(companyField.getIspId() != null){
+                ispField = this.ispFieldRepository.getOne(companyField.getIspId());
+            }
+            if(companyField.getHostingId() != null){
+                hostingField = this.hostingFieldRepository.getOne(companyField.getHostingId());
+            }
             companyFieldVo = ConvertUtil.copyProperties(companyField, CompanyFieldVo.class);
+            ispFieldVo = ConvertUtil.copyProperties(ispField, IspFieldVo.class);
+            hostingFieldVo = ConvertUtil.copyProperties(hostingField, HostingFieldVo.class);
+
+            companyFieldVo.setIspFieldVo(ispFieldVo);
+            companyFieldVo.setHostingFieldVo(hostingFieldVo);
         }
         resJsonData.put(Constants.REQ_KEY_CONTENT, companyFieldVo);
     }
@@ -185,28 +207,21 @@
     //  寃��깋 寃곌낵瑜� CompanyFieldVo 濡� 蹂��솚�븳�떎.
     private List<CompanyFieldVo> convertCompanyVoToMap(List<Map<String, Object>> results, Long totalCompanyCount, Pageable pageable, Map<String, Object> resJsonData) {
         List<CompanyFieldVo> companyFieldVos = Lists.newArrayList();
-        List<IspFieldVo> ispFieldVos = Lists.newArrayList();
-        List<HostingFieldVo> hostingFieldVos = Lists.newArrayList();
 
         for (Map<String, Object> result : results) {
             CompanyFieldVo companyFieldVo = ConvertUtil.convertMapToClass(result, CompanyFieldVo.class);
-
-            String url = companyFieldVo.getUrl();
-
-            IspField ispField = this.ispFieldRepository.findByUrl(url);
-            if(ispField != null){
+            if(companyFieldVo.getIspId() != null){
+                //IspField ispField = this.ispFieldRepository.getOne(companyFieldVo.getIspId());
+                IspField ispField = this.ispFieldService.getIsp(companyFieldVo.getIspId());
                 IspFieldVo ispFieldVo = ConvertUtil.copyProperties(ispField, IspFieldVo.class);
-                ispFieldVos.add(ispFieldVo);
+                companyFieldVo.setIspFieldVo(ispFieldVo);
             }
-            companyFieldVo.setIspFieldVos(ispFieldVos);
-
-            HostingField hostingField = this.hostingFieldRepository.findByUrl(url);
-            if(hostingField != null){
+            if(companyFieldVo.getHostingId() != null){
+                //HostingField hostingField = this.hostingFieldRepository.getOne(companyFieldVo.getHostingId());
+                HostingField hostingField = this.hostingFieldService.getHosting(companyFieldVo.getHostingId());
                 HostingFieldVo hostingFieldVo = ConvertUtil.copyProperties(hostingField, HostingFieldVo.class);
-                hostingFieldVos.add(hostingFieldVo);
+                companyFieldVo.setHostingFieldVo(hostingFieldVo);
             }
-            companyFieldVo.setHostingFieldVos(hostingFieldVos);
-
             companyFieldVos.add(companyFieldVo);
         }
 
diff --git a/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java
index 855418a..44d32d4 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java
@@ -58,30 +58,9 @@
     // Hosting 異붽�
     @Override
     public HostingField add(HostingFieldForm HostingFieldForm) {
-        if(HostingFieldForm.getUrl() != null){
-            //  url �쑀�슚�꽦 泥댄겕
-            this.verifyUrl(HostingFieldForm.getUrl(), null);
-        }
-
         HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class);
         hostingFieldRepository.saveAndFlush(HostingField);
         return HostingField;
-    }
-
-    //  url �쑀�슚�꽦 泥댄겕
-    private void verifyUrl(String url, Long id) {
-        HostingField hostingField;
-
-        if(id == null){
-            hostingField = this.hostingFieldRepository.findByUrl(url);
-        } else {
-            hostingField = this.hostingFieldRepository.findByUrlAndIdNot(url,id);
-        }
-
-        if (hostingField != null) {
-            throw new OwlRuntimeException(
-                    this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_USED_URL));
-        }
     }
 
     // Hosting 紐⑸줉�쓣 媛��졇�삩�떎.
@@ -114,15 +93,9 @@
     // Hosting �젙濡쒕�� �닔�젙�븳�떎.
     @Override
     public void modify(HostingFieldForm HostingFieldForm) {
-        //  url �쑀�슚�꽦 泥댄겕
-        if(HostingFieldForm.getUrl() != null){
-            this.verifyUrl(HostingFieldForm.getUrl(), HostingFieldForm.getId());
-        }
-
         HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class);
         hostingFieldRepository.saveAndFlush(HostingField);
     }
-
 
     // Hosting瑜� �궘�젣�븳�떎.
     @Override
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java
index d91bec3..785fb73 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java
@@ -58,11 +58,6 @@
     // Isp 異붽�
     @Override
     public IspField add(IspFieldForm IspFieldForm) {
-        //  url �쑀�슚�꽦 泥댄겕
-        if(IspFieldForm.getUrl() != null){
-            this.verifyUrl(IspFieldForm.getUrl(), null);
-        }
-
         IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class);
         ispFieldRepository.saveAndFlush(IspField);
         return IspField;
@@ -81,23 +76,6 @@
         return this.convertIspVoToMap(results, totalIspCount, pageable, resJsonData);
     }
 
-    //  url �쑀�슚�꽦 泥댄겕
-    private void verifyUrl(String url, Long id) {
-        IspField ispField;
-
-        if(id == null){
-            ispField = this.ispFieldRepository.findByUrl(url);
-        } else {
-            ispField = this.ispFieldRepository.findByUrlAndIdNot(url,id);
-        }
-
-        if (ispField != null) {
-            throw new OwlRuntimeException(
-                    this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_USED_URL));
-        }
-    }
-
-
     // Isp �긽�꽭 議고쉶�븳�떎.
     @Override
     public void detail(Map<String, Object> resJsonData, IspFieldCondition ispFieldCondition) {
@@ -115,8 +93,6 @@
     @Override
     public void modify(IspFieldForm IspFieldForm) {
         if(IspFieldForm.getUrl() != null){
-            //  url �쑀�슚�꽦 泥댄겕
-            this.verifyUrl(IspFieldForm.getUrl(), IspFieldForm.getId());
         }
 
         IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class);
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 5f53d71..7aadab6 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -1879,8 +1879,8 @@
         //hasPermission = this.checkIssueModifyPermission(hasPermission, Issue.ASSIGNEE, issueVo, issueUserVos);
         //  �떞�떦�옄媛� �뾾�쑝硫� 紐⑤뱺 �궗�슜�옄媛� �닔�젙 沅뚰븳�쓣 媛뽯뒗�떎.
 
-        hasPermission = this.checkIssueModifyPermission(hasPermission, Issue.ALL_ISSUE_MANAGER, issueVo, null, null, user);
-        hasPermission = this.checkIssueModifyPermission(hasPermission, Issue.ALL_PROJECT_MANAGER, issueVo, null, null, user);
+        //hasPermission = this.checkIssueModifyPermission(hasPermission, Issue.ALL_ISSUE_MANAGER, issueVo, null, null, user);
+        //hasPermission = this.checkIssueModifyPermission(hasPermission, Issue.ALL_PROJECT_MANAGER, issueVo, null, null, user);
 
         return hasPermission;
     }
diff --git a/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java b/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java
index f09ad46..5005a50 100644
--- a/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java
@@ -11,14 +11,15 @@
     private String email;
     private String url;
     private String memo;
+    private Long ispId;
+    private Long hostingId;
 
-    private List<IspFieldVo> ispFieldVos = Lists.newArrayList();
-    private List<HostingFieldVo> hostingFieldVos = Lists.newArrayList();
+    private IspFieldVo ispFieldVo;
+    private HostingFieldVo hostingFieldVo;
 
     public CompanyFieldVo() {}
 
     public CompanyFieldVo(String manager, String tel, String email, String memo) {
-
         this.manager = manager;
         this.tel = tel;
         this.email = email;
@@ -66,19 +67,35 @@
         this.url = url;
     }
 
-    public List<IspFieldVo> getIspFieldVos() {
-        return ispFieldVos;
+    public IspFieldVo getIspFieldVo() {
+        return ispFieldVo;
     }
 
-    public void setIspFieldVos(List<IspFieldVo> ispFieldVos) {
-        this.ispFieldVos = ispFieldVos;
+    public void setIspFieldVo(IspFieldVo ispFieldVo) {
+        this.ispFieldVo = ispFieldVo;
     }
 
-    public List<HostingFieldVo> getHostingFieldVos() {
-        return hostingFieldVos;
+    public HostingFieldVo getHostingFieldVo() {
+        return hostingFieldVo;
     }
 
-    public void setHostingFieldVos(List<HostingFieldVo> hostingFieldVos) {
-        this.hostingFieldVos = hostingFieldVos;
+    public void setHostingFieldVo(HostingFieldVo hostingFieldVo) {
+        this.hostingFieldVo = hostingFieldVo;
+    }
+
+    public Long getIspId() {
+        return ispId;
+    }
+
+    public void setIspId(Long ispId) {
+        this.ispId = ispId;
+    }
+
+    public Long getHostingId() {
+        return hostingId;
+    }
+
+    public void setHostingId(Long hostingId) {
+        this.hostingId = hostingId;
     }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java b/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java
index f0b62ab..a87a5af 100644
--- a/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java
+++ b/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java
@@ -12,6 +12,8 @@
     private String email;
     private String url;
     private String memo;
+    private Long ispId;
+    private Long hostingId;
 
     private Integer Page;
     private Integer PageSize;
@@ -91,4 +93,20 @@
     public void setUrl(String url) {
         this.url = url;
     }
+
+    public Long getIspId() {
+        return ispId;
+    }
+
+    public void setIspId(Long ispId) {
+        this.ispId = ispId;
+    }
+
+    public Long getHostingId() {
+        return hostingId;
+    }
+
+    public void setHostingId(Long hostingId) {
+        this.hostingId = hostingId;
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java b/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java
index 4c4f8e3..4d7b4a0 100644
--- a/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java
@@ -12,6 +12,9 @@
     private String tel;
     private String url;
     private String memo;
+    private Long ispId;
+    private Long hostingId;
+
     private List<Long> removeIds = Lists.newArrayList();
 
     public CompanyFieldForm() {
@@ -57,6 +60,22 @@
         this.memo = memo;
     }
 
+    public Long getIspId() {
+        return ispId;
+    }
+
+    public void setIspId(Long ispId) {
+        this.ispId = ispId;
+    }
+
+    public Long getHostingId() {
+        return hostingId;
+    }
+
+    public void setHostingId(Long hostingId) {
+        this.hostingId = hostingId;
+    }
+
     public List<Long> getRemoveIds() {
         return removeIds;
     }
diff --git a/src/main/resources/migration/V1_13__Alter_Table.sql b/src/main/resources/migration/V1_13__Alter_Table.sql
index 36a476b..7b53c33 100644
--- a/src/main/resources/migration/V1_13__Alter_Table.sql
+++ b/src/main/resources/migration/V1_13__Alter_Table.sql
@@ -15,3 +15,13 @@
 
 -- �뾽泥댁쓽 url 而щ읆 INDEX 異붽�
 ALTER TABLE `company_field` ADD INDEX `urlIndex`(`url`);
+
+ALTER TABLE `company_field` ADD COLUMN `isp_id` bigint(20) DEFAULT NULL;
+ALTER TABLE `company_field` ADD COLUMN `hosting_id` bigint(20) DEFAULT NULL;
+
+ALTER TABLE `company_field` ADD INDEX `ispIdIndex`(`isp_id`);
+ALTER TABLE `company_field` ADD INDEX `hostingIdIndex`(`hosting_id`);
+
+
+
+
diff --git a/src/main/resources/mybatis/query-template/companyField-template.xml b/src/main/resources/mybatis/query-template/companyField-template.xml
index 18c73ac..e4b8e15 100644
--- a/src/main/resources/mybatis/query-template/companyField-template.xml
+++ b/src/main/resources/mybatis/query-template/companyField-template.xml
@@ -11,7 +11,9 @@
         cf.tel as tel,
         cf.email as email,
         cf.url as url,
-        cf.memo as memo
+        cf.memo as memo,
+        cf.isp_id as ispId,
+        cf.hosting_id as hostingId
         FROM
         company_field cf
         WHERE 1=1
diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml
index d6d1ee8..90a0a67 100644
--- a/src/main/resources/mybatis/query-template/issue-template.xml
+++ b/src/main/resources/mybatis/query-template/issue-template.xml
@@ -252,7 +252,7 @@
         LEFT OUTER JOIN (SELECT issue_id, COUNT(id) as issueCommentCount FROM issue_comment GROUP BY issue_id)
         temp_issue_comment on (temp_issue_comment.issue_id = issue.id)
         WHERE 1=1
-        <if test="keyWord != null and !keyWord.equals('') ">
+        <if test="keyWord != null and !keyWord.equals('') and myDepartmentIds.size != 0">
             AND issue.title like CONCAT('%',#{keyWord},'%')
             OR issue.description like CONCAT('%',#{keyWord},'%')
             OR issue.start_date like CONCAT('%',#{keyWord},'%')
diff --git a/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js b/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js
index 42bdacc..7db0a29 100644
--- a/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js
+++ b/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js
@@ -22,11 +22,8 @@
                     form : {
                         name : "",  //�뾽泥대챸
                         ispName : "",
+                        hostingId : "",
                         hostingName : "",
-                        //companyType : "", //�뾽泥대텇瑜�
-                        //profitYN : "",  //�쁺由�/鍮꾩쁺由�
-                        //industry : "",  //�궛�뾽遺꾨쪟
-                        //domain : "",  //�룄硫붿씤
                         manager : "",   //�떞�떦�옄
                         tel : "",  //�쟾�솕踰덊샇
                         email : "",  //�씠硫붿씪
@@ -44,7 +41,6 @@
                         }
                     }
                 };
-
 
                 angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
 
@@ -67,18 +63,34 @@
                     return false;
                 }
 
+                $scope.$on("ispFieldEvent", function (event, result) {
+                    $scope.vm.form.ispId = result[0].id;
+                });
+
+                $scope.$on("hostingFieldEvent", function (event, result) {
+                    $scope.vm.form.hostingId = result[0].id;
+                });
+
                 //  �뤌 �쟾�넚
                 function formSubmit(condition) {
                     $rootScope.spinner = true;
 
                     var content = {
                         name : $rootScope.preventXss($scope.vm.form.name),    //  �뾽泥대챸
-                        ispName : $rootScope.preventXss($scope.vm.form.ispName),    //  �뾽泥대챸
-                        hostingName : $rootScope.preventXss($scope.vm.form.hostingName),    //  �뾽泥대챸
-                        //companyType : $scope.vm.form.companyType, //�뾽泥대텇瑜�
-                        //profitYN : $scope.vm.form.profitYN,  //�쁺由�/鍮꾩쁺由�
-                        //industry : $scope.vm.form.industry,  //�궛�뾽遺꾨쪟
-                        //domain : $scope.vm.form.domain,  //�룄硫붿씤
+                        ispId : (function () {  // ISP �븘�씠�뵒
+                            var ispId = -1;
+                            if ($scope.vm.form.issueIspFields.length > 0) {
+                                ispId = $scope.vm.form.ispId;
+                            }
+                            return ispId;
+                        })(),
+                        hostingId : (function () {  // Hosting �븘�씠�뵒
+                            var hostingId = -1;
+                            if ($scope.vm.form.issueHostingFields.length > 0) {
+                                hostingId = $scope.vm.form.hostingId;
+                            }
+                            return hostingId;
+                        })(),
                         manager : $scope.vm.form.manager,   //�떞�떦�옄
                         tel : $scope.vm.form.tel,  //�쟾�솕踰덊샇
                         email : $scope.vm.form.email,  //�씠硫붿씪
diff --git a/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js b/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js
index c163f32..9b4576a 100644
--- a/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js
+++ b/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js
@@ -8,27 +8,56 @@
         'angular'
     ],
     function (app, angular) {
-        app.controller('companyFieldModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'CompanyField', 'parameter', 'SweetAlert', '$filter', '$q',
-            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, CompanyField, parameter, SweetAlert, $filter, $q) {
+        app.controller('companyFieldModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'CompanyField', 'parameter', 'SweetAlert', '$filter', '$q', '$injector','$controller',
+            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, CompanyField, parameter, SweetAlert, $filter, $q, $injector, $controller) {
 
                 $scope.fn = {
                     detail : detail,  //  �긽�꽭 議고쉶
                     cancel : cancel,    //  �뙘�뾽 李� �떕湲�
                     formSubmit : formSubmit,    //  �뤌 �쟾�넚
                     formCheck : formCheck,  //  �뤌 泥댄겕
+                    getIssueIspFieldListCallBack : getIssueIspFieldListCallBack,
+                    getIssueHostingFieldListCallBack : getIssueHostingFieldListCallBack
                 };
 
                 $scope.vm = {
                     id : parameter.id,
                     form : {
                         name : "",  //�뾽泥대챸
+                        ispId : "",
+                        ispName : "",
+                        hostingName : "",
+                        hostingId : "",
                         manager : "",   //�떞�떦�옄
                         tel : "",  //�쟾�솕踰덊샇
                         email : "",  //�씠硫붿씪
                         url : "", // url
                         memo : ""  //硫붾え(鍮꾧퀬)
+                    },
+                    autoCompletePage : {
+                        ispField : {
+                            page : 0,
+                            totalPage : 0
+                        },
+                        hostingField : {
+                            page : 0,
+                            totalPage : 0
+                        }
                     }
                 };
+
+                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
+
+
+                // ISP�젙蹂� autocomplete page �뾽�뜲�씠�듃
+                function getIssueIspFieldListCallBack(result) {
+                    $scope.vm.autoCompletePage.ispField.totalPage = result.data.page.totalPage;
+                }
+
+                // �샇�뒪�똿�젙蹂� autocomplete page �뾽�뜲�씠�듃
+                function getIssueHostingFieldListCallBack(result) {
+                    $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage;
+                }
 
                 function formCheck(formInvalid) {
                     if (formInvalid) {
@@ -38,6 +67,14 @@
                     return false;
                 }
 
+                $scope.$on("ispFieldEvent", function (event, result) {
+                    $scope.vm.form.ispId = result[0].id;
+                });
+
+                $scope.$on("hostingFieldEvent", function (event, result) {
+                    $scope.vm.form.hostingId = result[0].id;
+                });
+
                 //  �뤌 �쟾�넚
                 function formSubmit() {
                     $rootScope.spinner = true;
@@ -45,10 +82,20 @@
                     var content = {
                         id : parameter.id,
                         name : $rootScope.preventXss($scope.vm.form.name),
-                        /*companyType : $rootScope.preventXss($scope.vm.form.companyType),
-                        profitYN : $rootScope.preventXss($scope.vm.form.profitYN),
-                        industry : $rootScope.preventXss($scope.vm.form.industry),
-                        domain : $rootScope.preventXss($scope.vm.form.domain),*/
+                        ispId : (function () {  // ISP �븘�씠�뵒
+                            var ispId = -1;
+                            if ($scope.vm.form.ispId != null) {
+                                ispId = $scope.vm.form.ispId;
+                            }
+                            return ispId;
+                        })(),
+                        hostingId : (function () {  // Hosting �븘�씠�뵒
+                            var hostingId = -1;
+                            if ($scope.vm.form.hostingId != null) {
+                                hostingId = $scope.vm.form.hostingId;
+                            }
+                            return hostingId;
+                        })(),
                         manager : $rootScope.preventXss($scope.vm.form.manager),
                         tel : $rootScope.preventXss($scope.vm.form.tel),
                         email : $rootScope.preventXss($scope.vm.form.email),
@@ -102,6 +149,8 @@
                                 $scope.vm.form.tel = result.data.content.tel;
                                 $scope.vm.form.url = result.data.content.url;
                                 $scope.vm.form.memo = result.data.content.memo;
+                                $scope.vm.form.ispName = result.data.content.ispFieldVo.name;
+                                $scope.vm.form.hostingName = result.data.content.hostingFieldVo.name;
                             }
                         }
                         else {
diff --git a/src/main/webapp/scripts/app/issue/issueAdd.controller.js b/src/main/webapp/scripts/app/issue/issueAdd.controller.js
index 429a84e..a207ca6 100644
--- a/src/main/webapp/scripts/app/issue/issueAdd.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -388,8 +388,8 @@
 
                 // �뾽泥댁젙蹂� 寃곌낵 媛� Event 泥섎━(set)
                 $scope.$on("companyFieldEvent", function (event, result) {
-                    var ispFieldVos = result[0].ispFieldVos[0];
-                    var hostingFieldVos = result[0].hostingFieldVos[0];
+                    var ispFieldVo = result[0].ispFieldVo;
+                    var hostingFieldVo = result[0].hostingFieldVo;
 
                     $scope.vm.companyId = result[0].id;
                     $scope.vm.companyName = result[0].name;
@@ -399,34 +399,34 @@
                     $scope.vm.companyUrl = result[0].url;
                     $scope.vm.companyMemo = result[0].memo;
 
-                    $scope.vm.ispName = ispFieldVos.name;
-                    $scope.vm.ispCode = ispFieldVos.code;
-                    $scope.vm.ispManager = ispFieldVos.manager;
-                    $scope.vm.ispTel = ispFieldVos.tel;
-                    $scope.vm.ispEmail = ispFieldVos.email;
-                    $scope.vm.ispUrl = ispFieldVos.url;
-                    $scope.vm.ispMemo = ispFieldVos.memo;
+                    $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.hostingName = hostingFieldVos.name;
-                    $scope.vm.hostingCode = hostingFieldVos.code;
-                    $scope.vm.hostingManager = hostingFieldVos.manager;
-                    $scope.vm.hostingTel = hostingFieldVos.tel;
-                    $scope.vm.hostingEmail = hostingFieldVos.email;
-                    $scope.vm.hostingUrl = hostingFieldVos.url;
-                    $scope.vm.hostingMemo = hostingFieldVos.memo;
+                    $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;
-                // });
+                //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;
+                });
 
                 // �샇�뒪�똿�젙蹂� 寃곌낵 媛� Event 泥섎━(set)
                 $scope.$on("hostingFieldEvent", function (event, result) {
diff --git a/src/main/webapp/views/companyField/companyFieldAdd.html b/src/main/webapp/views/companyField/companyFieldAdd.html
index eda4407..bdc7310 100644
--- a/src/main/webapp/views/companyField/companyFieldAdd.html
+++ b/src/main/webapp/views/companyField/companyFieldAdd.html
@@ -36,6 +36,7 @@
                 </label>
                 <js-autocomplete-single data-input-name="ispField"
                                     selected-model="vm.form.issueIspFields"
+                                    ng-model="vm.form.ispName"
                                     search="vm.form.ispName"
                                     source="fn.getIssueIspFieldList(vm.ispName, vm.form.issueIspFields, vm.autoCompletePage.issueIspFields.page, fn.getIssueIspFieldListCallBack)"
                                     page="vm.autoCompletePage.IspField.page"
diff --git a/src/main/webapp/views/companyField/companyFieldModify.html b/src/main/webapp/views/companyField/companyFieldModify.html
index 9404e5c..e171863 100644
--- a/src/main/webapp/views/companyField/companyFieldModify.html
+++ b/src/main/webapp/views/companyField/companyFieldModify.html
@@ -29,6 +29,41 @@
                        required>
                 <small translate="companyField.enterSpecialCharacters">�뾽泥� �씠由꾩뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷�닔 �뾾�뒿�땲�떎.</small>
             </div>
+            <div class="form-group">
+                <label class="issue-label">
+                    <span translate="ispField.name">ISP �씠由�</span>
+                </label>
+                <js-autocomplete-single data-input-name="ispField"
+                                        selected-model="vm.form.issueIspFields"
+                                        ng-model="vm.form.ispName"
+                                        search="vm.form.ispName"
+                                        source="fn.getIssueIspFieldList(vm.ispName, vm.form.issueIspFields, vm.autoCompletePage.issueIspFields.page, fn.getIssueIspFieldListCallBack)"
+                                        page="vm.autoCompletePage.ispField.page"
+                                        total-page="vm.autoCompletePage.ispField.totalPage"
+                                        input-disabled="false"
+                                        translation-texts="{ empty : 'common.emptyHosting' }"
+                                        broad-cast="ispFieldEvent"
+                                        extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '',
+                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
+            </div>
+
+            <div class="form-group">
+                <label class="issue-label">
+                    <span translate="hostingField.name">�샇�뒪�똿 �씠由�</span>
+                </label>
+                <js-autocomplete-single data-input-name="hostingField"
+                                        selected-model="vm.form.issueHostingFields"
+                                        ng-model="vm.form.hostingName"
+                                        search="vm.form.hostingName"
+                                        source="fn.getIssueHostingFieldList(vm.hostingName, vm.form.issueHostingFields, vm.autoCompletePage.hostingField.page, fn.getIssueHostingFieldListCallBack)"
+                                        page="vm.autoCompletePage.hostingField.page"
+                                        total-page="vm.autoCompletePage.hostingField.totalPage"
+                                        input-disabled="false"
+                                        translation-texts="{ empty : 'common.emptyHosting' }"
+                                        broad-cast="hostingFieldEvent"
+                                        extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '',
+                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
+            </div>
             <div>
                 <div class="form-group">
                     <label for="companyFieldAddForm10" class="issue-label">

--
Gitblit v1.8.0