From 3dcb948481e587484b991812ec289aa9659a6660 Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 화, 30 11월 2021 10:23:19 +0900
Subject: [PATCH] 프로젝트 사용기간 오류 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |  138 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 124 insertions(+), 14 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 c87e482..59a159b 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -6,6 +6,7 @@
 import kr.wisestone.owl.constant.Constants;
 import kr.wisestone.owl.constant.ElasticSearchConstants;
 import kr.wisestone.owl.constant.MsgConstants;
+import kr.wisestone.owl.constant.UsePartner;
 import kr.wisestone.owl.domain.*;
 import kr.wisestone.owl.domain.enumType.CustomFieldType;
 import kr.wisestone.owl.domain.enumType.EmailType;
@@ -829,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�삎�깭濡� 諛쏆븘以섏꽌 由ъ뒪�듃 �삎�떇�쑝濡� 蹂대궡以�
     }
 
     //  �씠�뒋 �긽�꽭 �젙蹂대�� �뀑�똿�븳�떎.
@@ -864,12 +868,27 @@
         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/�샇�뒪�똿 媛�
+
+        List<UsePartnerVo> usePartnerVos = Lists.newArrayList();
+        for (Integer usePartner : UsePartner.partners) { //1(�뾽泥�), 2(ISP), 4(�샇�뒪�똿)
+            UsePartnerVo usePartnerVo = UsePartner.checkUsePartner(using, usePartner);
+
+            if (usePartnerVo != null) {
+                usePartnerVos.add(usePartnerVo);
+                //useCompanyVo.setValues();
+            }
+            issueVo.setUsePartnerVos(usePartnerVos);
+        }
+
         this.setIssueCompanyField(issue, issueVo);  //�뾽泥� �젙蹂� �꽭�똿
         this.setIssueIspField(issue, issueVo);  //ISP �젙蹂� �꽭�똿
         this.setIssueHostingField(issue, issueVo);  //HOSTING �젙蹂� �꽭�똿
-        this.setParentIssue(issue,issueVo); //�긽�쐞 �씠�뒋 �젙蹂� �꽭�똿
 
+        this.setParentIssue(issue,issueVo); //�긽�쐞 �씠�뒋 �젙蹂� �꽭�똿
     }
 
     //  �긽�쐞�씪媛� �젙蹂� 異붽�
@@ -2375,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));
@@ -2668,4 +2693,89 @@
         this.issueRepository.saveAndFlush(issue);
 
     }
+
+    @Override
+    public void findPartner(Map<String, Object> resJsonData, Map<String, Object> params) {
+        Long issueTypeId = MapUtil.getLong(params, "issueTypeId");
+        IssueType issueType = this.issueTypeService.getIssueType(issueTypeId); // �씠�뒋�쓽 �씠�뒋�쑀�삎 媛앹껜
+        Integer using = issueType.getUsePartner() != null ? issueType.getUsePartner().intValue() : 0; // �씠�뒋�쑀�삎蹂꾨줈 �궗�슜以묒씤 �뾽泥�/ISP/�샇�뒪�똿 媛�
+
+        List<UsePartnerVo> usePartnerVos = Lists.newArrayList();
+        for (Integer usePartner : UsePartner.partners) { //1(�뾽泥�), 2(ISP), 4(�샇�뒪�똿)
+            UsePartnerVo usePartnerVo = UsePartner.checkUsePartner(using, usePartner);
+            if (usePartnerVo != null) {
+                usePartnerVos.add(usePartnerVo);
+            }
+            resJsonData.put(Constants.RES_KEY_CONTENTS, usePartnerVos);
+        }
+    }
+
+    @Override
+    @Transactional
+    public void findMailTargetAll(Map<String, Object> resJsonData, IssueCondition condition, Pageable pageable) {
+        IssueVo issueVo = new IssueVo();
+        //Long issueId = MapUtil.getLong(params, "issueId");
+        Long issueId = condition.getId();
+
+        List<String> emailList = Lists.newArrayList();
+
+        if(issueId != null){
+            Issue issue = this.getIssue(issueId);
+            issueVo = ConvertUtil.copyProperties(issue, IssueVo.class);
+            this.setIssueCompanyField(issue, issueVo);  //�뾽泥� �젙蹂� �꽭�똿
+            this.setIssueIspField(issue, issueVo);  //ISP �젙蹂� �꽭�똿
+            this.setIssueHostingField(issue, issueVo);  //HOSTING �젙蹂� �꽭�똿
+            for(IssueCompanyVo issueCompanyVo : issueVo.getIssueCompanyVos()) {
+                emailList.add(issueCompanyVo.getEmail());
+            }
+            for(IssueIspVo issueIspVo : issueVo.getIssueIspVos()) {
+                emailList.add(issueIspVo.getEmail());
+            }
+            for(IssueHostingVo issueHostingVo : issueVo.getIssueHostingVos()) {
+                emailList.add(issueHostingVo.getEmail());
+            }
+
+        }
+
+        Long totalCount = this.issueMapper.count(condition);
+        int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
+
+        condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
+        condition.setPageSize(pageable.getPageSize());
+        //resJsonData.put(Constants.RES_KEY_CONTENTS, emailList);
+        resJsonData.put(Constants.RES_KEY_CONTENTS, emailList);
+        resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
+                totalPage, totalCount));
+    }
+
+    /*@Override
+    @Transactional
+    public void findMailTargetCompany(Map<String, Object> resJsonData, Map<String, Object> params) {
+        IssueVo issueVo = new IssueVo();
+        Long issueId = MapUtil.getLong(params, "issueId");
+
+        List<String> emailList = Lists.newArrayList();
+
+        if(issueId != null){
+            Issue issue = this.getIssue(issueId);
+            issueVo = ConvertUtil.copyProperties(issue, IssueVo.class);
+            this.setIssueCompanyField(issue, issueVo);  //�뾽泥� �젙蹂� �꽭�똿
+            for(IssueCompanyVo issueCompanyVo : issueVo.getIssueCompanyVos()) {
+                emailList.add(issueCompanyVo.getEmail());
+            }
+        }
+        resJsonData.put(Constants.RES_KEY_CONTENTS, emailList);
+    }
+
+    @Override
+    @Transactional
+    public void findMailTargetIsp(Map<String, Object> resJsonData, Map<String, Object> params) {
+
+    }
+
+    @Override
+    @Transactional
+    public void findMailTargetHosting(Map<String, Object> resJsonData, Map<String, Object> params) {
+
+    }*/
 }

--
Gitblit v1.8.0