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/WorkflowServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/WorkflowServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/WorkflowServiceImpl.java
index 3ccc637..c69f4f1 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/WorkflowServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/WorkflowServiceImpl.java
@@ -13,6 +13,7 @@
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.vo.*;
 import kr.wisestone.owl.web.condition.WorkflowCondition;
+import kr.wisestone.owl.web.condition.WorkflowDepartmentCondition;
 import kr.wisestone.owl.web.form.WorkflowForm;
 import kr.wisestone.owl.web.view.ExcelView;
 import org.apache.commons.lang3.StringUtils;
@@ -26,9 +27,7 @@
 import org.springframework.ui.Model;
 import org.springframework.web.servlet.ModelAndView;
 import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 public class WorkflowServiceImpl extends AbstractServiceImpl<Workflow, Long, JpaRepository<Workflow, Long>>
@@ -44,6 +43,9 @@
 
     @Autowired
     private WorkflowTransitionService workflowTransitionService;
+
+    @Autowired
+    private WorkflowDepartmentService workflowDepartmentService;
 
     @Autowired
     private WorkspaceService workspaceService;
@@ -123,9 +125,9 @@
         Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
         workflow.setWorkspace(workspace);
 
-        this.workflowRepository.saveAndFlush(workflow);
-
+        workflow = this.workflowRepository.saveAndFlush(workflow);
         this.workflowTransitionService.modify(workflow, workflowForm.getIssueStatusVos());
+        this.workflowDepartmentService.modify(workflow, workflowForm.getIssueStatusVos());
 
         return workflow;
     }
@@ -170,9 +172,11 @@
         List<Map<String, Object>> results = this.workflowMapper.find(condition);
         Long totalCount = this.workflowMapper.count(condition);
         int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
-        List<WorkflowVo> workflowVos = ConvertUtil.convertListToListClass(results, WorkflowVo.class);
+        List<WorkflowVo> workflowVos = ConvertUtil.convertListToListClass(results, WorkflowVo.class); //workflow 由ъ뒪�듃
         //  �썙�겕�뵆濡쒖슦瑜� �궗�슜�븯�뒗 �씠�뒋 �쑀�삎 �젙蹂대�� 異붽��븳�떎.
         this.setIssueTypeVos(workflowVos);
+        //  �썙�겕�뵆濡쒖슦 �떞�떦遺��꽌 �젙蹂대�� 異붽��븳�떎.
+        this.setDepartmentVos(workflowVos);
 
         resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
                 totalPage, totalCount));
@@ -191,6 +195,20 @@
         }
     }
 
+    //  �썙�겕�뵆濡쒖슦瑜� �궗�슜�븯�뒗 遺��꽌 �젙蹂대�� 異붽��븳�떎.
+    private void setDepartmentVos(List<WorkflowVo> workflowVos) {
+        for (WorkflowVo workflowVo : workflowVos) {
+            Workflow workflow = this.getWorkflow(workflowVo.getId());
+
+            List<WorkflowDepartmentVo> workflowDepartmentVos = this.workflowDepartmentService.find(workflow.getId(), null);
+            if (workflowDepartmentVos != null && workflowDepartmentVos.size() > 0) {
+                IssueStatusVo issueStatusVo = new IssueStatusVo();
+                issueStatusVo.setWorkflowDepartmentVos(workflowDepartmentVos);
+                workflowVo.addIssueStatusVos(issueStatusVo);
+            }
+        }
+    }
+
     //  �썙�겕�뵆濡쒖슦 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎.
     @Override
     @Transactional(readOnly = true)
@@ -203,7 +221,12 @@
 
             switch (workflowCondition.getDeep()) {
                 case "01" : //  �뿰愿��맂 �씠�뒋 �긽�깭�� �쟾�씠�꽑 �젙蹂대�� 媛��졇�삩�떎.
-                    workflowVo.setIssueStatusVos(this.issueStatusService.findByWorkflowId(workflowCondition.getId()));
+                    List<IssueStatusVo> issueStatusVos = this.issueStatusService.findByWorkflowId(workflowCondition.getId());
+                    for (IssueStatusVo issueStatusVo : issueStatusVos) {
+                        List<WorkflowDepartmentVo> workflowDepartmentVos = this.workflowDepartmentService.find(workflowVo.getId(), issueStatusVo.getId());
+                        issueStatusVo.setWorkflowDepartmentVos(workflowDepartmentVos);
+                    }
+                    workflowVo.setIssueStatusVos(issueStatusVos);
                     break;
             }
         }
@@ -223,6 +246,8 @@
         this.verifyName(workflowForm.getName(), workflowForm.getId());
         workflow.setName(workflowForm.getName());
 
+        // �떞�떦 遺��꽌 �젙蹂� 蹂�寃�
+        this.workflowDepartmentService.modify(workflow, workflowForm.getIssueStatusVos());
         this.workflowTransitionService.modify(workflow, workflowForm.getIssueStatusVos());
         //  �썙�겕�뵆濡쒖슦媛� 蹂�寃쎈릺�뿀�뒗吏� �솗�씤�븯怨� 蹂�寃쎈릺�뿀�쓣 寃쎌슦 �씠�뒋 �긽�깭媛� �뾾�뒗 �씠�뒋�뒗 '�깮�꽦' �씤 �씠�뒋 �긽�깭濡� �씠�룞�븳�떎.
         this.checkWorkflowChange(workflow);
@@ -267,15 +292,16 @@
                     this.messageAccessor.getMessage(MsgConstants.WORKFLOW_REMOVE_NOT_SELECT));
         }
 
-        for (Long projectId : workflowForm.getRemoveIds()) {
-            this.removeWorkflow(projectId);
+        for (Long workflowId : workflowForm.getRemoveIds()) {
+            this.removeWorkflow(workflowId);
         }
-
         this.workflowRepository.flush();
     }
 
     private void removeWorkflow(Long workflowId) {
         Workflow workflow = this.getWorkflow(workflowId);
+        // �썙�겕�뵆濡쒖슦 �떞�떦遺��꽌 �궘�젣
+        this.workflowDepartmentService.remove(workflowId);
         //  �썙�겕�뵆濡쒖슦瑜� �씠�뒋 ���엯�뿉�꽌 �궗�슜�븯怨� �엳�뒗吏� �솗�씤
         this.checkIssueTypeWorkflow(workflow);
         this.workflowRepository.delete(workflow);

--
Gitblit v1.8.0