OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-12-08 257766aa7e8a88b2b371fc6f8f52751af7d84eda
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -60,6 +60,9 @@
    private ProjectService projectService;
    @Autowired
    private IssueTableConfigService issueTableConfigService;
    @Autowired
    private IssueStatusService issueStatusService;
    @Autowired
@@ -1226,6 +1229,7 @@
                case "02": //  프로젝트, 이슈 유형, 이슈 상태,  우선순위, 중요도, 담당자, 첨부파일, 사용자 정의 필드 정보, 댓글, 기록을 셋팅한다.
                    this.setIssueDetail(issueVo, issue);    //  이슈 상세 정보를 셋팅한다.
                    this.setIssueTableConfigs(issue, issueVo);
                    issueVo.setProjectVo(ConvertUtil.copyProperties(issue.getProject(), ProjectVo.class));
                    break;
            }
@@ -1236,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) {
@@ -1534,15 +1558,23 @@
            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));
                }
                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);