From 729564acfd97630060acdd77694da87cc1c67979 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 18 11월 2021 09:41:41 +0900
Subject: [PATCH] 이슈관리 추가 완료 *DB날리고 실행

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |  119 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 94 insertions(+), 25 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 1fdcfc3..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());
@@ -792,9 +800,6 @@
                     issueVo.setIssueStatusVo(ConvertUtil.copyProperties(issue.getIssueStatus(), IssueStatusVo.class));
                     issueVo.setPriorityVo(ConvertUtil.copyProperties(issue.getPriority(), PriorityVo.class));
                     issueVo.setSeverityVo(ConvertUtil.copyProperties(issue.getSeverity(), SeverityVo.class));
-                    issueVo.setCompanyFieldVo(ConvertUtil.copyProperties(issue.getCompanyField(), CompanyFieldVo.class));
-                    issueVo.setIspFieldVo(ConvertUtil.copyProperties(issue.getIspFieldId(), IspFieldVo.class));
-                    issueVo.setHostingFieldVo(ConvertUtil.copyProperties(issue.getHostingFieldId(), HostingFieldVo.class));
 
                     this.setRegister(issue, issueVo);   //  �벑濡앹옄 �젙蹂� �뀑�똿
                     //this.setIssueUser(issue, issueVo);  //  �떞�떦�옄 �젙蹂� �뀑�똿
@@ -836,9 +841,6 @@
         issueVo.setIssueStatusVo(issueStatusVo);
         issueVo.setPriorityVo(ConvertUtil.copyProperties(issue.getPriority(), PriorityVo.class));
         issueVo.setSeverityVo(ConvertUtil.copyProperties(issue.getSeverity(), SeverityVo.class));
-        issueVo.setCompanyFieldVo(ConvertUtil.copyProperties(issue.getCompanyField(), CompanyFieldVo.class));
-        issueVo.setIspFieldVo(ConvertUtil.copyProperties(issue.getIspFieldId(), IspFieldVo.class));
-        issueVo.setHostingFieldVo(ConvertUtil.copyProperties(issue.getHostingFieldId(), HostingFieldVo.class));
         this.setRegister(issue, issueVo);   //  �벑濡앹옄 �젙蹂� �뀑�똿
         //this.setIssueUser(issue, issueVo);  //  �떞�떦�옄 �젙蹂� �뀑�똿
         this.setIssueDepartment(issue, issueVo);  //  �떞�떦遺��꽌 �젙蹂� �뀑�똿
@@ -1612,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);
@@ -1665,6 +1730,8 @@
                         result.put("customField_" + issueCustomFieldValueVo.getCustomFieldVo().getId().toString(), useValue + ", " + issueCustomFieldValueVo.getUseValue());
                     }
                 }
+
+                //�뾽泥�, ISP, �샇�뒪�똿 異붽�
 
                 results.add(result);
             } catch (Exception e) {
@@ -1830,6 +1897,8 @@
             this.bulkInsertIssueCustomFieldValue(issueForms, issueTypeCustomFieldMaps);
             //  3.628 - 3.445
 
+            // �뾽泥�,ISP,�샇�뒪�똿 異붽�
+
             /*serviceStart.stop();
             log.debug("2李� ���옣 �떆媛� : " + serviceStart.getTime());*/
 

--
Gitblit v1.8.0