From d993a6d7d435769c77163ddd8b844b6a88430a35 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 17 12월 2021 09:00:23 +0900
Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java                 |    5 +++--
 src/main/java/kr/wisestone/owl/vo/ResMessageVo.java                               |    3 ---
 src/main/java/kr/wisestone/owl/service/IssueCustomFieldValueService.java          |    2 +-
 src/main/java/kr/wisestone/owl/constant/MsgConstants.java                         |    1 +
 src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java |   33 ++++++++++++++++++---------------
 src/main/webapp/index.html                                                        |    2 +-
 6 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
index 3366440..559d4cc 100644
--- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -81,6 +81,7 @@
     public static final String WORKFLOW_DEPARTMENT_NOT_EXIST = "WORKFLOW_DEPARTMENT_NOT_EXIST";   //  �썙�겕�뵆濡쒖슦 遺��꽌媛� 議댁옱�븯吏� �븡�뒿�땲�떎.
 
     public static final String CUSTOM_FIELD_NOT_EXIST = "CUSTOM_FIELD_NOT_EXIST";   //  �궗�슜�옄 �젙�쓽 �븘�뱶媛� 議댁옱�븯吏� �븡�뒿�땲�떎.
+    public static final String ISSUE_TYPE_CUSTOM_FIELD_NOT_EXIST = "ISSUE_TYPE_CUSTOM_FIELD_NOT_EXIST";   //  �봽濡쒖젥�듃 �궡 �씠�뒋�쑀�삎�뿉 �꽕�젙�맂 �궗�슜�옄 �젙�쓽 �븘�뱶媛� 議댁옱�븯吏� �븡�뒿�땲�떎.
     public static final String CUSTOM_FIELD_NOT_NAME = "CUSTOM_FIELD_NOT_NAME"; //  �궗�슜�옄 �젙�쓽 �븘�뱶紐낆씠 �엯�젰�릺吏� �븡�븯�뒿�땲�떎.
     public static final String CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = "CUSTOM_FIELD_NAME_MAX_LENGTH_OUT";   //  �궗�슜�옄 �젙�쓽 �븘�뱶紐낆� 理쒕� 50湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.
     public static final String CUSTOM_FIELD_USED_NAME = "CUSTOM_FIELD_USED_NAME";   //  �궗�슜�옄 �젙�쓽 �븘�뱶 紐낆씠 �씠誘� �궗�슜�릺怨� �엳�뒿�땲�떎.
