From 30ddd2cf095d2857ba1134fb3deaf51392ef1030 Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 화, 07 12월 2021 21:31:45 +0900 Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 54 insertions(+), 4 deletions(-) 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 1c33b93..290fc31 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -19,6 +19,7 @@ import kr.wisestone.owl.mapper.ProjectMapper; import kr.wisestone.owl.repository.IssueRepository; import kr.wisestone.owl.repository.UserDepartmentRepository; +import kr.wisestone.owl.repository.WorkflowDepartmentRepository; import kr.wisestone.owl.service.*; import kr.wisestone.owl.util.*; import kr.wisestone.owl.util.DateUtil; @@ -168,6 +169,9 @@ @Autowired private UserDepartmentRepository userDepartmentRepository; + @Autowired + private WorkflowDepartmentRepository workflowDepartmentRepository; + @Override protected JpaRepository<Issue, Long> getRepository() { return this.issueRepository; @@ -238,7 +242,7 @@ issueForm.setSeverityId(issueApiDefault.getSeverity().getId()); } - // 以묐났 媛� �븯�쐞 �씠�뒋濡� 泥섎━�븯湲� + // 以묐났 媛� �긽�쐞 �씠�뒋�쓽 �븯�쐞 �씠�뒋濡� 泥섎━�븯湲� CustomFieldApiOverlapForm customFieldApiOverlapForm = new CustomFieldApiOverlapForm(); customFieldApiOverlapForm.setUserId(user.getId()); customFieldApiOverlapForm.setIssueTypeId(issueForm.getIssueTypeId()); @@ -307,14 +311,25 @@ return issues; } + // �긽�쐞 �씠�뒋 媛��졇�삤湲� + private IssueVo getParentIssueVo(Long parentIssueId) { + if (parentIssueId != null) { + Issue parentIssue = this.getIssue(parentIssueId); + return ConvertUtil.copyProperties(parentIssue, IssueVo.class); + } + return null; + } + // 以묐났�맂 �긽�쐞 �씠�뒋 寃��깋 private List<IssueVo> findIssue(IssueApiForm issueApiForm, List<CustomFieldApiOverlap> customFieldApiOverlaps, Long userId) { List<IssueVo> resultIssueVos = new ArrayList<>(); + if (customFieldApiOverlaps != null && customFieldApiOverlaps.size() > 0) { for (CustomFieldApiOverlap customFieldApiOverlap : customFieldApiOverlaps) { for (IssueCustomFieldValueForm issueCustomFieldValue : issueApiForm.getIssueCustomFieldValues()) { IssueCustomFieldValueCondition issueCustomFieldValueCondition = new IssueCustomFieldValueCondition(); + issueCustomFieldValueCondition.setUseParentIssueId(true); if (customFieldApiOverlap.getCustomField().getId().equals(issueCustomFieldValue.getCustomFieldId())) { issueCustomFieldValueCondition.setUseValue(issueCustomFieldValue.getUseValue()); @@ -677,11 +692,28 @@ issueCondition.setMyDepartmentIds(myDepartmentIds); } + void SetWorkflowDepartment(List<IssueVo> issueVos){ + for(IssueVo issueVo : issueVos){ + Long issueTypeId = issueVo.getIssueTypeId(); + IssueType issueType = this.issueTypeService.getIssueType(issueTypeId); + Long workflowId = issueType.getWorkflow().getId(); + List<WorkflowDepartment> workflowDepartmentList = this.workflowDepartmentRepository.findByWorkflowId(workflowId); + List<Long> workflowDepartmentIds = Lists.newArrayList(); + if(workflowDepartmentList != null && workflowDepartmentList.size()>0){ + for(WorkflowDepartment workflowDepartment : workflowDepartmentList){ + workflowDepartmentIds.add(workflowDepartment.getDepartment().getId()); + } + } + if(issueVo.getIssueTypeId().equals(issueTypeId)){ + issueVo.setWorkflowDepartmentIds(workflowDepartmentIds); + } + } + } + // �씠�뒋 紐⑸줉�쓣 議고쉶�븳�떎. @Override @Transactional(readOnly = true) - public List<IssueVo> findIssue(Map<String, Object> resJsonData, - IssueCondition issueCondition, Pageable pageable) { + public List<IssueVo> findIssue(Map<String, Object> resJsonData, IssueCondition issueCondition, Pageable pageable) { // 寃��깋 議곌굔�쓣 留뚮뱺�떎 if (!this.makeIssueSearchCondition(issueCondition, Lists.newArrayList("01", "02", "03"), pageable)) { @@ -723,6 +755,7 @@ totalCount = this.issueMapper.countByDepartment(issueCondition); } + // �뒠�떇 �쟾 - 0.8, 0.9, 0.9, 0.9, 0.9 /*StopWatch serviceStart = new StopWatch(); serviceStart.start();*/ @@ -738,6 +771,7 @@ this.setMapToIssueVo(results, issueVos, issueCondition, user); this.setCountDownIssues(results, issueVos); + this.SetWorkflowDepartment(issueVos); //�썙�겕�뵆濡쒖슦�뿉 �꽕�젙�븳 �떞�떦遺��꽌 媛��졇�삤湲� resJsonData.put(Constants.RES_KEY_CONTENTS, issueVos); resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(), @@ -1419,12 +1453,20 @@ @Override @Transactional public List<IssueVo> findIssue(IssueApiForm issueApiform) { + List<IssueCustomFieldValueForm> issueCustomFieldValueForms = issueApiform.getIssueCustomFieldValues(); List<IssueVo> resultIssueVos = new ArrayList<>(); IssueCustomFieldValueCondition issueCustomFieldValueCondition = new IssueCustomFieldValueCondition(); + issueCustomFieldValueCondition.setUseParentIssueId(false); if (issueCustomFieldValueForms.size() > 0) { for (IssueCustomFieldValueForm issueCustomFieldValueForm : issueCustomFieldValueForms) { + + CustomField customField = this.customFieldService.getCustomField(issueCustomFieldValueForm.getCustomFieldId()); + CustomFieldType customFieldType = CustomFieldType.DATETIME; + if (customFieldType.equals(customField.getCustomFieldType())) { + continue; + } // issueCustomFieldValueCondition.addUseValue(issueCustomFieldValueForm.getUseValue()); issueCustomFieldValueCondition.setUseValue(issueCustomFieldValueForm.getUseValue()); List<Map<String, Object>> results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition); @@ -1434,6 +1476,8 @@ resultIssueVos.clear(); for (Map<String, Object> result : results) { IssueVo issueVo = ConvertUtil.convertMapToClass(result, IssueVo.class); + + issueVo.setParentIssueVo(this.getParentIssueVo(MapUtil.getLong(result, "parentIssueId"))); if (findIssueVos.size() == 0) { resultIssueVos.add(issueVo); @@ -1472,11 +1516,17 @@ User user = this.convertToUser(issueApiForm.getToken()); IssueForm issueForm = this.convertToIssueForm(issueApiForm, user); + List<IssueVo> issueVos = this.findIssue(issueApiForm); if (issueVos != null && issueVos.size() > 0) { List<Issue> issue = Lists.newArrayList(); for (IssueVo issueVo : issueVos) { - issueForm.setId(issueVo.getId()); + IssueVo parentIssueVo = issueVo.getParentIssueVo(); + if (parentIssueVo != null) { + issueForm.setId(parentIssueVo.getId()); + } else { + issueForm.setId(issueVo.getId()); + } issue.add(this.modifyIssueForApi(user, issueForm, files)); } return issue; -- Gitblit v1.8.0