OWL ITS + 탐지시스템(인터넷 진흥원)
jhjang
2022-01-05 ce82939b2d2ef793e446f464314c6e570c7ebad5
Merge remote-tracking branch 'origin/master'
8개 파일 변경됨
77 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/IssueCommentService.java 3 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/WorkspaceService.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueCommentServiceImpl.java 21 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java 12 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 18 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java 9 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java 9 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/form/IssueForm.java 3 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/IssueCommentService.java
@@ -1,6 +1,7 @@
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;
@@ -11,6 +12,8 @@
    IssueComment addIssueComment(IssueCommentForm issueCommentForm);
    IssueComment addIssueComment(IssueCommentForm issueCommentForm, User user);
    void removeIssueComments(IssueCommentForm issueCommentForm);
    IssueComment getIssueComment(Long id );
src/main/java/kr/wisestone/owl/service/WorkspaceService.java
@@ -42,6 +42,8 @@
    void checkUseWorkspace();
    void checkUseWorkspace(User user);
    Workspace checkUseWorkspace(User user, Long workspaceId);
    ModelAndView checkUseExcelDownload(Model model);
src/main/java/kr/wisestone/owl/service/impl/IssueCommentServiceImpl.java
@@ -3,6 +3,7 @@
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;
@@ -61,6 +62,26 @@
        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(
src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
@@ -349,8 +349,11 @@
        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);
@@ -759,10 +762,7 @@
            // 이슈 위험 관리에 담당부서 변경 정보를 업데이트 한다. - 담당부서 변경
            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;
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -313,7 +313,7 @@
        }
    }
    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);
@@ -356,6 +356,7 @@
                issueForm.setIssueHostingFields(issueHostingFields);
            }
        }
        return issueForm;
    }
    private User convertToUser(String token) {
@@ -381,7 +382,14 @@
        } 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);
            // 하위 이슈 추가
@@ -501,7 +509,6 @@
        this.issueIspService.modifyIssueIspField(issue, issueForm);
        //  HOSTING 정보 저장
        this.issueHostingService.modifyIssueHostingField(issue, issueForm);
        //  첨부 파일 저장
        //  multipartFile 을 file Map List 객체로 변경한다.
@@ -1904,6 +1911,13 @@
    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);
src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java
@@ -567,6 +567,15 @@
    //  사용하고 있는 업무 공간이 활성 상태인지 확인한다. 사용 공간에서 로그인한 사용자가 비활성인지 확인한다.
    @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(
src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java
@@ -32,6 +32,7 @@
    private List<MultipartFile> multipartFiles = Lists.newArrayList();
    private List<Long> useIssueCustomFieldIds = Lists.newArrayList();       // 사위일감용 사용자필드값
    private String url;             // 탐지 시스템에서만 적용
    private String comment;
    public IssueApiForm() {
    }
@@ -237,4 +238,12 @@
    public void setUrl(String url) {
        this.url = url;
    }
    public String getComment() {
        return comment;
    }
    public void setComment(String comment) {
        this.comment = comment;
    }
}
src/main/java/kr/wisestone/owl/web/form/IssueForm.java
@@ -1,6 +1,7 @@
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;
@@ -66,7 +67,7 @@
    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() {