From 8c444812f7b9f0ad92e6e5a76f159778232eac65 Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 토, 11 12월 2021 17:38:45 +0900 Subject: [PATCH] - api로 이슈 추가시 해당 워크플로우의 Ready 상태로 추가하도록 수정 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 25 ++++-------- src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java | 33 ++++++++++------ src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java | 25 ++++++++++++ src/main/java/kr/wisestone/owl/service/DepartmentService.java | 2 + src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java | 11 +---- src/main/java/kr/wisestone/owl/constant/MsgConstants.java | 1 6 files changed, 60 insertions(+), 37 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java index 8689148..5c4e70e 100644 --- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java +++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java @@ -243,4 +243,5 @@ public static final String API_OVERLAP_SETTING_NOT_EXIST = "API_OVERLAP_SETTING_NOT_EXIST"; // API 以묐났�맂 �꽕�젙�씠 �븞�릺�뼱 �엳�쓣 寃쎌슦 public static final String API_ISSUE_NOT_EXIST = "API_ISSUE_NOT_EXIST"; // �닔�젙�븷 �씠�뒋瑜� 李얠쓣�닔 �뾾�뒿�땲�떎. public static final String API_COMPLETE_ISSUE_STATUS_NOT_EXIST = "API_COMPLETE_ISSUE_STATUS_NOT_EXIST"; // �옄�룞 醫낅즺 泥섎━�븷 �긽�깭媛� �꽕�젙�릺吏� �븡�븯�뒿�땲�떎. + public static final String API_ISSUE_STATUS_NOT_EXIST = "API_ISSUE_STATUS_NOT_EXIST"; // �씠�뒋 �긽�깭瑜� 李얠쓣�닔 �뾾�뒿�땲�떎 } diff --git a/src/main/java/kr/wisestone/owl/service/DepartmentService.java b/src/main/java/kr/wisestone/owl/service/DepartmentService.java index 4386624..556d653 100644 --- a/src/main/java/kr/wisestone/owl/service/DepartmentService.java +++ b/src/main/java/kr/wisestone/owl/service/DepartmentService.java @@ -39,5 +39,7 @@ void findWorkflowDepartment(Map<String, Object> resJsonData, DepartmentCondition departmentCondition); + List<DepartmentVo> findWorkflowDepartment(Long issueTypeId); + List<Map<String, Object>> findProjectDepartment(Project project); } diff --git a/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java b/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java index 30b0fcd..c6a30c6 100644 --- a/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java +++ b/src/main/java/kr/wisestone/owl/service/WorkflowDepartmentService.java @@ -1,17 +1,10 @@ package kr.wisestone.owl.service; -import kr.wisestone.owl.domain.IssueStatus; -import kr.wisestone.owl.domain.Workflow; -import kr.wisestone.owl.domain.WorkflowDepartment; -import kr.wisestone.owl.domain.WorkflowTransition; -import kr.wisestone.owl.domain.enumType.ProjectType; -import kr.wisestone.owl.util.MapUtil; +import kr.wisestone.owl.domain.*; import kr.wisestone.owl.vo.IssueStatusVo; import kr.wisestone.owl.vo.WorkflowDepartmentVo; -import kr.wisestone.owl.vo.WorkflowTransitionVo; import kr.wisestone.owl.web.condition.WorkflowDepartmentCondition; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; @@ -22,6 +15,8 @@ WorkflowDepartment getWorkflowDepartment(Long id); List<WorkflowDepartmentVo> find(WorkflowDepartmentCondition condition); List<WorkflowDepartmentVo> find(Long workflowId, Long issueStatusId); + List<WorkflowDepartment> find(Long workflowId); + List<Long> findFirstDepartmentIds(Workflow workflow); void modify(Workflow workflow, List<IssueStatusVo> issueStatusVos); void remove(Long workflowId); } 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 344147e..6c22513 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java @@ -2,13 +2,10 @@ import kr.wisestone.owl.domain.*; import kr.wisestone.owl.mapper.DepartmentMapper; -import kr.wisestone.owl.repository.WorkflowDepartmentRepository; import kr.wisestone.owl.service.*; -import kr.wisestone.owl.util.CommonUtil; 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; @@ -49,16 +46,13 @@ private DepartmentService departmentService; @Autowired - private UserDepartmentService userDepartmentService; + private WorkflowDepartmentService workflowDepartmentService; @Autowired private ProjectRoleDepartmentService projectRoleDepartmentService; @Autowired private ProjectRoleService projectRoleService; - - @Autowired - private WorkflowDepartmentRepository workflowDepartmentRepository; @Autowired private IssueTypeService issueTypeService; @@ -167,24 +161,37 @@ @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); + } - IssueType issueType = this.issueTypeService.getIssueType(departmentCondition.getIssueTypeId()); - Long workflowId = issueType.getWorkflow().getId(); - List<WorkflowDepartment> workflowDepartmentList = this.workflowDepartmentRepository.findByWorkflowId(workflowId); + // �썙�겕�뵆濡쒖슦�뿉 �냽�빐�엳�뒗 遺��꽌 紐⑸줉 議고쉶 + @Override + @Transactional(readOnly = true) + public List<DepartmentVo> findWorkflowDepartment(Long issueTypeId) { + List<WorkflowDepartment> workflowDepartmentList = this.findWorkflowDepartmentByIssueTypeId(issueTypeId); List<DepartmentVo> departmentVos = Lists.newArrayList(); - //List<Long> workflowDepartmentIds = Lists.newArrayList(); if(workflowDepartmentList != null && workflowDepartmentList.size()>0){ for(WorkflowDepartment workflowDepartment : workflowDepartmentList){ DepartmentVo departmentVo = ConvertUtil.copyProperties(workflowDepartment.getDepartment(), DepartmentVo.class); departmentVo.setByName(departmentVo.getDepartmentName()); - //workflowDepartmentIds.add(workflowDepartment.getDepartment().getId()); departmentVos.add(departmentVo); } - resJsonData.put(Constants.RES_KEY_CONTENTS, departmentVos); } + 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 diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java index dafd80e..7bb4d30 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -211,23 +211,16 @@ Workflow workflow = issueType.getWorkflow(); - // �씠�뒋 �긽�깭媛� 吏��젙�릺�뼱 �엳吏� �븡�쓣 寃쎌슦 珥덇린媛믪쑝濡� 吏��젙 - if (issueApiForm.getIssueStatusId() == null) { - List<IssueStatusVo> issueStatusVos = issueStatusService.findByWorkflowId(workflow.getId()); - IssueStatusVo issueStatusVo = issueStatusVos.get(0); - issueApiForm.setIssueStatusId(issueStatusVo.getId()); - } - - // �썙�겕�뵆濡쒖슦 �긽�깭�뿉 �뵲瑜� �떞�떦遺��꽌 媛��졇�삤湲� - if (issueApiForm.getIssueStatusId() != null) { - WorkflowDepartmentCondition workflowDepartmentCondition = new WorkflowDepartmentCondition(); - workflowDepartmentCondition.setIssueStatusId(issueApiForm.getIssueStatusId()); - workflowDepartmentCondition.setWorkflowId(workflow.getId()); - List<WorkflowDepartmentVo> workflowDepartmentVos = this.workflowDepartmentService.find(workflowDepartmentCondition); - - for (WorkflowDepartmentVo workflowDepartmentVo : workflowDepartmentVos) { - issueForm.addDepartmentId(workflowDepartmentVo.getDepartmentVo().getId()); + if (issueApiForm.getApiType().equals(IssueApiForm.ApiType.add)) { + // �씠�뒋 �긽�깭媛� 吏��젙�릺�뼱 �엳吏� �븡�쓣 寃쎌슦 �썙�겕�뵆濡쒖슦 ��湲� �긽�깭 媛믪쑝濡� 吏��젙 + List<Long> departmentIds = this.workflowDepartmentService.findFirstDepartmentIds(workflow); + if (departmentIds != null && departmentIds.size() > 0) { + for (Long departmentId : departmentIds) { + issueForm.addDepartmentId(departmentId); + } } + } else if (issueApiForm.getIssueStatusId() == null){ + throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_ISSUE_STATUS_NOT_EXIST)); } // �봽濡쒖젥�듃 �엯�젰 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..e820d25 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/WorkflowDepartmentServiceImpl.java @@ -74,6 +74,31 @@ 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; + } + // �떞�떦 遺��꽌�젙蹂대�� 議고쉶�븳�떎. @Transactional(readOnly = true) @Override -- Gitblit v1.8.0