OWL ITS + 탐지시스템(인터넷 진흥원)
헤더에서 전체 프로젝트 선택 시 속해있지 않는 다른 프로젝트의 이슈유형리스트까지 보이는 문제 해결
3개 파일 변경됨
45 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java 28 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java 9 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/issueType-template.xml 8 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
@@ -191,20 +191,42 @@
                                           IssueTypeCondition condition, Pageable pageable) {
        List<Long> downProjectIds = Lists.newArrayList();
        List<Long> allProjectIds = Lists.newArrayList();
        List<ProjectClosure> projectClosures = Lists.newArrayList();
        condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
        condition.setPageSize(pageable.getPageSize());
        condition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
        List<ProjectClosure> projectClosures = this.projectClosureRepository.findByParentProjectId(condition.getProjectId());
        if (projectClosures != null) {
        if (condition.getProjectId() == null) {
            List<ProjectVo> projectVos = this.projectService.findByIncludeProject(Lists.newArrayList("01", "02", "03"), ProjectType.BTS_PROJECT.toString());
            if (projectVos != null && projectVos.size() > 0) {
                for (ProjectVo projectVo : projectVos) {
                    allProjectIds.add(projectVo.getId());
                    projectClosures = this.projectClosureRepository.findByParentProjectId(projectVo.getId());
                    if (projectClosures != null && projectClosures.size() > 0) {
                        for (ProjectClosure projectClosure : projectClosures) {
                            allProjectIds.add(projectClosure.getProject().getId());
                        }
                    }
                }
            }
        }else {
            projectClosures = this.projectClosureRepository.findByParentProjectId(condition.getProjectId());
        }
        if (projectClosures != null && projectClosures.size() > 0) {
            for (ProjectClosure projectClosure : projectClosures) {
                Long downProjectId = projectClosure.getProject().getId();
                downProjectIds.add(downProjectId);
                allProjectIds.add(downProjectId);
            }
        }
        condition.setDownProjectIds(downProjectIds);
        if (condition.getProjectId() == null) {
            condition.setAllProjectIds(allProjectIds);
        }
        List<Map<String, Object>> results = this.issueTypeMapper.find(condition);
        for (Map<String, Object> result : results) {
            Long projectId = MapUtil.getLong(result, "projectId");
src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java
@@ -30,6 +30,7 @@
    private String isApi;
    private List<Long> downProjectIds = Lists.newArrayList();
    private List<Long> allProjectIds = Lists.newArrayList();
    public IssueTypeCondition(){}
@@ -160,4 +161,12 @@
    public void setIsApi(String isApi) {
        this.isApi = isApi;
    }
    public List<Long> getAllProjectIds() {
        return allProjectIds;
    }
    public void setAllProjectIds(List<Long> allProjectIds) {
        this.allProjectIds = allProjectIds;
    }
}
src/main/resources/mybatis/query-template/issueType-template.xml
@@ -17,6 +17,14 @@
        <if test="name != '' and name != null">
            AND it.name like CONCAT('%',#{name},'%')
        </if>
        <choose>
            <when test="allProjectIds != null and allProjectIds.size != 0">
                AND it.project_id IN
                <foreach collection="allProjectIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
        <if test="projectId != '' and projectId != null">
            AND it.project_id like CONCAT('%',#{projectId},'%')
        </if>