From f01dc01ba632addc8e893fea0843a3d77aac7e25 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 18 11월 2021 09:41:54 +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 |  137 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 118 insertions(+), 19 deletions(-)

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 6190016..800e2e7 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -44,7 +44,6 @@
 import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.util.*;
-import java.util.concurrent.locks.Condition;
 
 @Service
 public class IssueServiceImpl extends AbstractServiceImpl<Issue, Long, JpaRepository<Issue, Long>> implements IssueService {
@@ -89,6 +88,15 @@
 
     @Autowired
     private IssueCustomFieldValueService issueCustomFieldValueService;
+
+    @Autowired
+    private IssueCompanyService issueCompanyService;
+
+    @Autowired
+    private IssueIspService issueIspService;
+
+    @Autowired
+    private IssueHostingService issueHostingService;
 
     @Autowired
     private IssueUserService issueUserService;
@@ -197,22 +205,6 @@
         issue.setPriority(priority);
         issue.setSeverity(severity);
 
-        //  �뾽泥� �븘�뱶 �쑀�슚�꽦 泥댄겕
-        if(issueForm.getCompanyId() != null){
-            CompanyField companyField = this.companyFieldService.getCompany(issueForm.getCompanyId());
-            issue.setCompanyField(companyField);
-        }
-        //  ISP �븘�뱶 �쑀�슚�꽦 泥댄겕
-        if(issueForm.getIspId() != null) {
-            IspField ispField = this.ispFieldService.getIsp(issueForm.getIspId());
-            issue.setIspFieldId(ispField);
-        }
-        //  HOSTING �븘�뱶 �쑀�슚�꽦 泥댄겕
-        if (issueForm.getHostingId() != null){
-            HostingField hostingField = this.hostingFieldService.getHosting(issueForm.getHostingId());
-            issue.setHostingFieldId(hostingField);
-        }
-
         issue.setIssueNumber(this.issueNumberGeneratorService.generateIssueNumber(project));    //  媛� �봽濡쒖젥�듃�쓽 怨좎쑀 �씠�뒋 踰덊샇 �깮�꽦
 
         this.issueRepository.saveAndFlush(issue);
@@ -241,6 +233,12 @@
         this.reservationIssueEmail(issue.getId(), EmailType.ISSUE_ADD);
         //  �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏�
         log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_ADD));
+        //  �뾽泥� �젙蹂� ���옣
+        this.issueCompanyService.modifyIssueCompanyField(issue, issueForm.getIssueCompanyFields());
+        //  ISP �젙蹂� ���옣
+        this.issueIspService.modifyIssueIspField(issue, issueForm.getIssueIspFields());
+        //  HOSTING �젙蹂� ���옣
+        this.issueHostingService.modifyIssueHostingField(issue, issueForm.getIssueHostingFields());
 
         return issue;
     }
@@ -345,6 +343,9 @@
 
         issueMap.put("customFields", customFields);
         issueMap.put("description", issue.getDescription());
+
+        //�뾽泥�,ISP,HOSTING 異붽�
+
 
         StringBuilder attachedFileBuilder = new StringBuilder();
 
