From ebfd37816a332308519b30af5bfb017c5052be69 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 13 1월 2022 17:34:35 +0900
Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa

---
 src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java |   94 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 84 insertions(+), 10 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java
index 301b14b..c7e7000 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java
@@ -1,18 +1,16 @@
 package kr.wisestone.owl.service.impl;
 
-import kr.wisestone.owl.domain.Department;
-import kr.wisestone.owl.domain.UserDepartment;
-import kr.wisestone.owl.domain.UserLevel;
+import kr.wisestone.owl.domain.*;
 import kr.wisestone.owl.mapper.DepartmentMapper;
-import kr.wisestone.owl.service.UserDepartmentService;
-import kr.wisestone.owl.service.UserService;
+import kr.wisestone.owl.repository.UserDepartmentRepository;
+import kr.wisestone.owl.service.*;
 import kr.wisestone.owl.web.condition.DepartmentCondition;
 import kr.wisestone.owl.web.condition.UserCondition;
 import kr.wisestone.owl.web.form.DepartmentForm;
-import kr.wisestone.owl.web.form.UserDepartmentForm;
 import org.jsoup.Jsoup;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
 import com.google.common.collect.Lists;
 import kr.wisestone.owl.common.ExcelConditionCheck;
@@ -20,8 +18,6 @@
 import kr.wisestone.owl.constant.MsgConstants;
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.repository.DepartmentRepository;
-import kr.wisestone.owl.service.DepartmentService;
-import kr.wisestone.owl.service.WorkspaceService;
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.vo.*;
 import kr.wisestone.owl.web.view.ExcelView;
@@ -45,13 +41,25 @@
     private DepartmentRepository departmentRepository;
 
     @Autowired
+    private UserDepartmentService userDepartmentService;
+
+    @Autowired
     private DepartmentMapper departmentMapper;
 
     @Autowired
     private DepartmentService departmentService;
 
     @Autowired
-    private UserDepartmentService userDepartmentService;
+    private WorkflowDepartmentService workflowDepartmentService;
+
+    @Autowired
+    private ProjectRoleDepartmentService projectRoleDepartmentService;
+
+    @Autowired
+    private ProjectRoleService projectRoleService;
+
+    @Autowired
+    private IssueTypeService issueTypeService;
 
     @Autowired
     private WorkspaceService workspaceService;
@@ -127,6 +135,67 @@
         this.departmentRepository.flush();
     }
 
+    //  �봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 遺��꽌 �젙蹂대�� 議고쉶�븳�떎.
+    @Override
+    @Transactional(readOnly = true)
+    public List<Map<String, Object>> findProjectDepartment(Project project) {
+        DepartmentCondition departmentCondition = new DepartmentCondition();
+        departmentCondition.setProjectId(project.getId());
+        return this.departmentMapper.findProjectDepartment(departmentCondition);
+    }
+
+    //  �봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 遺��꽌 紐⑸줉�쓣 媛��졇�삩�떎.
+    @Override
+    @Transactional(readOnly = true)
+    public void findProjectDepartment(Map<String, Object> resJsonData, DepartmentCondition departmentCondition) {
+        ProjectRole projectRole = this.projectRoleService.findByProjectIdAndRoleType(departmentCondition.getProjectId(), ProjectRole.TYPE_DEFAULT);
+        List<ProjectRoleDepartment> projectRoleDepartments = this.projectRoleDepartmentService.findByProjectRoleId(projectRole.getId());
+        List<DepartmentVo> departmentVos = Lists.newArrayList();
+
+        for (ProjectRoleDepartment projectRoleDepartment : projectRoleDepartments) {
+            DepartmentVo departmentVo = ConvertUtil.copyProperties(projectRoleDepartment.getDepartment(), DepartmentVo.class);
+            departmentVo.setByName(departmentVo.getDepartmentName());
+            departmentVos.add(departmentVo);
+        }
+
+        resJsonData.put(Constants.RES_KEY_CONTENTS, departmentVos);
+    }
+
+    //  �썙�겕�뵆濡쒖슦�뿉 �냽�빐�엳�뒗 遺��꽌 紐⑸줉 議고쉶
+    @Override
+    @Transactional(readOnly = true)
+    public void findWorkflowDepartment(Map<String, Object> resJsonData, DepartmentCondition departmentCondition) {
+        List<DepartmentVo> departmentVos = findWorkflowDepartment(departmentCondition.getIssueTypeId());
+        resJsonData.put(Constants.RES_KEY_CONTENTS, departmentVos);
+    }
+
+    //  �썙�겕�뵆濡쒖슦�뿉 �냽�빐�엳�뒗 遺��꽌 紐⑸줉 議고쉶
+    @Override
+    @Transactional(readOnly = true)
+    public List<DepartmentVo> findWorkflowDepartment(Long issueTypeId) {
+        List<WorkflowDepartment> workflowDepartmentList = this.findWorkflowDepartmentByIssueTypeId(issueTypeId);
+        List<DepartmentVo> departmentVos = Lists.newArrayList();
+
+        if(workflowDepartmentList != null && workflowDepartmentList.size()>0){
+            for(WorkflowDepartment workflowDepartment : workflowDepartmentList){
+                DepartmentVo departmentVo = ConvertUtil.copyProperties(workflowDepartment.getDepartment(), DepartmentVo.class);
+                departmentVo.setByName(departmentVo.getDepartmentName());
+                departmentVos.add(departmentVo);
+            }
+        }
+        return departmentVos;
+    }
+
+    // �씠�뒋 �쑀�삎(�썙�겕�뵆濡쒖슦)�뿉 �엳�뒗 �떞�떦遺��꽌 議고쉶
+    private List<WorkflowDepartment> findWorkflowDepartmentByIssueTypeId(Long issueTypeId) {
+        Long workflowId = this.getWorkflowId(issueTypeId);
+        return this.workflowDepartmentService.find(workflowId);
+    }
+
+    private Long getWorkflowId(Long issueTypeId) {
+        IssueType issueType = this.issueTypeService.getIssueType(issueTypeId);
+        return issueType.getWorkflow().getId();
+    }
 
     // 遺��꽌 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
     @Override
@@ -168,7 +237,12 @@
 
     @Override
     public boolean countInDepartment(Long id) {
-        return this.departmentMapper.countInDepartment(id) > 0;
+        boolean result = false;
+        List<UserDepartment> usingDepartments = this.userDepartmentService.findByDepartmentId(id);
+        if(usingDepartments != null && usingDepartments.size() > 0){
+            result = true;
+        }
+        return result;
     }
 
     //  DepartmentVos �뜲�씠�꽣瑜� �뿊���뿉�꽌 �몴�떆�븷 �닔 �엳�뒗 �뜲�씠�꽣濡� 蹂�寃쏀븳�떎.

--
Gitblit v1.8.0