src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/vo/IssueDownVo.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/vo/IssueVo.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/scripts/app/issue/issueDetail.controller.js | ●●●●● 패치 | 보기 | raw | blame | 히스토리 |
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -1021,9 +1021,25 @@ // 하위 이슈 정보를 셋팅한다 private void setDownIssues(Issue issue, IssueVo issueVo) { List<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId()); /*if(issueVo != null && downIssues.size()>0){ for(Issue downIssue : downIssues){ IssueVo downIssueVo = ConvertUtil.copyProperties(downIssue, IssueVo.class); IssueDownVo issueDownVo = ConvertUtil.copyProperties(downIssueVo, IssueDownVo.class); issueDownVo.setIssueDown(downIssueVo); issueDownVo.setTitle(downIssue.getTitle()); issueDownVo.setIssueTypeVo(ConvertUtil.copyProperties(downIssue.getIssueType(), IssueTypeVo.class)); issueDownVo.setPriorityVo(ConvertUtil.copyProperties(downIssue.getPriority(), PriorityVo.class)); issueDownVo.setSeverityVo(ConvertUtil.copyProperties(downIssue.getSeverity(), SeverityVo.class)); this.setRegister(downIssue, downIssueVo); // 등록자 this.setIssueDepartment(downIssue, downIssueVo); // 담당부서 정보 셋팅 this.setIssueCustomFields(downIssue, downIssueVo); // 사용자정의필드 정보 세팅 issueVo.addIssueDownVo(issueDownVo); } }*/ List<IssueVo> downIssueVos = ConvertUtil.convertObjectsToClasses(downIssues, IssueVo.class); List<IssueVo> resultList = new ArrayList<>(); if(downIssues != null && downIssueVos.size()>0){ if(downIssueVos != null && downIssueVos.size()>0){ for(IssueVo downIssueVo : downIssueVos){ for(Issue downIssue : downIssues){ downIssueVo.setIssueTypeVo(ConvertUtil.copyProperties(downIssue.getIssueType(), IssueTypeVo.class)); @@ -1035,9 +1051,7 @@ } resultList.add(downIssueVo); } issueVo.setIssueDownVos(resultList); //프론트에서 List형태로 받아줘서 리스트 형식으로 보내줌 }else{ issueVo.setIssueDownVos(null); issueVo.setIssueDownVos(resultList); } } @@ -2942,7 +2956,7 @@ StringBuilder sb = new StringBuilder(); Issue parentIssue = issue.getParentIssue(); //변경 전 하위이슈의 상위이슈 if(parentIssue != null){ //변경 전 하위이슈의 상위이슈가 존재 할 경우 if(parentIssue != null && parentIssue.getId().equals(newParentIssueId)){ //변경 전 하위이슈의 상위이슈가 존재 할 경우 this.issueHistoryService.detectDownIssues(IssueHistoryType.DELETE, issue, sb); this.issueHistoryService.addIssueHistory(parentIssue, IssueHistoryType.MODIFY, sb.toString()); } @@ -2951,7 +2965,7 @@ parentIssue = this.getIssue(newParentIssueId); //상위이슈(myIssue) issue.setParentIssue(parentIssue); //myIssue를 하위이슈의 상위이슈로 set this.issueHistoryService.detectDownIssues(IssueHistoryType.ADD, issue, sb); //issue = 하위이슈 } else { } else{ // 삭제 할 경우 this.issueHistoryService.detectDownIssues(IssueHistoryType.DELETE, issue, sb); issue.setParentIssue(null); src/main/java/kr/wisestone/owl/vo/IssueDownVo.java
New file @@ -0,0 +1,93 @@ package kr.wisestone.owl.vo; import com.google.common.collect.Lists; import java.util.List; public class IssueDownVo extends BaseVo { private Long id; private IssueVo issue; private IssueVo issueDown; private String title; private IssueTypeVo issueTypeVo; // 이슈 상세에서 사용 private PriorityVo priorityVo; // 이슈 상세에서 사용 private SeverityVo severityVo; // 이슈 상세에서 사용 private UserVo registerVo; // 이슈 상세에서 사용 private List<DepartmentVo> departmentVos = Lists.newArrayList(); //담당부서 private Boolean modifyPermissionCheck = Boolean.FALSE; public IssueDownVo() {} public Long getId() { return id; } public void setId(Long id) { this.id = id; } public IssueVo getIssue() { return issue; } public void setIssue(IssueVo issue) { this.issue = issue; } public IssueVo getIssueDown() { return issueDown; } public void setIssueDown(IssueVo issueDown) { this.issueDown = issueDown; } public String getTitle() { return this.title; } public void setTitle(String title) { this.title = title; } public IssueTypeVo getIssueTypeVo() { return issueTypeVo; } public void setIssueTypeVo(IssueTypeVo issueTypeVo) { this.issueTypeVo = issueTypeVo; } public PriorityVo getPriorityVo() { return priorityVo; } public void setPriorityVo(PriorityVo priorityVo) { this.priorityVo = priorityVo; } public SeverityVo getSeverityVo() { return severityVo; } public void setSeverityVo(SeverityVo severityVo) { this.severityVo = severityVo; } public UserVo getRegisterVo() { return registerVo; } public void setRegisterVo(UserVo registerVo) { this.registerVo = registerVo; } public List<DepartmentVo> getDepartmentVos() { return departmentVos; } public void setDepartmentVos(List<DepartmentVo> departmentVos) { this.departmentVos = departmentVos; } public Boolean getModifyPermissionCheck() { return modifyPermissionCheck; } public void setModifyPermissionCheck(Boolean modifyPermissionCheck) { this.modifyPermissionCheck = modifyPermissionCheck; } } src/main/java/kr/wisestone/owl/vo/IssueVo.java
@@ -45,6 +45,7 @@ private List<IssueTypeCustomFieldVo> issueTypeCustomFieldVos = Lists.newArrayList(); private List<IssueCustomFieldValueVo> issueCustomFieldValueVos = Lists.newArrayList(); private List<IssueRelationVo> issueRelations = Lists.newArrayList(); //private List<IssueDownVo> issueDownVos = Lists.newArrayList(); private List<IssueVo> issueDownVos = Lists.newArrayList(); private List<IssueVo> issueRelationVos = Lists.newArrayList(); private Long attachedFileCount; @@ -402,6 +403,14 @@ this.issueRelations.add(issueRelationVo); } /*public void addIssueDownVo(IssueDownVo issueDownVo) { if (this.issueDownVos == null){ this.issueDownVos = new ArrayList<>(); } this.issueDownVos.add(issueDownVo); }*/ public List<IssueVo> getIssueRelationIssueVos() { return this.issueRelationVos; } public void setIssueRelationIssueVos(List<IssueVo> issueRelationVos) { this.issueRelationVos = issueRelationVos; } @@ -414,6 +423,14 @@ this.departmentVos = departmentVos; } /*public List<IssueDownVo> getIssueDownVos() { return issueDownVos; } public void setIssueDownVos(List<IssueDownVo> issueDownVos) { this.issueDownVos = issueDownVos; }*/ public List<IssueVo> getIssueDownVos() { return issueDownVos; } src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -870,7 +870,8 @@ // 하위 이슈 반목문 if (result.data.data.issueDownVos !== null){ angular.forEach(result.data.data.issueDownVos, function (issueDownVo){ $scope.vm.form.issuesDown.push(issueDownVo.issue); //$scope.vm.form.issuesDown.push(issueDownVo.issueDown); $scope.vm.form.issuesDown.push(issueDownVo); }); } $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos;