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/ProjectServiceImpl.java | 63 ++++++++++++++++++++++++++++++- 1 files changed, 60 insertions(+), 3 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java index 16c21d2..aaef9a8 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java @@ -60,6 +60,9 @@ private WorkflowStatusService workflowStatusService; @Autowired + private WorkflowDepartmentService workflowDepartmentService; + + @Autowired private WorkspaceService workspaceService; @Autowired @@ -121,8 +124,10 @@ project.setProjectKey("BTS"); project.setStatus(Project.PROJECT_OPEN); project.setDescription(this.messageAccessor.message("common.intoTheSystemIssueManagementProject")); // �떆�뒪�뀥�뿉�꽌 湲곕낯�쑝濡� �젣怨듬릺�뒗 �씠�뒋 愿�由� �봽濡쒖젥�듃�엯�땲�떎. - project.setStartDate(DateUtil.convertDateToYYYYMMDD(new Date())); - project.setEndDate(DateUtil.convertDateToYYYYMMDD(DateUtil.addDays(new Date(), 3650))); + //project.setStartDate(DateUtil.convertDateToYYYYMMDD(new Date())); + //project.setEndDate(DateUtil.convertDateToYYYYMMDD(DateUtil.addDays(new Date(), 3650))); + project.setStartDate("");//null�몴�떆 諛⑹� + project.setEndDate(""); // 湲곕낯�쑝濡� �깮�꽦�릺�뒗 �봽濡쒖젥�듃�쓽 �쑀�삎�� BTS project.setProjectType(ProjectType.BTS_PROJECT); project.setWorkspace(workspace); @@ -389,6 +394,7 @@ int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1; // �봽濡쒖젥�듃 議고쉶 寃곌낵瑜� ProjectVos 濡� 蹂��솚�븳�떎. - 愿�由ъ옄, �씪諛� �궗�슜�옄 �젙蹂� 異붽� List<ProjectVo> projectVos = this.makeProjectVos(results, user); + this.setParentProject(projectVos); this.setChildrenProject(projectVos, user); resJsonData.put(Constants.RES_KEY_CONTENTS, projectVos); @@ -396,6 +402,13 @@ totalPage, totalCount)); return projectVos; + } + + // �씠�뒋�쑀�삎�뿉 �냽�븳 �봽濡쒖젥�듃 紐⑸줉�쓣 議고쉶�븳�떎. + @Override + @Transactional(readOnly = true) + public void findIssueType(Map<String, Object> resJsonData, ProjectCondition condition) { + resJsonData.put(Constants.RES_KEY_CONTENTS, this.projectMapper.findByIssueType(condition)); } void setChildrenProject(List<ProjectVo> projectVos, User user) { @@ -449,6 +462,20 @@ } return projectVos; + } + + // �긽�쐞 �봽濡쒖젥�듃瑜� 李얠븘以��떎. + private void setParentProject(List<ProjectVo> projectVos) { + for (ProjectVo projectVo : projectVos) { + ProjectClosure projectClosure = this.projectClosureRepository.findByProjectId(projectVo.getId()); + if (projectClosure != null) { + Project parentProject = this.getProject(projectClosure.getParentProject().getId()); + ProjectVo parentProjectVo = ConvertUtil.copyProperties(parentProject, ProjectVo.class); + parentProjectVo.setParentYn(true); + ConvertUtil.copyProperties(parentProjectVo, projectVo); + this.setProjectDepartment(projectVo); + } + } } // 愿�由ъ옄, �씪諛� �궗�슜�옄瑜� 議곌굔�뿉 �뵲�씪 李얠븘以��떎. @@ -795,8 +822,11 @@ } projectRole.getProjectRoleDepartments().clear(); + this.checkDepartmentOfWorkflow(project, projectForm.getDepartmentIds()); + for (Long departmentId : projectForm.getDepartmentIds()) { Department department = this.departmentService.getDepartment(departmentId); + department.addProjectRole(projectRole); } @@ -810,6 +840,33 @@ return results; + } + + /** + * �봽濡쒖젥�듃�� �뿰寃곕맂 �씠�뒋�쑀�삎�쓽 �썙�겕�뵆濡쒖슦�뿉�꽌 �꽕�젙�븳 遺��꽌�뒗 �봽濡쒖젥�듃 �떞�떦遺��꽌�뿉�꽌 �젣�쇅 遺덇� + * @param project Project + * @param departmentIds List<Long> + */ + private void checkDepartmentOfWorkflow(Project project, List<Long> departmentIds) { + List<IssueType> issueTypes = this.issueTypeService.findByProjectId(project.getId()); + + List<Long> workflowDepartmentIds = Lists.newArrayList(); + + if (issueTypes != null && issueTypes.size() > 0) { + for (IssueType issueType : issueTypes) { + List<WorkflowDepartment> workflowDepartments = this.workflowDepartmentService.find(issueType.getWorkflow().getId()); + if (workflowDepartments != null && workflowDepartments.size() > 0) { + for (WorkflowDepartment workflowDepartment : workflowDepartments) { + workflowDepartmentIds.add(workflowDepartment.getDepartment().getId()); + + if (!departmentIds.containsAll(workflowDepartmentIds)) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.PROJECT_DEPARTMENT_NOT_EQUAL_WORKFLOW)); + } + } + } + } + } } // �봽濡쒖젥�듃 李몄뿬, �젣�쇅 �넻吏� �젙蹂대�� 以묐났�쑝濡� �굹媛�吏� �븡�룄濡� 泥댄겕�븳�떎. @@ -1293,4 +1350,4 @@ resJsonData.put(Constants.RES_KEY_CONTENTS, ConvertUtil.copyProperties(project, ProjectVo.class)); } -} +} \ No newline at end of file -- Gitblit v1.8.0