OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2022-01-17 8783774ccda8050a0711eab992cb4f8c65937ce1
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -1592,6 +1592,9 @@
                this.setIssueCustomFields(downIssue, downIssueVo);   // 사용자정의필드 정보 세팅
                this.setIssueHistory(downIssue, downIssueVo);   //  이슈 기록 정보 셋팅
                this.setIssueComments(downIssue, downIssueVo);  //  댓글 정보 셋팅
                this.setIssueCompanyField(downIssue, downIssueVo);  //업체 정보 세팅
                this.setIssueIspField(downIssue, downIssueVo);  //ISP 정보 세팅
                this.setIssueHostingField(downIssue, downIssueVo);  //HOSTING 정보 세팅
                downIssueVo.setModifyPermissionCheck(issueVo.getModifyPermissionCheck());
@@ -1605,6 +1608,11 @@
    @Override
    @Transactional(readOnly = true)
    public void setIssueDetail(IssueVo issueVo, Issue issue, User user) {
        //  이슈 수정 권한을 갖고 있는지 확인
        if (this.checkHasPermission(issueVo, issueVo.getUserVos(), user, issueVo.getDepartmentVos())) {
            issueVo.setModifyPermissionCheck(Boolean.TRUE);
        }
        issueVo.setProjectVo(ConvertUtil.copyProperties(issue.getProject(), ProjectVo.class));
        issueVo.setIssueTypeVo(ConvertUtil.copyProperties(issue.getIssueType(), IssueTypeVo.class));
        IssueStatusVo issueStatusVo = ConvertUtil.copyProperties(issue.getIssueStatus(), IssueStatusVo.class, "issueStatusType");
@@ -1640,11 +1648,6 @@
        this.setIssueIspField(issue, issueVo);  //ISP 정보 세팅
        this.setIssueHostingField(issue, issueVo);  //HOSTING 정보 세팅
        this.setParentIssue(issue,issueVo); //상위 이슈 정보 세팅
        //  이슈 수정 권한을 갖고 있는지 확인
        if (this.checkHasPermission(issueVo, issueVo.getUserVos(), user, issueVo.getDepartmentVos())) {
            issueVo.setModifyPermissionCheck(Boolean.TRUE);
        }
    }
    //  상위일감 정보 추가
@@ -1708,6 +1711,25 @@
                this.setRegister(relationIssue, relIssueVo); // 등록자
                this.setIssueDepartment(relationIssue, relIssueVo);  //  담당부서 정보 셋팅
                this.setIssueCustomFields(relationIssue, relIssueVo);   // 사용자정의필드 정보 세팅
                Set<IssueCompany> issueCompanies = relationIssue.getIssueCompanies();
                Iterator<IssueCompany> itrCompany = issueCompanies.iterator();
                while (itrCompany.hasNext()) {
                    issueRelationVo.addIssueCompanyVo(ConvertUtil.copyProperties(itrCompany.next(), IssueCompanyVo.class));
                }
                Set<IssueIsp> issueIsps = relationIssue.getIssueIspFields();
                Iterator<IssueIsp> itrIsp = issueIsps.iterator();
                while (itrIsp.hasNext()) {
                    issueRelationVo.addIssueIspVo(ConvertUtil.copyProperties(itrIsp.next(), IssueIspVo.class));
                }
                Set<IssueHosting> issueHostings = relationIssue.getIssueHostingFields();
                Iterator<IssueHosting> itrHosting = issueHostings.iterator();
                while (itrHosting.hasNext()) {
                    issueRelationVo.addIssueHostingVo(ConvertUtil.copyProperties(itrHosting.next(), IssueHostingVo.class));
                }
                issueVo.addIssueRelationVo(issueRelationVo);
            }
        } else {
@@ -1840,6 +1862,7 @@
            issueCustomFieldValueCondition.setUseValue(concatUseValue);
            issueCustomFieldValueCondition.setUseValues(userValues);
            issueCustomFieldValueCondition.setIssueTypeId(issueApiform.getIssueTypeId());
            issueCustomFieldValueCondition.setIssueStatusType("CLOSE");
            List<Map<String, Object>> results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition);
            if (results != null && results.size() > 0) {
                for (Map<String, Object> result : results) {
@@ -3674,12 +3697,12 @@
        if (emailCommonForm.getSendEmails().size() < 1) {
            throw new OwlRuntimeException(
                    this.messageAccessor.getMessage(MsgConstants.ISSUE_NOT_SEND_USER));
        } else if (emailCommonForm.getIssueId() == null) {
            throw new OwlRuntimeException(
                    this.messageAccessor.getMessage(MsgConstants.ISSUE_NOT_EXIST));
        }
        Issue issue = this.getIssue(emailCommonForm.getIssueId());
        Issue issue = null;
        if(emailCommonForm.getIssueId() != null) {
            issue = this.getIssue(emailCommonForm.getIssueId());
        }
        //  발신자 표시
        User user = this.webAppUtil.getLoginUserObject();
@@ -3696,8 +3719,10 @@
        }
        this.systemEmailService.sendEmail(emailCommonForm.getTitle(), emailCommonForm.getDescription(), sendMails, null);
        this.issueHistoryService.detectSendIssueMail(IssueHistoryType.SEND, emailCommonForm.getSendEmails(), sb);
        this.issueHistoryService.addIssueHistory(issue, IssueHistoryType.SEND, sb.toString());
        if (issue != null) {
            this.issueHistoryService.detectSendIssueMail(IssueHistoryType.SEND, emailCommonForm.getSendEmails(), sb);
            this.issueHistoryService.addIssueHistory(issue, IssueHistoryType.SEND, sb.toString());
        }
    }
    //  예약 발생 이슈를 실행한다