From bdb1efdc604fce543e21152b4263a9362f64389f Mon Sep 17 00:00:00 2001
From: minhee <alsdldlfrl@gmail.com>
Date: 목, 10 3월 2022 15:35:19 +0900
Subject: [PATCH] - api 이슈 추가 시 입력한 ip에 속해있는 업체정보를 가진 이슈의 하위로 입력되도록 수정 - issue_company 테이블에 ip 컬럼 추가 및 이슈 추가/수정 시 ip 대역대 항목 추가

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java        |   14 ++
 src/main/java/kr/wisestone/owl/vo/IssueCompanyVo.java                    |   18 +++
 src/main/webapp/views/issue/issueAdd.html                                |   41 ++++++
 src/main/resources/mybatis/query-template/issue-template.xml             |   30 +++++
 src/main/webapp/scripts/app/issue/issueAddDown.controller.js             |    8 +
 src/main/java/kr/wisestone/owl/mapper/IssueMapper.java                   |    2 
 src/main/webapp/assets/styles/main.css                                   |    7 +
 src/main/webapp/scripts/app/issue/issueAdd.controller.js                 |    8 +
 src/main/webapp/scripts/app/issue/issueModify.controller.js              |   10 +
 src/main/webapp/views/issue/issueAddDown.html                            |   41 ++++++
 src/main/java/kr/wisestone/owl/domain/IssueCompany.java                  |   18 +++
 src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java |    4 
 src/main/resources/migration/V1_10__alter_data.sql                       |    4 
 src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js      |    4 
 src/main/webapp/scripts/app/issue/issueAddRelation.controller.js         |    8 +
 src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java  |   18 +++
 src/main/java/kr/wisestone/owl/web/form/IssueForm.java                   |   24 ++++
 src/main/webapp/views/issue/issueAddRelation.html                        |   41 ++++++
 src/main/webapp/views/issue/issueModify.html                             |   41 ++++++
 src/main/webapp/views/issue/issueDetail.html                             |    9 +
 20 files changed, 343 insertions(+), 7 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/domain/IssueCompany.java b/src/main/java/kr/wisestone/owl/domain/IssueCompany.java
index 51e8ba6..00f59e6 100644
--- a/src/main/java/kr/wisestone/owl/domain/IssueCompany.java
+++ b/src/main/java/kr/wisestone/owl/domain/IssueCompany.java
@@ -19,6 +19,8 @@
     private String email;
     private String url;
     private String memo;
+    private String ipStart;
+    private String ipEnd;
 
     private Long companyTypeId;
     private Long parentSectorId;
@@ -96,6 +98,22 @@
         this.memo = memo;
     }
 
+    public String getIpStart() {
+        return ipStart;
+    }
+
+    public void setIpStart(String ipStart) {
+        this.ipStart = ipStart;
+    }
+
+    public String getIpEnd() {
+        return ipEnd;
+    }
+
+    public void setIpEnd(String ipEnd) {
+        this.ipEnd = ipEnd;
+    }
+
     public Issue getIssue() {
         return issue;
     }
diff --git a/src/main/java/kr/wisestone/owl/mapper/IssueMapper.java b/src/main/java/kr/wisestone/owl/mapper/IssueMapper.java
index ece925a..5e17cf5 100644
--- a/src/main/java/kr/wisestone/owl/mapper/IssueMapper.java
+++ b/src/main/java/kr/wisestone/owl/mapper/IssueMapper.java
@@ -52,5 +52,7 @@
     Long countByDepartment(IssueCondition issueCondition);
 
     List<Map<String, Object>> findNotCompleteByParentIssueId(IssueCondition issueCondition);
+
+    List<Map<String, Object>> findByCustomFieldValueOfIp(IssueCustomFieldValueCondition issueCustomFieldValueCondition);
 }
 
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java
index f6001ba..533d144 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java
@@ -57,6 +57,8 @@
         companyFieldForm.setName(issueForm.getCompanyName());
         companyFieldForm.setEmail(issueForm.getCompanyEmail());
         companyFieldForm.setUrl(issueForm.getCompanyUrl());