@@ -454,7 +455,7 @@
     @Override
     @Transactional(readOnly = true)
     public List<IssueVo> findChartIssue(Map<String, Object> resJsonData,
-                                   IssueCondition issueCondition, Pageable pageable) {
+                                        IssueCondition issueCondition, Pageable pageable) {
 
         //  寃��깋 議곌굔�쓣 留뚮뱺�떎
         if (!this.makeIssueSearchCondition(issueCondition,Lists.newArrayList("01", "02", "03"), pageable)) {
@@ -564,9 +565,16 @@
 
         //  �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂� 異붽�
         this.setIssueCustomFieldValue(issueVos, issueCondition);
+        //  �뾽泥� �젙蹂� 異붽�
+        //this.setIssueCompanyField(issueVos, issueCondition);
+        //  ISP �젙蹂� 異붽�
+        //this.setIssueIspField(issueVos, issueCondition);
+        //  HOSTING �젙蹂� 異붽�
+        //this.setIssueHostingField(issueVos, issueCondition);
+
     }
 
-        //  寃��깋 議곌굔�쓣 留뚮뱺�떎
+    //  寃��깋 議곌굔�쓣 留뚮뱺�떎
     private boolean makeIssueSearchCondition(IssueCondition condition, List<String> projectStatues, Pageable pageable) {
         if (pageable != null) {
             condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
@@ -799,6 +807,7 @@
                     this.setAttachedFiles(issue, issueVo);  //  泥⑤� �뙆�씪 �젙蹂� �뀑�똿
                     this.setIssueCustomFields(issue, issueVo);  //  �궗�슜�옄 �젙�쓽 �븘�뱶 媛� �젙蹂� �뀑�똿
                     this.setRelationIssue(issue, issueVo);        //�뿰愿� �씪媛� �뀑�똿
+                    this.setDownIssues(issue, issueVo);
 
                     break;
 
@@ -812,6 +821,13 @@
         log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_DETAIL));
 
         resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo);
+    }
+
+    // �븯�쐞 �씠�뒋 �젙蹂대�� �뀑�똿�븳�떎
+    private void setDownIssues(Issue issue, IssueVo issueVo) {
+        List<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId());
+        List<IssueVo> issueVos = ConvertUtil.convertObjectsToClasses(downIssues, IssueVo.class);
+        issueVo.setIssueDownVos(issueVos);
     }
 
     //  �씠�뒋 �긽�꽭 �젙蹂대�� �뀑�똿�븳�떎.
@@ -833,6 +849,7 @@
         this.setIssueComments(issue, issueVo);  //  �뙎湲� �젙蹂� �뀑�똿
         this.setIssueHistory(issue, issueVo);   //  �씠�뒋 湲곕줉 �젙蹂� �뀑�똿
         this.setRelationIssue(issue, issueVo);        //�뿰愿� �씪媛� �뀑�똿
+        this.setDownIssues(issue, issueVo);
     }
 
     //  �벑濡앹옄 �젙蹂� 異붽�
@@ -1597,6 +1614,69 @@
         }
     }
 
