OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-14 32c59fee259217146d5940f9219aecd66dab0a1d
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -253,23 +253,25 @@
            // 상위일감에 사용할 중복값 설정
            List<CustomFieldApiOverlap> customFieldApiOverlaps = this.customFieldApiOverlapService.find(user.getId(), issueApiForm.getIssueTypeId());
            if (customFieldApiOverlaps == null || customFieldApiOverlaps.size() == 0){
                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_OVERLAP_SETTING_NOT_EXIST));
            }
            for(int i=0; i < customFieldApiOverlaps.size() ; i++ ){
                CustomFieldApiOverlap customFieldApiOverlap = customFieldApiOverlaps.get(i);
                issueApiForm.addUseIssueCustomFieldId(customFieldApiOverlap.getCustomField().getId());
            }
//            if (customFieldApiOverlaps == null || customFieldApiOverlaps.size() == 0){
//                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_OVERLAP_SETTING_NOT_EXIST));
//            }
            if (customFieldApiOverlaps != null && customFieldApiOverlaps.size() > 0) {
                for (int i = 0; i < customFieldApiOverlaps.size(); i++) {
                    CustomFieldApiOverlap customFieldApiOverlap = customFieldApiOverlaps.get(i);
                    issueApiForm.addUseIssueCustomFieldId(customFieldApiOverlap.getCustomField().getId());
                }
            // 중복된 이슈검색
            List<Issue> issues = this.findIssue(issueApiForm, customFieldApiOverlaps, user.getId());
            int size = issues.size();
            if (size > 0) {
                Issue targetIssue = issues.get(0);
                if (targetIssue.getParentIssue() != null) {
                    issueForm.setParentIssueId(targetIssue.getParentIssue().getId());
                } else {
                    issueForm.setParentIssueId(targetIssue.getId());
                // 중복된 이슈검색
                List<Issue> issues = this.findIssue(issueApiForm, customFieldApiOverlaps, user.getId());
                int size = issues.size();
                if (size > 0) {
                    Issue targetIssue = issues.get(0);
                    if (targetIssue.getParentIssue() != null) {
                        issueForm.setParentIssueId(targetIssue.getParentIssue().getId());
                    } else {
                        issueForm.setParentIssueId(targetIssue.getId());
                    }
                }
            }
@@ -1618,11 +1620,10 @@
                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) {
                    if (issueStatus == null) {
                        throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_COMPLETE_ISSUE_STATUS_NOT_EXIST));
                    }
                    IssueCondition issueCondition = new IssueCondition(issueVo.getId(), parentIssue.getId());
                    List<Map<String, Object>> results = this.issueMapper.findNotCompleteByParentIssueId(issueCondition);
                    // 하위 일감이 모두 종료 상태일때 상위 일감도 종료 처리