src/main/java/kr/wisestone/owl/service/IssueCommentService.java
@@ -1,6 +1,7 @@ package kr.wisestone.owl.service; import kr.wisestone.owl.domain.IssueComment; import kr.wisestone.owl.domain.User; import kr.wisestone.owl.vo.IssueCommentVo; import kr.wisestone.owl.web.form.IssueCommentForm; import org.springframework.data.jpa.repository.JpaRepository; @@ -11,6 +12,8 @@ IssueComment addIssueComment(IssueCommentForm issueCommentForm); IssueComment addIssueComment(IssueCommentForm issueCommentForm, User user); void removeIssueComments(IssueCommentForm issueCommentForm); IssueComment getIssueComment(Long id ); src/main/java/kr/wisestone/owl/service/WorkspaceService.java
@@ -42,6 +42,8 @@ void checkUseWorkspace(); void checkUseWorkspace(User user); Workspace checkUseWorkspace(User user, Long workspaceId); ModelAndView checkUseExcelDownload(Model model); src/main/java/kr/wisestone/owl/service/impl/IssueCommentServiceImpl.java
@@ -3,6 +3,7 @@ import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.domain.Issue; import kr.wisestone.owl.domain.IssueComment; import kr.wisestone.owl.domain.User; import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.repository.IssueCommentRepository; import kr.wisestone.owl.service.IssueCommentService; @@ -61,6 +62,26 @@ return issueComment; } // 댓글을 등록한다. (api용) @Override @Transactional public IssueComment addIssueComment(IssueCommentForm issueCommentForm, User user) { // 사용하고 있는 업무 공간이 활성 상태인지 확인한다. 사용 공간에서 로그인한 사용자가 비활성인지 확인한다. this.workspaceService.checkUseWorkspace(user); IssueComment issueComment = ConvertUtil.copyProperties(issueCommentForm, IssueComment.class); this.verifyComment(issueCommentForm.getDescription()); Issue issue = this.issueService.getIssue(issueCommentForm.getIssueId()); issueComment.setIssue(issue); issueComment.setWorkspace(issue.getProject().getWorkspace()); this.issueCommentRepository.saveAndFlush(issueComment); return issueComment; } private void verifyComment(String comment) { if (StringUtils.isEmpty(comment)) { throw new OwlRuntimeException( src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
@@ -349,8 +349,11 @@ this.detectIssuePeriod(issue, issueForm, description); // 담당자 변경 정보를 기록한다. this.detectIssueManager(issue, issueForm, description); // 담당부서 변경 정보를 기록한다. this.detectIssueDepartment(issue, issueForm, description); if (issueForm.getIsApi().equals(Issue.IS_API_NO)) { //api로 변경 시 담당부서 변경 불가 // 담당부서 변경 정보를 기록한다. this.detectIssueDepartment(issue, issueForm, description); } // 사용자 정의 필드 변경 정보를 기록한다. this.detectCustomField(issue, issueForm, description); @@ -759,10 +762,7 @@ // 이슈 위험 관리에 담당부서 변경 정보를 업데이트 한다. - 담당부서 변경 this.issueRiskService.modifyIssueRisk(issue, false, true, null); saveIssueRisk = true; } // 담당부서 수는 같으나 담당부서가 달라졌을 경우 if (issue.getIssueDepartments().size() > 0 && issueForm.getDepartmentIds().size() > 0) { }else if (issue.getIssueDepartments().size() > 0 && issueForm.getDepartmentIds().size() > 0) {// 담당부서 수는 같으나 담당부서가 달라졌을 경우 // 이전 담당자 표시 for (IssueDepartment issueDepartment : issue.getIssueDepartments()) { boolean change = true; src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -313,7 +313,7 @@ } } private void findCompanyField(IssueForm issueForm) { private IssueForm findCompanyField(IssueForm issueForm) { if(issueForm.getIssueCustomFields() != null && issueForm.getIssueCustomFields().size() > 0) { CompanyFieldCondition condition = new CompanyFieldCondition(); List<Map<String, Object>> companyFields = this.companyFieldService.find(condition); @@ -356,6 +356,7 @@ issueForm.setIssueHostingFields(issueHostingFields); } } return issueForm; } private User convertToUser(String token) { @@ -381,7 +382,14 @@ } else { // 가상 상위 이슈 추가 IssueForm parentIssueForm = issueForm.clone(); // 가상 상위 이슈 추가 parentIssueForm.setUseIssueCustomFields(issueApiForm.getUseIssueCustomFieldIds()); // 같은 도메인 업체 찾기 IssueForm partners = this.findCompanyField(parentIssueForm); parentIssueForm.setIssueCompanyFields(partners.getIssueCompanyFields()); parentIssueForm.setIssueIspFields(partners.getIssueIspFields()); parentIssueForm.setIssueHostingFields(partners.getIssueHostingFields()); Issue issue = addIssue(user, parentIssueForm, null); issues.add(issue); // 하위 이슈 추가 @@ -501,7 +509,6 @@ this.issueIspService.modifyIssueIspField(issue, issueForm); // HOSTING 정보 저장 this.issueHostingService.modifyIssueHostingField(issue, issueForm); // 첨부 파일 저장 // multipartFile 을 file Map List 객체로 변경한다. @@ -1904,6 +1911,13 @@ private Issue modifyIssueForApi(User user, IssueForm issueForm, List<MultipartFile> multipartFiles) { CheckIssueData checkIssueData = this.checkIssue(user, issueForm); if (issueForm.getComment() != null && !issueForm.getComment().equals("")) { //댓글 추가 IssueCommentForm issueCommentForm = new IssueCommentForm(); issueCommentForm.setDescription(issueForm.getComment()); issueCommentForm.setIssueId(issueForm.getId()); this.issueCommentService.addIssueComment(issueCommentForm, user); } // 이슈 이력 남기기 this.addIssueHistoryModify(user, issueForm, checkIssueData, multipartFiles); src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java
@@ -567,6 +567,15 @@ // 사용하고 있는 업무 공간이 활성 상태인지 확인한다. 사용 공간에서 로그인한 사용자가 비활성인지 확인한다. @Override @Transactional public void checkUseWorkspace(User user) { Workspace workspace = this.getWorkspace(user.getLastWorkspaceId()); this.checkUseWorkspace(user, workspace.getId()); } // 사용하고 있는 업무 공간이 활성 상태인지 확인한다. 사용 공간에서 로그인한 사용자가 비활성인지 확인한다. @Override @Transactional public Workspace checkUseWorkspace(User user, Long workspaceId) { if (user == null) { throw new OwlRuntimeException( src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java
@@ -32,6 +32,7 @@ private List<MultipartFile> multipartFiles = Lists.newArrayList(); private List<Long> useIssueCustomFieldIds = Lists.newArrayList(); // 사위일감용 사용자필드값 private String url; // 탐지 시스템에서만 적용 private String comment; public IssueApiForm() { } @@ -237,4 +238,12 @@ public void setUrl(String url) { this.url = url; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } } src/main/java/kr/wisestone/owl/web/form/IssueForm.java
@@ -1,6 +1,7 @@ package kr.wisestone.owl.web.form; import com.google.common.collect.Lists; import kr.wisestone.owl.domain.Issue; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; import kr.wisestone.owl.vo.CompanyFieldVo; @@ -66,7 +67,7 @@ private List<Map<String, Object>> files = Lists.newArrayList(); // api용 첨부파일 private Long parentIssueId; // 상위 이슈 private String isApi; private String isApi = Issue.IS_API_NO; private List<String> downIssuesStatus = Lists.newArrayList(); //하위이슈 상태 public IssueForm() {