+        companyFieldForm.setIpStart(issueForm.getIpStart());
+        companyFieldForm.setIpEnd(issueForm.getIpEnd());
         companyFieldForm.setManager(issueForm.getCompanyManager());
         companyFieldForm.setTel(issueForm.getCompanyTel());
         companyFieldForm.setMemo(issueForm.getCompanyMemo());
@@ -128,6 +130,8 @@
                     issueCompany.setName(MapUtil.getString(param, "name"));
                     issueCompany.setEmail(MapUtil.getString(param, "email"));
                     issueCompany.setUrl(MapUtil.getString(param, "url"));
+                    issueCompany.setIpStart(MapUtil.getString(param, "ipStart"));
+                    issueCompany.setIpEnd(MapUtil.getString(param, "ipEnd"));
                     issueCompany.setManager(MapUtil.getString(param, "manager"));
                     issueCompany.setTel(MapUtil.getString(param, "tel"));
                     issueCompany.setMemo(MapUtil.getString(param, "memo"));
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 de46104..11bdddd 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -493,6 +493,7 @@
 
         if (issueCustomFieldValueForms.size() > 0) {
             String concatUseValue = "";
+            String customFieldType = "";
             int useIdx = 0;
             int cntIp = 0;
             int cntSite = 0;
@@ -519,6 +520,7 @@
 
                         if (customFieldApiOverlap.getCustomField().getCustomFieldType().equals(IP_ADDRESS)) {
                             long ip = ConvertUtil.ipToLong(useValue);
+                            customFieldType = IP_ADDRESS.toString();
                             if (cntIp == 0){
                                 condition.setIp(ip);
                             }
@@ -560,8 +562,18 @@
             issueCustomFieldValueCondition.setUseValue(concatUseValue);
             issueCustomFieldValueCondition.setUseValues(userValues);
             issueCustomFieldValueCondition.setIssueTypeId(issueApiform.getIssueTypeId());
+            issueCustomFieldValueCondition.setCustomFieldType(customFieldType);
 //            issueCustomFieldValueCondition.setIssueStatusType("CLOSE");
-            List<Map<String, Object>> results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition);
+            List<Map<String, Object>> results = Lists.newArrayList();
+            if (customFieldType.equals(IP_ADDRESS.toString()) && issueForm.getIssueCompanyFields() != null && issueForm.getIssueCompanyFields().size() > 0) {
+                long ipValue = ConvertUtil.ipToLong(concatUseValue);
+                issueCustomFieldValueCondition.setUseValue(String.valueOf(ipValue));
+                //  �븯�쐞�씠�뒋議곌굔�쓽 ���엯�씠 IP�씪 寃쎌슦 媛숈� �뾽泥댁젙蹂댁씤 �씠�뒋 李얘린
+                results = this.issueMapper.findByCustomFieldValueOfIp(issueCustomFieldValueCondition);
+            } else {
+                results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition);
+            }
+
             if (results != null && results.size() > 0) {
                 for (Map<String, Object> result : results) {
                     resultIssueVos.add(this.getIssue(MapUtil.getLong(result, "id")));
diff --git a/src/main/java/kr/wisestone/owl/vo/IssueCompanyVo.java b/src/main/java/kr/wisestone/owl/vo/IssueCompanyVo.java
index d1ad428..6422110 100644
--- a/src/main/java/kr/wisestone/owl/vo/IssueCompanyVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/IssueCompanyVo.java
@@ -12,6 +12,8 @@
     private String tel;
     private String email;
     private String memo;
+    private String ipStart;
+    private String ipEnd;
 
     private Long companyTypeId;
     private Long parentSectorId;
@@ -82,6 +84,22 @@
         this.memo = memo;
     }
 
+    public String getIpStart() {
+        return ipStart;
+    }
+
+    public void setIpStart(String ipStart) {
+        this.ipStart = ipStart;
+    }
+
+    public String getIpEnd() {
+        return ipEnd;
+    }
+
+    public void setIpEnd(String ipEnd) {
+        this.ipEnd = ipEnd;
+    }
+
     public String getUrl() {
         return url;
     }
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 12c9984..c702ce9 100644
--- a/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java
+++ b/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java
@@ -13,6 +13,8 @@
     private String email;
     private List<String> url;
     private long ip;
+    private String ipStart;
+    private String ipEnd;
     private String memo;
     private Long ispId;
     private Long hostingId;
@@ -104,6 +106,22 @@
         this.ip = ip;
     }
 
