From e50b78db2f5e74f88b7e5c736f1fca4ca3cbe29b Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 목, 25 11월 2021 10:57:04 +0900 Subject: [PATCH] - 워크플로우 담당부서 설정 기능 추가 --- src/main/java/kr/wisestone/owl/service/impl/WorkflowServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 40 insertions(+), 9 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 5f72e5d..be7a902 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; } @@ -173,6 +175,8 @@ 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,22 @@ } } + // �썙�겕�뵆濡쒖슦瑜� �궗�슜�븯�뒗 遺��꽌 �젙蹂대�� 異붽��븳�떎. + private void setDepartmentVos(List<WorkflowVo> workflowVos) { + for (WorkflowVo workflowVo : workflowVos) { + Workflow workflow = this.getWorkflow(workflowVo.getId()); + + WorkflowDepartmentCondition condition = new WorkflowDepartmentCondition(); + condition.setWorkflowId(workflow.getId()); + List<WorkflowDepartmentVo> workflowDepartmentVos = this.workflowDepartmentService.find(condition); + if (workflowDepartmentVos != null && workflowDepartmentVos.size() > 0) { + IssueStatusVo issueStatusVo = new IssueStatusVo(); + issueStatusVo.setWorkflowDepartmentVos(workflowDepartmentVos); + workflowVo.addIssueStatusVos(issueStatusVo); + } + } + } + // �썙�겕�뵆濡쒖슦 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. @Override @Transactional(readOnly = true) @@ -203,7 +223,15 @@ switch (workflowCondition.getDeep()) { case "01" : // �뿰愿��맂 �씠�뒋 �긽�깭�� �쟾�씠�꽑 �젙蹂대�� 媛��졇�삩�떎. - workflowVo.setIssueStatusVos(this.issueStatusService.findByWorkflowId(workflowCondition.getId())); + List<IssueStatusVo> issueStatusVos = this.issueStatusService.findByWorkflowId(workflowCondition.getId()); + for (IssueStatusVo issueStatusVo : issueStatusVos) { + WorkflowDepartmentCondition condition = new WorkflowDepartmentCondition(); + condition.setWorkflowId(workflowVo.getId()); + condition.setIssueStatusId(issueStatusVo.getId()); + List<WorkflowDepartmentVo> workflowDepartmentVos = this.workflowDepartmentService.find(condition); + issueStatusVo.setWorkflowDepartmentVos(workflowDepartmentVos); + } + workflowVo.setIssueStatusVos(issueStatusVos); break; } } @@ -223,6 +251,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 +297,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