From 916a3cbabe4e50062fce61ff6f2f5d46c05dfbd1 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 17 3월 2022 17:47:45 +0900
Subject: [PATCH] - api로 이슈 추가 시 url/ip로 업체 찾는 코드 수정

---
 src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java
index 064df76..a85c2dd 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java
@@ -43,6 +43,12 @@
     @Autowired
     private DepartmentService departmentService;
 
+    @Autowired
+    private IssueTypeService issueTypeService;
+
+    @Autowired
+    private ProjectRoleService projectRoleService;
+
     @Override
     protected JpaRepository<WorkflowDepartment, Long> getRepository() {
         return workflowDepartmentRepository;
@@ -72,6 +78,31 @@
         condition.setIssueStatusId(issueStatusId);
 
         return find(condition);
+    }
+
+    public List<WorkflowDepartment> find(Long workflowId) {
+        return this.workflowDepartmentRepository.findByWorkflowId(workflowId);
+    }
+
+
+    @Override
+    // �썙�겕�뵆濡쒖슦�쓽 �빐�떦 �씠�뒋�긽�깭瑜� 媛�吏� �썙�겕�뵆濡쒖슦 遺��꽌 媛��졇�삤湲�(Ready)
+    public List<Long> findFirstDepartmentIds(Workflow workflow) {
+        List<Long> departmentIds = Lists.newArrayList();
+        IssueStatus issueStatus = issueStatusService.findByIssueStatusTypeIsReady(workflow);
+
+        // �썙�겕�뵆濡쒖슦 �긽�깭�뿉 �뵲瑜� �떞�떦遺��꽌 媛��졇�삤湲�
+        if (issueStatus != null) {
+            WorkflowDepartmentCondition workflowDepartmentCondition = new WorkflowDepartmentCondition();
+            workflowDepartmentCondition.setIssueStatusId(issueStatus.getId());
+            workflowDepartmentCondition.setWorkflowId(workflow.getId());
+            List<WorkflowDepartmentVo> workflowDepartmentVos = this.find(workflowDepartmentCondition);
+
+            for (WorkflowDepartmentVo workflowDepartmentVo : workflowDepartmentVos) {
+                departmentIds.add(workflowDepartmentVo.getDepartmentVo().getId());
+            }
+        }
+        return departmentIds;
     }
 
     // �떞�떦 遺��꽌�젙蹂대�� 議고쉶�븳�떎.
@@ -127,9 +158,31 @@
                 workflowDepartment.setDepartment(department);
 
                 workflowDepartmentList.add(workflowDepartment);
+
+                //  蹂�寃쏀븳 �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌瑜� �씠�뒋�쑀�삎怨� �뿰寃곕맂 �봽濡쒖젥�듃�쓽 �떞�떦遺��꽌�뿉�룄 �꽭�똿
+                this.setDepartmentOfProject(workflow, department);
              }
         }
         this.workflowDepartmentRepository.saveAll(workflowDepartmentList);
+
+    }
+
+    /**
+     * �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌瑜� �씠�뒋�쑀�삎怨� �뿰寃곕맂 �봽濡쒖젥�듃�쓽 �떞�떦遺��꽌�뿉�룄 �꽭�똿
+     * @param workflow Workflow
+     * @param department Department
+     */
+    private void setDepartmentOfProject(Workflow workflow, Department department) {
+        List<IssueType> issueTypeList = this.issueTypeService.findByWorkflowId(workflow.getId());
+        if (issueTypeList != null && issueTypeList.size() > 0) {
+            for (IssueType issueType : issueTypeList) {
+                if (issueType.getProject() != null) {
+                    ProjectRole projectRole = this.projectRoleService.findByProjectIdAndRoleType(issueType.getProject().getId(), ProjectRole.TYPE_DEFAULT);
+                    //  �봽濡쒖젥�듃 �떞�떦遺��꽌濡� 異붽�
+                    projectRole.addDepartment(department);
+                }
+            }
+        }
     }
 
     @Override
@@ -140,4 +193,19 @@
 
         this.workflowDepartmentMapper.deleteAll(condition);
     }
+
+    /**
+     * �듅�젙 遺��꽌瑜� �썙�겕�뵆濡쒖슦�뿉�꽌 �궗�슜以묒씤吏� 泥댄겕
+     * @param id Long
+     * @return useYn
+     */
+    @Override
+    public boolean usingDepartment(Long id) {
+        boolean useYn = false;
+        List<WorkflowDepartment> workflowDepartments = this.workflowDepartmentRepository.findByDepartmentId(id);
+        if (workflowDepartments != null && workflowDepartments.size() > 0) {
+            useYn = true;
+        }
+        return useYn;
+    }
 }

--
Gitblit v1.8.0