From 257766aa7e8a88b2b371fc6f8f52751af7d84eda Mon Sep 17 00:00:00 2001 From: wyu <kknd09321@nate.com> Date: 수, 08 12월 2021 21:54:40 +0900 Subject: [PATCH] 연관 ,하위 이슈 요청 횟수 수정 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 79 +++++++++++++++++++++++++++++++++++---- 1 files changed, 70 insertions(+), 9 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 290fc31..8e77478 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -17,6 +17,7 @@ import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.mapper.IssueMapper; import kr.wisestone.owl.mapper.ProjectMapper; +import kr.wisestone.owl.repository.IssueRelationRepository; import kr.wisestone.owl.repository.IssueRepository; import kr.wisestone.owl.repository.UserDepartmentRepository; import kr.wisestone.owl.repository.WorkflowDepartmentRepository; @@ -57,6 +58,9 @@ @Autowired private ProjectService projectService; + + @Autowired + private IssueTableConfigService issueTableConfigService; @Autowired private IssueStatusService issueStatusService; @@ -153,6 +157,9 @@ @Autowired private IssueRelationService issueRelationService; + + @Autowired + private IssueRelationRepository issueRelationRepository; @Autowired private ExcelView excelView; @@ -388,7 +395,7 @@ // �궇吏� �쑀�슚�꽦 泥댄겕 this.checkStartCompleteDate(issueForm.getStartDate(), issueForm.getCompleteDate()); // �떞�떦 遺��꽌 �쑀�슚�꽦 泥댄겕 - this.verifyIssueDepartment(project, issueForm); + //this.verifyIssueDepartment(project, issueForm); // �씠�뒋 �긽�깭 �쑀�삎�씠 '��湲�' �씤 �씠�뒋 �긽�깭 媛��졇�삤湲� IssueStatus issueStatus = this.issueStatusService.findByIssueStatusTypeIsReady(issueType.getWorkflow()); @@ -474,7 +481,7 @@ // �궇吏� �쑀�슚�꽦 泥댄겕 this.checkStartCompleteDate(issueForm.getStartDate(), issueForm.getCompleteDate()); // �떞�떦 遺��꽌 �쑀�슚�꽦 泥댄겕 - this.verifyIssueDepartment(project, issueForm); + //this.verifyIssueDepartment(project, issueForm); // �씠�뒋 �긽�깭 �쑀�삎�씠 '��湲�' �씤 �씠�뒋 �긽�깭 媛��졇�삤湲� IssueStatus issueStatus = this.issueStatusService.findByIssueStatusTypeIsReady(issueType.getWorkflow()); @@ -1222,6 +1229,7 @@ case "02": // �봽濡쒖젥�듃, �씠�뒋 �쑀�삎, �씠�뒋 �긽�깭, �슦�꽑�닚�쐞, 以묒슂�룄, �떞�떦�옄, 泥⑤��뙆�씪, �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂�, �뙎湲�, 湲곕줉�쓣 �뀑�똿�븳�떎. this.setIssueDetail(issueVo, issue); // �씠�뒋 �긽�꽭 �젙蹂대�� �뀑�똿�븳�떎. + this.setIssueTableConfigs(issue, issueVo); issueVo.setProjectVo(ConvertUtil.copyProperties(issue.getProject(), ProjectVo.class)); break; } @@ -1232,6 +1240,26 @@ resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo); } + + // �뀒�씠釉� �꽕�젙 �뀑�똿 + private void setIssueTableConfigs(Issue issue, IssueVo issueVo) { + Long IssueTypeId = issue.getIssueType().getId(); + + for (int tableConfigType : IssueTableConfig.IssueTableTypes) { + if (tableConfigType != IssueTableConfig.ISSUE_TABLE_TYPE_MAIN) { + issueVo.addIssueTableConfigVo(createIssueTableConfigVo(IssueTypeId, tableConfigType)); + } + } + } + + private IssueTableConfigVo createIssueTableConfigVo(Long issueTypeId, int tableConfigType) { + IssueTableConfig issueTableConfig = this.issueTableConfigService.findByUserIdAndWorkspaceIdAndIssueTypeIdAndIssueTableType(issueTypeId, tableConfigType); + if (issueTableConfig != null) { + return ConvertUtil.copyProperties(issueTableConfig, IssueTableConfigVo.class); + } + return new IssueTableConfigVo(); + } + // �븯�쐞 �씠�뒋 �젙蹂대�� �뀑�똿�븳�떎 private void setDownIssues(Issue issue, IssueVo issueVo) { @@ -1509,6 +1537,15 @@ } + // �븯�쐞 �씠�뒋媛� 紐⑤몢 醫낅즺 泥섎━ �릺�뿀�쓣 寃쎌슦 �긽�쐞�씠�뒋�룄 �셿猷� 泥섎━ + private void setParentIssueComplete(Issue parentIssue) { + if (parentIssue != null) { + this.issueMapper.findNotCompleteByParentIssueId(parentIssue.getId()); + + } + } + + // �씠�뒋瑜� �닔�젙�븳�떎(api�슜) @Override @Transactional @@ -1516,18 +1553,31 @@ 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) { IssueVo parentIssueVo = issueVo.getParentIssueVo(); - if (parentIssueVo != null) { - issueForm.setId(parentIssueVo.getId()); - } else { - issueForm.setId(issueVo.getId()); + issueForm.setId(issueVo.getId()); + + // �옄�룞 醫낅즺 �긽�깭 �꽕�젙�씠 �릺�뼱 �엳吏� �븡�쑝硫� �삤瑜섎컻�깮 + Issue modifyIssue = this.modifyIssueForApi(user, issueForm, files); + Issue parentIssue = modifyIssue.getParentIssue(); + IssueType issueType = modifyIssue.getIssueType(); + IssueStatus issueStatus = issueType.getIssueStatus(); + if (issueStatus == null) { + throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_COMPLETE_ISSUE_STATUS_NOT_EXIST)); } - issue.add(this.modifyIssueForApi(user, issueForm, files)); + + if (parentIssue != null) { + List<Map<String, Object>> results = this.issueMapper.findNotCompleteByParentIssueId(parentIssue.getId()); + // �븯�쐞 �씪媛먯씠 紐⑤몢 醫낅즺 �긽�깭�씪�븣 �긽�쐞 �씪媛먮룄 醫낅즺 泥섎━ + if (results == null || results.size() == 0) { + parentIssue.setIssueStatus(issueType.getIssueStatus()); + } + } + + issue.add(modifyIssue); } return issue; } else { @@ -1572,7 +1622,7 @@ // �떞�떦�옄 �쑀�슚�꽦 泥댄겕 //this.verifyIssueAssignee(project, issueForm); // �떞�떦遺��꽌 �쑀�슚�꽦 泥댄겕 - this.verifyIssueDepartment(project, issueForm); + //this.verifyIssueDepartment(project, issueForm); CheckIssueData checkIssueData = new CheckIssueData(); checkIssueData.setIssue(issue); @@ -2074,6 +2124,17 @@ this.attachedFileService.removeAttachedFiles(attachedFileIds); } + // 吏��슱 �씠�뒋媛� �뿰愿��씠�뒋�씤吏� 泥댄겕 �썑 �뿰愿��씠�뒋 �뀒�씠釉붿뿉�꽌�룄 �궘�젣�븳�떎. + List<IssueRelation> issueRelationList = this.issueRelationRepository.findByRelationIssueId(issueId); + if (issueRelationList != null && issueRelationList.size() > 0) { + for(IssueRelation issueRelation : issueRelationList){ + StringBuilder sb = new StringBuilder(); + issueHistoryService.detectRelationIssue(IssueHistoryType.DELETE, issueRelation, sb); + issueHistoryService.addIssueHistory(issueRelation.getIssue(), IssueHistoryType.MODIFY, sb.toString()); + this.issueRelationRepository.delete(issueRelation); + } + } + // �씠�뒋 �깮�꽦, �궘�젣�떆 �삁�빟 �씠硫붿씪�뿉 �벑濡앺빐�넃�뒗�떎. this.reservationIssueEmail(issue, EmailType.ISSUE_REMOVE); // �씠�뒋 �궘�젣 -- Gitblit v1.8.0