+    public String getIpStart() {
+        return ipStart;
+    }
+
+    public void setIpStart(String ipStart) {
+        this.ipStart = ipStart;
+    }
+
+    public String getIpEnd() {
+        return ipEnd;
+    }
+
+    public void setIpEnd(String ipEnd) {
+        this.ipEnd = ipEnd;
+    }
+
     public Long getIspId() {
         return ispId;
     }
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 c17d024..377d042 100644
--- a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
@@ -46,6 +46,8 @@
     private String companyManager;
     private String companyTel;
     private String companyUrl;
+    private String ipStart;
+    private String ipEnd;
     private String companyEmail;
     private String companyMemo;
     private String companyTypeName;
@@ -178,6 +180,12 @@
         }
         if (MapUtil.getString(params, "companyUrl") != null) {
             form.setCompanyUrl(MapUtil.getString(params, "companyUrl"));
+        }
+        if (MapUtil.getString(params, "ipStart") != null) {
+            form.setIpStart(MapUtil.getString(params, "ipStart"));
+        }
+        if (MapUtil.getString(params, "ipEnd") != null) {
+            form.setIpEnd(MapUtil.getString(params, "ipEnd"));
         }
         if (MapUtil.getString(params, "companyEmail") != null) {
             form.setCompanyEmail(MapUtil.getString(params, "companyEmail"));
@@ -558,6 +566,22 @@
         this.companyUrl = companyUrl;
     }
 
+    public String getIpStart() {
+        return ipStart;
+    }
+
+    public void setIpStart(String ipStart) {
+        this.ipStart = ipStart;
+    }
+
+    public String getIpEnd() {
+        return ipEnd;
+    }
+
+    public void setIpEnd(String ipEnd) {
+        this.ipEnd = ipEnd;
+    }
+
     public String getCompanyEmail() {
         return companyEmail;
     }
diff --git a/src/main/resources/migration/V1_10__alter_data.sql b/src/main/resources/migration/V1_10__alter_data.sql
new file mode 100644
index 0000000..47286ad
--- /dev/null
+++ b/src/main/resources/migration/V1_10__alter_data.sql
@@ -0,0 +1,4 @@
+
+/* �뾽泥� IP ���뿭�� 而щ읆 異붽� */
+ALTER TABLE `issue_company` ADD COLUMN `ip_start` varchar(15) NULL;
+ALTER TABLE `issue_company` ADD COLUMN `ip_end` varchar(15) NULL;
\ No newline at end of file
diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml
index 8392915..ac15754 100644
--- a/src/main/resources/mybatis/query-template/issue-template.xml
+++ b/src/main/resources/mybatis/query-template/issue-template.xml
@@ -817,6 +817,36 @@
         HAVING concatUseValue LIKE CONCAT('%', #{useValue}, '%')
     </select>
 
+    <!--    �듅�젙 �궗�슜�옄 �젙�쓽 �븘�뱶 IP 媛믪씠 �뾽泥댁� �룞�씪�븳 �씠�뒋瑜� 議고쉶 -->
+    <select id="findByCustomFieldValueOfIp" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition">
+        SELECT
+            issue.id as id,
+            issue.title as title,
+            customFieldValue.customFieldType AS customFieldType,
+            GROUP_CONCAT(customFieldValue.useValue ORDER BY customFieldValue.customFieldId ASC) AS concatUseValue
+        FROM issue issue FORCE INDEX(reverseIndex)
+        INNER JOIN issue_status as issStatus ON issue.issue_status_id = issStatus.id
+            LEFT OUTER JOIN (
+            SELECT cf.id AS customFieldId, cf.custom_field_type AS customFieldType, issue_custom.use_value AS useValue, issue_custom.issue_id AS issueId
+            FROM issue_custom_field_value issue_custom
+            INNER JOIN custom_field cf ON cf.id = issue_custom.custom_field_id
+            ) customFieldValue ON customFieldValue.issueId = issue.id
+        INNER JOIN issue_company issc ON issc.issue_id = issue.id
+        WHERE issue.issue_type_id = #{issueTypeId}
+        <if test="customFieldType != '' and customFieldType != null">
+            AND customFieldValue.customFieldType = #{customFieldType}
+        </if>
+        <if test="useValue != '' and useValue != null">
+            AND INET_ATON(issc.ip_start) <![CDATA[ <= ]]> #{useValue} AND INET_ATON(issc.ip_end) >= #{useValue}
+        </if>
+        <choose>
+            <when test="issueStatusType != null">
+                AND issStatus.issue_status_type != #{issueStatusType}
+            </when>
+        </choose>
+        GROUP BY issue.id
+    </select>
+
 
     <!--  醫낅즺 �븞�맂 �븯�쐞 �씠�뒋 媛��졇�삤湲� -->
     <select id="findNotCompleteByParentIssueId" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCondition">
diff --git a/src/main/webapp/assets/styles/main.css b/src/main/webapp/assets/styles/main.css
index 6c82a30..5158252 100644
--- a/src/main/webapp/assets/styles/main.css
+++ b/src/main/webapp/assets/styles/main.css
@@ -1484,6 +1484,13 @@
         max-width: 25%;
     }
 