+    //  �뾽泥� �젙蹂� 異붽�
+    private void setIssueCompanyField(List<IssueVo> issueVos, IssueCondition issueCondition) {
+        //  �씠�뒋�뿉�꽌 ���옣�븳 �뾽泥� 媛믪쓣 議고쉶�븳�떎.
+        List<Map<String, Object>> issueCompanyFields = this.issueCompanyService.findInIssueIds(issueCondition);
+
+        for (IssueVo issueVo : issueVos) {
+            for (Map<String, Object> issueCompanyField : issueCompanyFields) {
+                if (issueVo.getId().equals(MapUtil.getLong(issueCompanyField, "issueId"))) {
+                    IssueCompanyVo issueCompanyVo = new IssueCompanyVo();
+                    issueCompanyVo.setName(MapUtil.getString(issueCompanyField, "companyName"));
+                    issueCompanyVo.setManager(MapUtil.getString(issueCompanyField, "companyManager"));
+                    issueCompanyVo.setTel(MapUtil.getString(issueCompanyField, "companyTel"));
+                    issueCompanyVo.setEmail(MapUtil.getString(issueCompanyField, "companyEmail"));
+                    issueCompanyVo.setMemo(MapUtil.getString(issueCompanyField, "companyMemo"));
+
+                    issueVo.addIssueCompanyFieldVo(issueCompanyVo);
+                }
+            }
+        }
+    }
+
+    //  Isp �젙蹂� 異붽�
+    private void setIssueIspField(List<IssueVo> issueVos, IssueCondition issueCondition) {
+        //  �씠�뒋�뿉�꽌 ���옣�븳 ISP 媛믪쓣 議고쉶�븳�떎.
+        /*List<Map<String, Object>> issueIspFields = this.issueIspFieldService.findInIssueIds(issueCondition);*/
+
+        /*for (IssueVo issueVo : issueVos) {
+            for (Map<String, Object> issueIspField : issueIspFields) {
+                if (issueVo.getId().equals(MapUtil.getLong(issueIspField, "issueId"))) {
+                    IssueIspFieldVo issueIspFieldVo = new IssueIspFieldVo();
+                    issueIspFieldVo.setName(MapUtil.getString(issueIspField, "name"));
+                    issueIspFieldVo.setManager(MapUtil.getString(issueIspField, "manager"));
+                    issueIspFieldVo.setTel(MapUtil.getString(issueIspField, "tel"));
+                    issueIspFieldVo.setEmail(MapUtil.getString(issueIspField, "email"));
+                    issueIspFieldVo.setMemo(MapUtil.getString(issueIspField, "memo"));
+
+                    issueVo.addIssueIspFieldVo(issueIspFieldVo);
+                }
+            }
+        }*/
+    }
+
+    // Hosting �젙蹂� 異붽�
+    private void setIssueHostingField(List<IssueVo> issueVos, IssueCondition issueCondition) {
+        //  �씠�뒋�뿉�꽌 ���옣�븳 Hosting 媛믪쓣 議고쉶�븳�떎.
+        List<Map<String, Object>> issueHostingFields = this.issueHostingService.findInIssueIds(issueCondition);
+
+        for (IssueVo issueVo : issueVos) {
+            for (Map<String, Object> issueHostingField : issueHostingFields) {
+                if (issueVo.getId().equals(MapUtil.getLong(issueHostingField, "issueId"))) {
+                    IssueHostingVo issueHostingVo = new IssueHostingVo();
+                    issueHostingVo.setName(MapUtil.getString(issueHostingField, "name"));
+                    issueHostingVo.setManager(MapUtil.getString(issueHostingField, "manager"));
+                    issueHostingVo.setTel(MapUtil.getString(issueHostingField, "tel"));
+                    issueHostingVo.setEmail(MapUtil.getString(issueHostingField, "email"));
+                    issueHostingVo.setMemo(MapUtil.getString(issueHostingField, "memo"));
+
+                    issueVo.addIssueHostingFieldVo(issueHostingVo);
+                }
+            }
+        }
+    }
+
     //  �뿰愿��씪媛� �젙蹂� 異붽�
     private void setRelationIssue(IssueVo issueVo, Long issueId) {
         List<IssueVo> relationIssues = this.issueRelationService.findRelationIssue(issueId);
@@ -1650,6 +1730,8 @@
                         result.put("customField_" + issueCustomFieldValueVo.getCustomFieldVo().getId().toString(), useValue + ", " + issueCustomFieldValueVo.getUseValue());
                     }
                 }
+
+                //�뾽泥�, ISP, �샇�뒪�똿 異붽�
 
                 results.add(result);
             } catch (Exception e) {
@@ -1814,6 +1896,8 @@
             //  �씠�뒋 �궗�슜�옄 �젙�쓽 媛� �븘�뱶 踰뚰겕 �벑濡�
             this.bulkInsertIssueCustomFieldValue(issueForms, issueTypeCustomFieldMaps);
             //  3.628 - 3.445
+
+            // �뾽泥�,ISP,�샇�뒪�똿 異붽�
 
             /*serviceStart.stop();
             log.debug("2李� ���옣 �떆媛� : " + serviceStart.getTime());*/
@@ -2513,4 +2597,19 @@
 
         return tasks;
     }
+
+    @Transactional
+    @Override
+    public void modifyParentIssue(IssueForm issueForm) {
+        Issue issue = this.issueRepository.getOne(issueForm.getId());
+        Long parentIssueId = issueForm.getParentIssueId();
+        if (parentIssueId != null) {
+            Issue parentIssue = this.issueRepository.getOne(parentIssueId);
+            issue.setParentIssue(parentIssue);
+        } else  {
+            issue.setParentIssue(null);
+        }
+
+        this.issueRepository.saveAndFlush(issue);
+    }
 }

--
Gitblit v1.8.0