OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-14 a792396d2e2573419cc7308ede32f84b4578d6e9
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -12,6 +12,7 @@
import kr.wisestone.owl.domain.enumType.IssueHistoryType;
import kr.wisestone.owl.domain.enumType.IssueStatusType;
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.mapper.DepartmentMapper;
import kr.wisestone.owl.mapper.IssueMapper;
import kr.wisestone.owl.mapper.ProjectMapper;
import kr.wisestone.owl.repository.IssueRelationRepository;
@@ -175,6 +176,9 @@
    @Autowired
    private UserDepartmentRepository userDepartmentRepository;
    @Autowired
    private DepartmentMapper departmentMapper;
    @Autowired
    private WorkflowDepartmentRepository workflowDepartmentRepository;
@@ -694,8 +698,22 @@
            for(UserDepartment myDepartment : myDepartments){
                myDepartmentIds.add(myDepartment.getDepartmentId());
            }
        } else {
            myDepartmentIds.add(-1L);
        }
        issueCondition.setMyDepartmentIds(myDepartmentIds);
    }
    void SetAllDepartmentId(IssueCondition issueCondition){
        List<Long> departmentIds = Lists.newArrayList();
        List<Map<String, Object>> departmentList = this.departmentMapper.find(null);
        if(departmentList != null && departmentList.size() > 0){
            for(Map<String, Object> department : departmentList){
                departmentIds.add((Long) department.get("id"));
            }
        }
        issueCondition.setMyDepartmentIds(departmentIds);
    }
    void SetWorkflowDepartment(List<IssueVo> issueVos){
@@ -754,16 +772,16 @@
        Long totalCount = 0L;
        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
//        if (this.userWorkspaceService.checkWorkspaceManager(user)
//                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
            results = this.issueMapper.find(issueCondition);
            totalCount = this.issueMapper.count(issueCondition);
//        }
//        } else{
//            this.SetMyDepartmentId(issueCondition);
//            results = this.issueMapper.findByDepartment(issueCondition);
//            totalCount = this.issueMapper.countByDepartment(issueCondition);
//        }
        if (this.userWorkspaceService.checkWorkspaceManager(user)
                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
            this.SetAllDepartmentId(issueCondition);
        } else{
            this.SetMyDepartmentId(issueCondition);
            /*results = this.issueMapper.findByDepartment(issueCondition);
            totalCount = this.issueMapper.countByDepartment(issueCondition);*/
        }
        results = this.issueMapper.find(issueCondition);
        totalCount = this.issueMapper.count(issueCondition);
        //  튜닝 전 - 0.8, 0.9, 0.9, 0.9, 0.9
@@ -784,6 +802,7 @@
        this.setMapToIssueVo(results, issueVos, issueCondition, user);
        if (issueCondition.getTree()) {
            this.setParentIssue(issueVos);
            this.setDownIssues(user, issueVos);
            this.setRelationIssues(issueVos);
        }
@@ -813,9 +832,9 @@
                IssueVo addIssueVo = ConvertUtil.copyProperties(downIssue, IssueVo.class);
                addIssueVo.setIssueTypeId(downIssue.getIssueType().getId());
                downIssueVos.add(addIssueVo);
            }
            issueVo.setIssueDownVos(downIssueVos);
            if (downIssueVos.size() > 0) {
                this.setDownIssues(user, downIssueVos);
            }
@@ -825,11 +844,10 @@
            this.setIssueDepartmentList(issueVos, issueCondition, user);
            //  등록자 정보 추가
            this.setRegister(issueVos);  //  담당자 정보 셋팅
            //  사용자 정의 필드 정보 추가
            this.setIssueCustomFieldValue(issueVos, issueCondition);
            this.SetWorkflowDepartment(issueVos); //워크플로우에 설정한 담당부서 가져오기
            //워크플로우에 설정한 담당부서 가져오기
            this.SetWorkflowDepartment(issueVos);
        }
    }
@@ -843,6 +861,17 @@
        }
    }
    // 상위 이슈 체크
    private void setParentIssue(List<IssueVo> issueVos) {
        for(IssueVo issueVo : issueVos) {
            if(issueVo.getParentIssueId() != null) {
                Issue parentIssue = this.getIssue(issueVo.getParentIssueId());
                issueVo.setParentIssueVo(ConvertUtil.copyProperties(parentIssue, IssueVo.class));
                ConvertUtil.copyProperties(issueVo.getParentIssueVo(), issueVo);
            }
        }
    }
    @Override
    @Transactional(readOnly = true)
    public void setCountDownIssues(List<IssueVo> issueVos) {