+    .col-lg-3-2 {
+        -webkit-box-flex: 0;
+        -ms-flex: 0 0 25%;
+        flex: 0 0 32.4%;
+        max-width: 32.4%;
+    }
+
     .col-lg-4 {
         -webkit-box-flex: 0;
         -ms-flex: 0 0 33.3333333333%;
diff --git a/src/main/webapp/scripts/app/issue/issueAdd.controller.js b/src/main/webapp/scripts/app/issue/issueAdd.controller.js
index 826375d..75a7ca0 100644
--- a/src/main/webapp/scripts/app/issue/issueAdd.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -89,6 +89,8 @@
                     companyTel : "",  // �뾽泥� �쟾�솕踰덊샇
                     companyEmail : "",  // �뾽泥� �씠硫붿씪
                     companyUrl : "",  // �뾽泥� url
+                    ipStart : "", //ip�떆�옉二쇱냼
+                    ipEnd : "", //ip醫낅즺二쇱냼
                     companyMemo : "",  // �뾽泥� 鍮꾧퀬
                     ispId : -1, // ISP ID
                     ispName : "", // ISP 紐�
@@ -479,6 +481,8 @@
                         $scope.vm.companyTel = result[0].tel;
                         $scope.vm.companyEmail = result[0].email;
                         $scope.vm.companyUrl = result[0].url;
+                        $scope.vm.ipStart = result[0].ipStart;
+                        $scope.vm.ipEnd = result[0].ipEnd;
                         $scope.vm.companyMemo = result[0].memo;
                         $scope.vm.form.companyTypeId = result[0].companyTypeId;
                         $scope.vm.form.parentSectorId = result[0].parentSectorId;
@@ -689,6 +693,8 @@
                                     tel : $scope.vm.companyTel,
                                     email :$scope.vm.companyEmail,
                                     url :$scope.vm.companyUrl,
+                                    ipStart :$scope.vm.ipStart,
+                                    ipEnd :$scope.vm.ipEnd,
                                     memo : $scope.vm.companyMemo,
                                     companyTypeId : $scope.vm.form.companyTypeId,
                                     parentSectorId : $scope.vm.form.parentSectorId,
@@ -705,6 +711,8 @@
                         companyTel : $scope.vm.companyTel,
                         companyEmail :$scope.vm.companyEmail,
                         companyUrl :$scope.vm.companyUrl,
+                        ipStart :$scope.vm.ipStart,
+                        ipEnd :$scope.vm.ipEnd,
                         companyMemo : $scope.vm.companyMemo,
                         companyTypeId : (function () {
                             var companyTypeId = null;
diff --git a/src/main/webapp/scripts/app/issue/issueAddDown.controller.js b/src/main/webapp/scripts/app/issue/issueAddDown.controller.js
index b51b126..82ed200 100644
--- a/src/main/webapp/scripts/app/issue/issueAddDown.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAddDown.controller.js
@@ -90,6 +90,8 @@
                     companyTel : "",  // �뾽泥� �쟾�솕踰덊샇
                     companyEmail : "",  // �뾽泥� �씠硫붿씪
                     companyUrl : "", // �뾽泥� url
+                    ipStart : "", //ip�떆�옉二쇱냼
+                    ipEnd : "", //ip醫낅즺二쇱냼
                     companyMemo : "",  // �뾽泥� 鍮꾧퀬
                     ispId : -1, // ISP ID
                     ispName : "", // ISP 紐�
@@ -468,6 +470,8 @@
                         $scope.vm.companyTel = result[0].tel;
                         $scope.vm.companyEmail = result[0].email;
                         $scope.vm.companyUrl = result[0].url;
+                        $scope.vm.ipStart = result[0].ipStart;
+                        $scope.vm.ipEnd = result[0].ipEnd;
                         $scope.vm.companyMemo = result[0].memo;
                         $scope.vm.form.companyTypeId = result[0].companyTypeId;
                         $scope.vm.form.parentSectorId = result[0].parentSectorId;
@@ -596,6 +600,8 @@
                         companyTel : $scope.vm.companyTel,
                         companyEmail :$scope.vm.companyEmail,
                         companyUrl : $scope.vm.companyUrl,
+                        ipStart :$scope.vm.ipStart,
+                        ipEnd :$scope.vm.ipEnd,
                         companyMemo : $scope.vm.companyMemo,
                         companyTypeId : (function () {
                             var companyTypeId = -1;
@@ -740,6 +746,8 @@
                                     tel : $scope.vm.companyTel,
                                     email :$scope.vm.companyEmail,
                                     url :$scope.vm.companyUrl,
+                                    ipStart :$scope.vm.ipStart,
+                                    ipEnd :$scope.vm.ipEnd,
                                     memo : $scope.vm.companyMemo,
                                     companyTypeId : $scope.vm.form.companyTypeId,
                                     parentSectorId : $scope.vm.form.parentSectorId,
diff --git a/src/main/webapp/scripts/app/issue/issueAddRelation.controller.js b/src/main/webapp/scripts/app/issue/issueAddRelation.controller.js
index 1bae416..b864616 100644
--- a/src/main/webapp/scripts/app/issue/issueAddRelation.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAddRelation.controller.js
@@ -98,6 +98,8 @@
                     companyTel : "",  // �뾽泥� �쟾�솕踰덊샇
                     companyEmail : "",  // �뾽泥� �씠硫붿씪
                     companyUrl : "", // �뾽泥� url
+                    ipStart : "", //ip�떆�옉二쇱냼
+                    ipEnd : "", //ip醫낅즺二쇱냼
                     companyMemo : "",  // �뾽泥� 鍮꾧퀬
                     ispId : -1, // ISP ID
                     ispName : "", // ISP 紐�
@@ -485,6 +487,8 @@
                         $scope.vm.companyTel = result[0].tel;
                         $scope.vm.companyEmail = result[0].email;
                         $scope.vm.companyUrl = result[0].url;
+                        $scope.vm.ipStart = result[0].ipStart;
+                        $scope.vm.ipEnd = result[0].ipEnd;
                         $scope.vm.companyMemo = result[0].memo;
                         $scope.vm.form.companyTypeId = result[0].companyTypeId;
                         $scope.vm.form.parentSectorId = result[0].parentSectorId;
@@ -613,6 +617,8 @@
                         companyTel : $scope.vm.companyTel,
                         companyEmail :$scope.vm.companyEmail,
                         companyUrl : $scope.vm.companyUrl,
+                        ipStart :$scope.vm.ipStart,
+                        ipEnd :$scope.vm.ipEnd,
                         companyMemo : $scope.vm.companyMemo,
                         companyTypeId : (function () {
                             var companyTypeId = -1;
@@ -757,6 +763,8 @@
                                     tel : $scope.vm.companyTel,
                                     email :$scope.vm.companyEmail,
                                     url :$scope.vm.companyUrl,
+                                    ipStart :$scope.vm.ipStart,
+                                    ipEnd :$scope.vm.ipEnd,
                                     memo : $scope.vm.companyMemo,
                                     companyTypeId : $scope.vm.form.companyTypeId,
                                     parentSectorId : $scope.vm.form.parentSectorId,
diff --git a/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js b/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js
index 683c1ef..95b70bc 100644
--- a/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js
@@ -215,7 +215,7 @@
 
                 //  �뙆�듃�꼫瑜� 議고쉶�븳 �썑 �몴�떆�븷 �씠�뒋 �뀒�씠釉� 而щ읆�쓣 以�鍮꾪븳�떎.
                 $scope.fn.getUsePartner().then(function (result) {
-                    var count = 9;
+                    let count = 9;
                     angular.forEach(result, function (partner) {
                         $scope.vm.issueTableConfigs.push({
                             name : partner.name,
@@ -235,7 +235,7 @@
                             checkboxShow : true,
                             position : count
                         });
-                        count++;
+                        count ++;
                     });
                     //  �궗�슜�옄 �젙�쓽 �븘�뱶瑜� 議고쉶�븳 �썑 �몴�떆�븷 �씠�뒋 �뀒�씠釉� 而щ읆�쓣 以�鍮꾪븳�떎.
                     $scope.fn.getCustomFields().then(function (result) {
diff --git a/src/main/webapp/scripts/app/issue/issueModify.controller.js b/src/main/webapp/scripts/app/issue/issueModify.controller.js
index 39d20af..196b69a 100644
--- a/src/main/webapp/scripts/app/issue/issueModify.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueModify.controller.js
@@ -98,6 +98,8 @@
                     companyTel : "",  // �뾽泥� �쟾�솕踰덊샇
                     companyEmail : "",  // �뾽泥� �씠硫붿씪
                     companyUrl : "",  // �뾽泥� url
+                    ipStart : "", //ip�떆�옉二쇱냼
+                    ipEnd : "", //ip醫낅즺二쇱냼
                     companyMemo : "",  // �뾽泥� 鍮꾧퀬
                     ispId : -1,
                     ispName : "", // ISP 紐�
@@ -493,6 +495,8 @@
                         $scope.vm.companyTel = result[0].tel;
                         $scope.vm.companyEmail = result[0].email;
                         $scope.vm.companyUrl = result[0].url;
+                        $scope.vm.ipStart = result[0].ipStart;
+                        $scope.vm.ipEnd = result[0].ipEnd;
                         $scope.vm.companyMemo = result[0].memo;
                         $scope.vm.form.companyTypeId = result[0].companyTypeId;
                         $scope.vm.form.parentSectorId = result[0].parentSectorId;
@@ -590,6 +594,8 @@
                         companyTel : $scope.vm.companyTel,
                         companyEmail :$scope.vm.companyEmail,
                         companyUrl : $scope.vm.companyUrl,
+                        ipStart :$scope.vm.ipStart,
+                        ipEnd :$scope.vm.ipEnd,
                         companyMemo : $scope.vm.companyMemo,
 
                         companyTypeId : (function () {
@@ -748,6 +754,8 @@
                                     tel : $scope.vm.companyTel,
                                     email :$scope.vm.companyEmail,
                                     url :$scope.vm.companyUrl,
+                                    ipStart :$scope.vm.ipStart,
+                                    ipEnd :$scope.vm.ipEnd,
                                     memo : $scope.vm.companyMemo,
                                     companyTypeId : $scope.vm.form.companyTypeId,
                                     parentSectorId : $scope.vm.form.parentSectorId,
@@ -1139,6 +1147,8 @@
                                     $scope.vm.companyTel = issueCompanyFieldValue.tel;
                                     $scope.vm.companyEmail = issueCompanyFieldValue.email;
                                     $scope.vm.companyUrl = issueCompanyFieldValue.url;
+                                    $scope.vm.ipStart = issueCompanyFieldValue.ipStart;
+                                    $scope.vm.ipEnd = issueCompanyFieldValue.ipEnd;
                                     $scope.vm.companyMemo = issueCompanyFieldValue.memo;
                                     $scope.vm.form.companyTypeId = issueCompanyFieldValue.companyTypeId;
                                     $scope.vm.form.companyType = issueCompanyFieldValue.companyTypeName;
diff --git a/src/main/webapp/views/issue/issueAdd.html b/src/main/webapp/views/issue/issueAdd.html
index f35320d..bdc533e 100644
--- a/src/main/webapp/views/issue/issueAdd.html
+++ b/src/main/webapp/views/issue/issueAdd.html
@@ -484,7 +484,7 @@
                         </div>-->
                     </div>
                 </div>
-                <div class="col-lg-4">
+                <div class="col-lg-3-2">
                     <div class="form-group mgb5">
                         <label for="companyFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                         <input id="companyFieldUrlAddForm"
@@ -501,6 +501,45 @@
                         </div>-->
                     </div>
                 </div>
+                <div class="col-lg-2">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldIpStartAddForm" class="issue-label"><span translate="companyField.ipRange">ip ���뿭��</span></label>
+                        <input id="companyFieldIpStartAddForm"
+                               name="ipStart"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
+                               placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
+                               autocomplete="off"
+                               ng-model="vm.ipStart"
+                        >
+                        <div ng-if="issueAddForm.ipStart.$error.pattern" class="help-block form-text text-danger"
+                             translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
+                <div class="mt-30">
+                    <label class="issue-label">~</label>
+                </div>
+                <div class="col-lg-2 mt-1">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldIpEndAddForm"></label>
+                        <input id="companyFieldIpEndAddForm"
+                               name="ipEnd"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
+                               placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
+                               autocomplete="off"
+                               ng-model="vm.ipEnd"
+                        >
+                        <div ng-if="issueAddForm.ipEnd.$error.pattern" class="help-block form-text text-danger"
+                             translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
                 <div class="col-lg-4">
                     <div class="form-group mgb5">
                         <label for="companyFieldDescAddForm" class="issue-label"><span translate="companyField.memo">鍮꾧퀬</span></label>
diff --git a/src/main/webapp/views/issue/issueAddDown.html b/src/main/webapp/views/issue/issueAddDown.html
index 858ec63..9b41029 100644
--- a/src/main/webapp/views/issue/issueAddDown.html
+++ b/src/main/webapp/views/issue/issueAddDown.html
@@ -450,7 +450,7 @@
                         </div>-->
                     </div>
                 </div>
-                <div class="col-lg-4">
+                <div class="col-lg-3-2">
                     <div class="form-group mgb5">
                         <label for="companyFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                         <input id="companyFieldUrlAddForm"
@@ -467,6 +467,45 @@
                         </div>-->
                     </div>
                 </div>
+                <div class="col-lg-2">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldIpStartAddForm" class="issue-label"><span translate="companyField.ipRange">ip ���뿭��</span></label>
+                        <input id="companyFieldIpStartAddForm"
+                               name="ipStart"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
+                               placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
+                               autocomplete="off"
+                               ng-model="vm.ipStart"
+                        >
+                        <div ng-if="issueAddDownForm.ipStart.$error.pattern" class="help-block form-text text-danger"
+                             translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
+                <div class="mt-30">
+                    <label class="issue-label">~</label>
+                </div>
+                <div class="col-lg-2 mt-1">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldIpEndAddForm"></label>
+                        <input id="companyFieldIpEndAddForm"
+                               name="ipEnd"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
+                               placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
+                               autocomplete="off"
+                               ng-model="vm.ipEnd"
+                        >
+                        <div ng-if="issueAddDownForm.ipEnd.$error.pattern" class="help-block form-text text-danger"
+                             translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
                 <div class="col-lg-4">
                     <div class="form-group mgb5">
                         <label for="companyFieldDescAddForm" class="issue-label"><span translate="companyField.memo">鍮꾧퀬</span></label>
diff --git a/src/main/webapp/views/issue/issueAddRelation.html b/src/main/webapp/views/issue/issueAddRelation.html
index dd3cfbd..5bf1a34 100644
--- a/src/main/webapp/views/issue/issueAddRelation.html
+++ b/src/main/webapp/views/issue/issueAddRelation.html
@@ -453,7 +453,7 @@
                         </div>-->
                     </div>
                 </div>
-                <div class="col-lg-4">
+                <div class="col-lg-3-2">
                     <div class="form-group mgb5">
                         <label for="companyFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                         <input id="companyFieldUrlAddForm"
@@ -470,6 +470,45 @@
                         </div>-->
                     </div>
                 </div>
+                <div class="col-lg-2">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldIpStartAddForm" class="issue-label"><span translate="companyField.ipRange">ip ���뿭��</span></label>
+                        <input id="companyFieldIpStartAddForm"
+                               name="ipStart"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
+                               placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
+                               autocomplete="off"
+                               ng-model="vm.ipStart"
+                        >
+                        <div ng-if="issueAddRelationForm.ipStart.$error.pattern" class="help-block form-text text-danger"
+                             translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
+                <div class="mt-30">
+                    <label class="issue-label">~</label>
+                </div>
+                <div class="col-lg-2 mt-1">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldIpEndAddForm"></label>
+                        <input id="companyFieldIpEndAddForm"
+                               name="ipEnd"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
+                               placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
+                               autocomplete="off"
+                               ng-model="vm.ipEnd"
+                        >
+                        <div ng-if="issueAddRelationForm.ipEnd.$error.pattern" class="help-block form-text text-danger"
+                             translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
                 <div class="col-lg-4">
                     <div class="form-group mgb5">
                         <label for="companyFieldDescAddForm" class="issue-label"><span translate="companyField.memo">鍮꾧퀬</span></label>
diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html
index a794f0a..9b71d71 100644
--- a/src/main/webapp/views/issue/issueDetail.html
+++ b/src/main/webapp/views/issue/issueDetail.html
@@ -345,6 +345,15 @@
                     <div class="col-sm-2">
                         <div class="form-group">
                             <div class="">
+                                <span translate="companyField.ipRange">IP ���뿭��</span>:
+                                <span>{{vm.viewer.issueCompanyVos[0].ipStart}} ~ {{vm.viewer.issueCompanyVos[0].ipEnd}}</span>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="col-sm-2">
+                        <div class="form-group">
+                            <div class="">
                                 <span translate="companyField.memo">鍮꾧퀬</span>:
                                 <span>{{vm.viewer.issueCompanyVos[0].memo}}</span>
                             </div>
diff --git a/src/main/webapp/views/issue/issueModify.html b/src/main/webapp/views/issue/issueModify.html
index d4c911d..50cf7d7 100644
--- a/src/main/webapp/views/issue/issueModify.html
+++ b/src/main/webapp/views/issue/issueModify.html
@@ -482,7 +482,7 @@
                         </div>-->
                     </div>
                 </div>
-                <div class="col-lg-4">
+                <div class="col-lg-3-2">
                     <div class="form-group mgb5">
                         <label for="companyFieldUrlAddForm" class="issue-label"><span translate="companyField.url">url</span></label>
                         <input id="companyFieldUrlAddForm"
@@ -499,6 +499,45 @@
                         </div>-->
                     </div>
                 </div>
+                <div class="col-lg-2">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldIpStartAddForm" class="issue-label"><span translate="companyField.ipRange">ip ���뿭��</span></label>
+                        <input id="companyFieldIpStartAddForm"
+                               name="ipStart"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
+                               placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
+                               autocomplete="off"
+                               ng-model="vm.ipStart"
+                        >
+                        <div ng-if="issueModifyForm.ipStart.$error.pattern" class="help-block form-text text-danger"
+                             translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
+                <div class="mt-30">
+                    <label class="issue-label">~</label>
+                </div>
+                <div class="col-lg-2 mt-1">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldIpEndAddForm"></label>
+                        <input id="companyFieldIpEndAddForm"
+                               name="ipEnd"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
+                               placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
+                               autocomplete="off"
+                               ng-model="vm.ipEnd"
+                        >
+                        <div ng-if="issueModifyForm.ipEnd.$error.pattern" class="help-block form-text text-danger"
+                             translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
                 <div class="col-lg-4">
                     <div class="form-group mgb5">
                         <label for="companyFieldDescAddForm" class="issue-label"><span translate="companyField.memo">鍮꾧퀬</span></label>

--
Gitblit v1.8.0