From bbe66a15ffe8fba4ccb2b7746f85bb7ec7e92d7e Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 28 1월 2022 16:35:38 +0900
Subject: [PATCH] 업체 임포트 시 연락처 null 체크 코드 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
index 7d3c3f4..b6df835 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
@@ -10,6 +10,7 @@
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.IssueTypeMapper;
 import kr.wisestone.owl.repository.IssueTypeRepository;
+import kr.wisestone.owl.repository.ProjectClosureRepository;
 import kr.wisestone.owl.repository.ProjectRepository;
 import kr.wisestone.owl.service.*;
 import kr.wisestone.owl.util.ConvertUtil;
@@ -66,6 +67,9 @@
 
     @Autowired
     private UserService userService;
+
+    @Autowired
+    private ProjectClosureRepository projectClosureRepository;
 
     @Autowired
     private ExcelView excelView;
@@ -187,11 +191,42 @@
                                            IssueTypeCondition condition, Pageable pageable) {
 
         List<Long> downProjectIds = Lists.newArrayList();
+        List<Long> allProjectIds = Lists.newArrayList();
+        List<ProjectClosure> projectClosures = Lists.newArrayList();
 
         condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
         condition.setPageSize(pageable.getPageSize());
         condition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
 
+
+        if (condition.getProjectId() == null) {
+            List<ProjectVo> projectVos = this.projectService.findByIncludeProject(Lists.newArrayList("01", "02", "03"), ProjectType.BTS_PROJECT.toString());
+            if (projectVos != null && projectVos.size() > 0) {
+                for (ProjectVo projectVo : projectVos) {
+                    allProjectIds.add(projectVo.getId());
+                    projectClosures = this.projectClosureRepository.findByParentProjectId(projectVo.getId());
+                    if (projectClosures != null && projectClosures.size() > 0) {
+                        for (ProjectClosure projectClosure : projectClosures) {
+                            allProjectIds.add(projectClosure.getProject().getId());
+                        }
+                    }
+                }
+            }
+        }else {
+            projectClosures = this.projectClosureRepository.findByParentProjectId(condition.getProjectId());
+        }
+
+        if (projectClosures != null && projectClosures.size() > 0) {
+            for (ProjectClosure projectClosure : projectClosures) {
+                Long downProjectId = projectClosure.getProject().getId();
+                downProjectIds.add(downProjectId);
+                allProjectIds.add(downProjectId);
+            }
+        }
+        condition.setDownProjectIds(downProjectIds);
+        if (condition.getProjectId() == null) {
+            condition.setAllProjectIds(allProjectIds);
+        }
         List<Map<String, Object>> results = this.issueTypeMapper.find(condition);
         for (Map<String, Object> result : results) {
             Long projectId = MapUtil.getLong(result, "projectId");
@@ -212,9 +247,6 @@
         Long totalCount = this.issueTypeMapper.count(condition);
         int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
         List<IssueTypeVo> issueTypeVos = ConvertUtil.convertListToListClass(results, IssueTypeVo.class);
-//        for (IssueTypeVo issueTypeVo : issueTypeVos) {
-//
-//        }
 
         //  �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �썙�겕�뵆濡쒖슦 �젙蹂대�� �뀑�똿�븳�떎.
         if (condition.getDeep() != null) {
@@ -226,6 +258,7 @@
         /*this.setUseIssueTypeByCompanyField(issueTypeVos);
         this.setUseIssueTypeByIspField(issueTypeVos);
         this.setUseIssueTypeByHostingField(issueTypeVos);*/
+        this.setUsePartner(issueTypeVos);
 
         resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
                 totalPage, totalCount));
@@ -252,6 +285,22 @@
         }
     }
 
+    //  �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �뙆�듃�꼫 �젙蹂대�� �뀑�똿�븳�떎.
+    private void setUsePartner(List<IssueTypeVo> issueTypeVos) {
+        for (IssueTypeVo issueTypeVo : issueTypeVos) {
+            List<UsePartnerVo> usePartnerVos = Lists.newArrayList();
+            if (issueTypeVo.getUsePartners() != null) {
+                for (Integer usePartner : UsePartner.partners) {// 1 // 2 // 4
+                    UsePartnerVo usePartnerVo = UsePartner.checkUsePartner(issueTypeVo.getUsePartners(), usePartner);//3, 1 / 3, 2 / 3, 4
+                    if (usePartnerVo != null) {
+                        usePartnerVos.add(usePartnerVo);
+                    }
+                }
+                issueTypeVo.setUsePartnerVos(usePartnerVos);
+            }
+        }
+    }
+
     //  �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �봽濡쒖젥�듃 �젙蹂대�� �뀑�똿�븳�떎.
     private void setUseIssueTypeByProject(List<IssueTypeVo> issueTypeVos) {
         for (IssueTypeVo issueTypeVo : issueTypeVos) {

--
Gitblit v1.8.0