diff --git a/src/main/java/kr/wisestone/owl/service/IssueCustomFieldValueService.java b/src/main/java/kr/wisestone/owl/service/IssueCustomFieldValueService.java
index 5d972f1..384f0b8 100644
--- a/src/main/java/kr/wisestone/owl/service/IssueCustomFieldValueService.java
+++ b/src/main/java/kr/wisestone/owl/service/IssueCustomFieldValueService.java
@@ -16,7 +16,7 @@
 public interface IssueCustomFieldValueService extends AbstractService<IssueCustomFieldValue, Long, JpaRepository<IssueCustomFieldValue, Long>>{
     void modifyIssueCustomFieldValue(Issue issue, List<Map<String, Object>> issueCustomFields);
 
-    void getCustomFieldAndIssueTypeCustomField(Map<String, Object> map, Issue issue, Map<String, Object> result);
+    boolean getCustomFieldAndIssueTypeCustomField(Map<String, Object> map, Issue issue, Map<String, Object> result);
 
     List<IssueCustomFieldValueVo> findByIssueId(Long issueId);
 
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java
index 6f556c6..76e4b96 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java
@@ -63,39 +63,42 @@
         for (Map<String, Object> map : issueCustomFields) {
             Map<String, Object> result = new HashMap<>();
             //  customFieldVo �뿉�꽌 �궗�슜�옄 �젙�쓽 �븘�뱶�� �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� 媛��졇�삩�떎.
-            this.getCustomFieldAndIssueTypeCustomField(map, issue, result);
-            List<String> useValues = MapUtil.getStrings(map, "useValues");
+            boolean useCustomField = this.getCustomFieldAndIssueTypeCustomField(map, issue, result);
+            if (useCustomField) {
+                List<String> useValues = MapUtil.getStrings(map, "useValues");
 
-            if (useValues != null) {
-                for (String useValue : useValues) {
-                    if (!StringUtils.isEmpty(useValue)) {
-                        //  Xss 怨듦꺽 諛⑹뼱瑜� �쐞�빐 script 怨듬갚�쑝濡� 移섑솚
-                        IssueCustomFieldValue issueCustomFieldValue = new IssueCustomFieldValue(issue, (CustomField)result.get("customField"), (IssueTypeCustomField)result.get("issueTypeCustomField"), useValue);
-                        issueCustomFieldValues.add(issueCustomFieldValue);
+                if (useValues != null) {
+                    for (String useValue : useValues) {
+                        if (!StringUtils.isEmpty(useValue)) {
+                            //  Xss 怨듦꺽 諛⑹뼱瑜� �쐞�빐 script 怨듬갚�쑝濡� 移섑솚
+                            IssueCustomFieldValue issueCustomFieldValue = new IssueCustomFieldValue(issue, (CustomField) result.get("customField"), (IssueTypeCustomField) result.get("issueTypeCustomField"), useValue);
+                            issueCustomFieldValues.add(issueCustomFieldValue);
+                        }
                     }
                 }
             }
         }
 
         if (issueCustomFieldValues.size() > 0) {
-            try {
-                this.issueCustomFieldValueRepository.saveAll(issueCustomFieldValues);
-            } catch (Exception ex) {
-                throw new OwlRuntimeException(
-                        this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_NOT_EXIST));
-            }
+            this.issueCustomFieldValueRepository.saveAll(issueCustomFieldValues);
         }
     }
 
     //  customFieldVo �뿉�꽌 �궗�슜�옄 �젙�쓽 �븘�뱶�� �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� 媛��졇�삩�떎.
     @Override
-    public void getCustomFieldAndIssueTypeCustomField(Map<String, Object> map, Issue issue, Map<String, Object> result) {
+    public boolean getCustomFieldAndIssueTypeCustomField(Map<String, Object> map, Issue issue, Map<String, Object> result) {
         Map<String, Object> customFieldMap = (Map<String, Object>) MapUtil.getObject(map, "customFieldVo");
         CustomField customField = this.customFieldService.getCustomField(MapUtil.getLong(customFieldMap, "id"));
         IssueTypeCustomField issueTypeCustomField = this.issueTypeCustomFieldService.findByProjectIdAndIssueTypeIdAndCustomFieldId(issue.getProject().getId(), issue.getIssueType().getId(), customField.getId());
+        if (issueTypeCustomField == null) {
+            // �꽕�젙�맂 �궗�슜�옄 �젙�쓽 �븘�뱶媛� �뾾�쓣�븣
+            return false;
+        }
 
         result.put("customField", customField);
         result.put("issueTypeCustomField", issueTypeCustomField);
+
+        return true;
     }
 
     //  �씠�뒋�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪쓣 議고쉶�븳�떎.
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 549ac90..be9364c 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -375,10 +375,11 @@
         IssueForm issueForm = this.convertToIssueForm(issueApiForm, user);
 
         List<Issue> issues = Lists.newArrayList();
-        if (issueForm.getParentIssueId() != null) {
+        if (issueForm.getParentIssueId() != null    // 湲곗〈 異붽��맂 �긽�쐞 �씪媛먯씠 �뾾嫄곕굹 �꽕�젙�맂 以묐났 �씠�뒋 id媛� �뾾�쓣�븣
+                || issueApiForm.getUseIssueCustomFieldIds().size() == 0) {
             issues.add(addIssue(user, issueForm, issueApiForm.getMultipartFiles()));
         } else {
-            // �긽�쐞 �씠�뒋 異붽�
+            // 媛��긽 �긽�쐞 �씠�뒋 異붽�
             IssueForm parentIssueForm = issueForm.clone();
             parentIssueForm.setUseIssueCustomFields(issueApiForm.getUseIssueCustomFieldIds());
             Issue issue = addIssue(user, parentIssueForm, null);
diff --git a/src/main/java/kr/wisestone/owl/vo/ResMessageVo.java b/src/main/java/kr/wisestone/owl/vo/ResMessageVo.java
index f5b8c0e..94f8ea6 100644
--- a/src/main/java/kr/wisestone/owl/vo/ResMessageVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/ResMessageVo.java
@@ -47,7 +47,4 @@
         return "ResMessage [message=" + this.message + ", code=" + this.code
                 + ", status=" + this.status + "]";
     }
-
-
-
 }
diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html
index a147d6e..7999ff3 100644
--- a/src/main/webapp/index.html
+++ b/src/main/webapp/index.html
@@ -40,7 +40,7 @@
     <link type="text/css" rel="stylesheet" href="custom_components/js-autocomplete-single/js-autocomplete-single.css">
     <link type="text/css" rel="stylesheet" href="custom_components/js-autocomplete-multi/js-autocomplete-multi.css">
     <link type="text/css" rel="stylesheet" href="custom_components/js-html-diff/js-html-diff.css">
-    <link type="text/css" rel="stylesheet" href="assets/styles/main.css?version=0.9.2">
+    <link type="text/css" rel="stylesheet" href="assets/styles/main.css?version=0.9.4">
     <link type="text/css" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Rubik:300,400,500">
 
     <!--    google font -->

--
Gitblit v1.8.0