OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -1513,6 +1513,15 @@
    }
    // 하위 이슈가 모두 종료 처리 되었을 경우 상위이슈도 완료 처리
    private void setParentIssueComplete(Issue parentIssue) {
        if (parentIssue != null) {
            this.issueMapper.findNotCompleteByParentIssueId(parentIssue.getId());
        }
    }
    // 이슈를 수정한다(api용)
    @Override
    @Transactional
@@ -1520,18 +1529,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 {