From b8ab6de032d3a6ee029331dbb58d764a5409189b Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 월, 28 2월 2022 15:51:13 +0900 Subject: [PATCH] - api로 하위이슈 추가 시 상위이슈의 파트너 정보 적용 --- 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