- API 수정 명령시 댓글 추가 가능(comment)
- API 이슈 입력시 상위 이슈에 같은 도메인 업체 등록되도록 수정
| | |
| | | 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; |
| | |
| | | |
| | | IssueComment addIssueComment(IssueCommentForm issueCommentForm); |
| | | |
| | | IssueComment addIssueComment(IssueCommentForm issueCommentForm, User user); |
| | | |
| | | void removeIssueComments(IssueCommentForm issueCommentForm); |
| | | |
| | | IssueComment getIssueComment(Long id ); |
| | |
| | | |
| | | void checkUseWorkspace(); |
| | | |
| | | void checkUseWorkspace(User user); |
| | | |
| | | Workspace checkUseWorkspace(User user, Long workspaceId); |
| | | |
| | | ModelAndView checkUseExcelDownload(Model model); |
| | |
| | | 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; |
| | |
| | | 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( |
| | |
| | | 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); |
| | | |
| | |
| | | // 이슈 위험 관리에 담당부서 변경 정보를 업데이트 한다. - 담당부서 변경 |
| | | 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; |
| | |
| | | } |
| | | } |
| | | |
| | | 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); |
| | |
| | | issueForm.setIssueHostingFields(issueHostingFields); |
| | | } |
| | | } |
| | | return issueForm; |
| | | } |
| | | |
| | | private User convertToUser(String token) { |
| | |
| | | } 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); |
| | | // 하위 이슈 추가 |
| | |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm); |
| | | // HOSTING 정보 저장 |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm); |
| | | |
| | | |
| | | // 첨부 파일 저장 |
| | | // multipartFile 을 file Map List 객체로 변경한다. |
| | |
| | | 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); |
| | | |
| | |
| | | // 사용하고 있는 업무 공간이 활성 상태인지 확인한다. 사용 공간에서 로그인한 사용자가 비활성인지 확인한다. |
| | | @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( |
| | |
| | | private List<MultipartFile> multipartFiles = Lists.newArrayList(); |
| | | private List<Long> useIssueCustomFieldIds = Lists.newArrayList(); // 사위일감용 사용자필드값 |
| | | private String url; // 탐지 시스템에서만 적용 |
| | | private String comment; |
| | | |
| | | public IssueApiForm() { |
| | | } |
| | |
| | | public void setUrl(String url) { |
| | | this.url = url; |
| | | } |
| | | |
| | | public String getComment() { |
| | | return comment; |
| | | } |
| | | |
| | | public void setComment(String comment) { |
| | | this.comment = comment; |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | |
| | | 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() { |