From 5f4db7ac47dca80e2ca9c9bda39408aa83e484de Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 월, 29 11월 2021 14:59:53 +0900
Subject: [PATCH] 사용자정의필드 추가 수정, 이슈 메일 발송 대상자 추가

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java                 |   48 +++++++++++++++++------
 src/main/java/kr/wisestone/owl/service/IssueService.java                          |    2 +
 src/main/java/kr/wisestone/owl/web/controller/IssueController.java                |   12 ++++++
 src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java |    6 +++
 src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java          |    6 +++
 5 files changed, 61 insertions(+), 13 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/IssueService.java b/src/main/java/kr/wisestone/owl/service/IssueService.java
index 09eccea..4b63770 100644
--- a/src/main/java/kr/wisestone/owl/service/IssueService.java
+++ b/src/main/java/kr/wisestone/owl/service/IssueService.java
@@ -72,4 +72,6 @@
     void modifyParentIssue(IssueForm issueForm);
 
     void findPartner(Map<String, Object> resJsonData, Map<String, Object> params);
+
+    void findMailTarget(Map<String, Object> resJsonData, Map<String, Object> params);
 }
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 c35f695..34e6886 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java
@@ -295,6 +295,12 @@
 
                 switch (CustomFieldType.valueOf(issueCustomFieldValueCondition.getCustomFieldType())) {
                     case INPUT:
+                    case NUMBER:
+                    case DATETIME:
+                    case IP_ADDRESS:
+                    case EMAIL:
+                    case SITE:
+                    case TEL:
                         result = this.issueCustomFieldValueMapper.findLikeUseValue(issueCustomFieldValueCondition);
                         break;
                     case MULTI_SELECT:
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
index 615b48b..71671dd 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
@@ -926,6 +926,12 @@
         if (StringUtils.isEmpty(value)) {
             switch(customFieldType) {
                 case INPUT:
+                case NUMBER:
+                case DATETIME:
+                case IP_ADDRESS:
+                case EMAIL:
+                case SITE:
+                case TEL:
                     result = "<span translate=\"common.noValueEntered\">�엯�젰�븳 媛믪씠 �뾾�뒿�땲�떎.</span>";
                     break;
                 case SINGLE_SELECT:
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 d1b2243..c74683f 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -830,20 +830,23 @@
         List<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId());
         List<IssueVo> downIssueVos = ConvertUtil.convertObjectsToClasses(downIssues, IssueVo.class);
         List<IssueVo> resultList = new ArrayList<>();
-
-        for(IssueVo downIssueVo : downIssueVos){
-            for(Issue downIssue : downIssues){
-                downIssueVo.setTitle(downIssue.getTitle());
-                downIssueVo.setIssueTypeVo(ConvertUtil.copyProperties(downIssue.getIssueType(), IssueTypeVo.class));
-                downIssueVo.setPriorityVo(ConvertUtil.copyProperties(downIssue.getPriority(), PriorityVo.class));
-                downIssueVo.setSeverityVo(ConvertUtil.copyProperties(downIssue.getSeverity(), SeverityVo.class));
-                this.setRegister(downIssue, downIssueVo); // �벑濡앹옄
-                this.setIssueDepartment(downIssue, downIssueVo);  //  �떞�떦遺��꽌 �젙蹂� �뀑�똿
-                this.setIssueCustomFields(downIssue, downIssueVo);   // �궗�슜�옄�젙�쓽�븘�뱶 �젙蹂� �꽭�똿
+        if(downIssues != null && downIssueVos.size()>0){
+            for(IssueVo downIssueVo : downIssueVos){
+                for(Issue downIssue : downIssues){
+                    downIssueVo.setTitle(downIssue.getTitle());
+                    downIssueVo.setIssueTypeVo(ConvertUtil.copyProperties(downIssue.getIssueType(), IssueTypeVo.class));
+                    downIssueVo.setPriorityVo(ConvertUtil.copyProperties(downIssue.getPriority(), PriorityVo.class));
+                    downIssueVo.setSeverityVo(ConvertUtil.copyProperties(downIssue.getSeverity(), SeverityVo.class));
+                    this.setRegister(downIssue, downIssueVo); // �벑濡앹옄
+                    this.setIssueDepartment(downIssue, downIssueVo);  //  �떞�떦遺��꽌 �젙蹂� �뀑�똿
+                    this.setIssueCustomFields(downIssue, downIssueVo);   // �궗�슜�옄�젙�쓽�븘�뱶 �젙蹂� �꽭�똿
+                }
+                resultList.add(downIssueVo);
             }
-            resultList.add(downIssueVo);
+            issueVo.setIssueDownVos(resultList); //�봽濡좏듃�뿉�꽌 List�삎�깭濡� 諛쏆븘以섏꽌 由ъ뒪�듃 �삎�떇�쑝濡� 蹂대궡以�
+        }else{
+            issueVo.setIssueDownVos(null);
         }
-        issueVo.setIssueDownVos(resultList); //�봽濡좏듃�뿉�꽌 List�삎�깭濡� 諛쏆븘以섏꽌 由ъ뒪�듃 �삎�떇�쑝濡� 蹂대궡以�
     }
 
     //  �씠�뒋 �긽�꽭 �젙蹂대�� �뀑�똿�븳�떎.
@@ -865,7 +868,7 @@
         this.setIssueComments(issue, issueVo);  //  �뙎湲� �젙蹂� �뀑�똿
         this.setIssueHistory(issue, issueVo);   //  �씠�뒋 湲곕줉 �젙蹂� �뀑�똿
         this.setRelationIssue(issue, issueVo);        //�뿰愿� �씪媛� �뀑�똿
-        this.setDownIssues(issue, issueVo);
+        this.setDownIssues(issue, issueVo); //�븯�쐞 �씪媛� �꽭�똿
 
         IssueType issueType = this.issueTypeService.getIssueType(issueVo.getIssueTypeVo().getId()); // �씠�뒋�쓽 �씠�뒋�쑀�삎 媛앹껜
         Integer using = issueType.getUsePartner() != null ? issueType.getUsePartner().intValue() : 0; // �씠�뒋�쑀�삎蹂꾨줈 �궗�슜以묒씤 �뾽泥�/ISP/�샇�뒪�똿 媛�
@@ -2391,6 +2394,12 @@
 
             switch (customField.getCustomFieldType()) {
                 case INPUT:
+                case NUMBER:
+                case DATETIME:
+                case IP_ADDRESS:
+                case EMAIL:
+                case SITE:
+                case TEL:
                     if (cellValue.length() > 100) {
                         throw new OwlRuntimeException(
                                 this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_TEXT_TYPE_MAX_LENGTH_OUT));
@@ -2700,4 +2709,17 @@
             resJsonData.put(Constants.RES_KEY_CONTENTS, usePartnerVos);
         }
     }
+
+    @Override
+    public void findMailTarget(Map<String, Object> resJsonData, Map<String, Object> params) {
+        Long issueId = MapUtil.getLong(params, "issueId");
+        Issue issue = this.getIssue(issueId);
+        IssueVo issueVo = new IssueVo();
+
+        this.setIssueCompanyField(issue, issueVo);  //�뾽泥� �젙蹂� �꽭�똿
+        this.setIssueIspField(issue, issueVo);  //ISP �젙蹂� �꽭�똿
+        this.setIssueHostingField(issue, issueVo);  //HOSTING �젙蹂� �꽭�똿
+
+        resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo);
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
index a035e18..d3eead3 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
@@ -75,6 +75,18 @@
         return this.setSuccessMessage(resJsonData);
     }
 
+    //  硫붿씪 諛쒖넚 ���긽�옄 紐⑸줉 議고쉶
+    @RequestMapping(value = "/issue/findMailTarget", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> findMailTarget(@RequestBody Map<String, Map<String, Object>> params) {
+        Map<String, Object> resJsonData = new HashMap<>();
+
+        this.issueService.findMailTarget(resJsonData, params.get(Constants.REQ_KEY_CONTENT));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
     //  �씠�뒋 �긽�꽭 議고쉶
     @RequestMapping(value = "/issue/detail", produces = MediaType.APPLICATION_JSON_VALUE)
     public

--
Gitblit v1.8.0