OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-14 d64ce641aa6985cf531abe819ea7991f4fd2ec94
사용자등급, 프로젝트 엑셀 다운로드 오류 해결
4개 파일 변경됨
71 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java 21 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java 38 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/vo/UserLevelVo.java 8 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/project-template.xml 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
@@ -1169,7 +1169,20 @@
        ProjectCondition projectCondition = ProjectCondition.make(conditions);
        projectCondition.setLoginUserId(this.webAppUtil.getLoginId());
        projectCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
        List<Map<String, Object>> results = this.projectMapper.find(projectCondition);
        User user = this.webAppUtil.getLoginUserObject();
        List<Map<String, Object>> results;
        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
        if (this.userWorkspaceService.checkWorkspaceManager(user)
                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)
                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
            results = this.projectMapper.findByWorkspaceManager(projectCondition);
        }
        else {
            this.SetMyDepartmentId(projectCondition);
            results = this.projectMapper.find(projectCondition);
        }
        //  프로젝트 조회 결과를 ProjectVos 로 변환한다. - 관리자, 일반 사용자 정보 추가
        List<ProjectVo> projectVos = this.makeProjectVos(results, this.webAppUtil.getLoginUserObject());
        ExportExcelVo excelInfo = new ExportExcelVo();
@@ -1177,7 +1190,8 @@
        excelInfo.addAttrInfos(new ExportExcelAttrVo("statusName", this.messageAccessor.message("common.status"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // 상태
        excelInfo.addAttrInfos(new ExportExcelAttrVo("name", this.messageAccessor.message("common.project"), 40, ExportExcelAttrVo.ALIGN_LEFT)); // 프로젝트
        excelInfo.addAttrInfos(new ExportExcelAttrVo("manager", this.messageAccessor.message("common.admin"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // 관리자
        excelInfo.addAttrInfos(new ExportExcelAttrVo("members", this.messageAccessor.message("common.teamMember"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // 팀원
        //excelInfo.addAttrInfos(new ExportExcelAttrVo("members", this.messageAccessor.message("common.teamMember"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // 팀원
        excelInfo.addAttrInfos(new ExportExcelAttrVo("departments", this.messageAccessor.message("common.teamDepartment"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // 팀원
        excelInfo.addAttrInfos(new ExportExcelAttrVo("period", this.messageAccessor.message("common.period"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // 기간
        excelInfo.addAttrInfos(new ExportExcelAttrVo("projectKey", this.messageAccessor.message("common.projectKey"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // 프로젝트 키
        //  엑셀에 넣을 데이터 - ProjectVos 데이터를 엑셀에서 표시할 수 있는 데이터로 변경한다.
@@ -1221,7 +1235,8 @@
            }
            result.put("manager", stringBuilderManager.toString());
            result.put("members", CommonUtil.convertUserVosToString(projectVo.getProjectUserVos()));
            //result.put("members", CommonUtil.convertUserVosToString(projectVo.getProjectUserVos()));
            result.put("departments", CommonUtil.convertDepartmentVosToString(projectVo.getProjectDepartmentVos()));
            result.put("projectKey", projectVo.getProjectKey());
            result.put("period", projectVo.getStartDate() + " - " + projectVo.getEndDate());
            results.add(result);
src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
@@ -24,6 +24,9 @@
import kr.wisestone.owl.web.form.ProjectForm;
import kr.wisestone.owl.web.form.UserLevelForm;
import kr.wisestone.owl.web.view.ExcelView;
import org.jsoup.Jsoup;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
@@ -40,6 +43,8 @@
@Service
public class UserLevelServiceImpl extends AbstractServiceImpl<UserLevel, Long, JpaRepository<UserLevel, Long>> implements UserLevelService {
    private static final Logger log = LoggerFactory.getLogger(IssueServiceImpl.class);
    @Autowired
    private UserLevelRepository userLevelRepository;
@@ -238,7 +243,7 @@
        // code_ko_KR 에 code명 설정
        ExportExcelVo excelInfo = new ExportExcelVo();
        excelInfo.setFileName(this.messageAccessor.message("사용자 목록"));
        excelInfo.setFileName(this.messageAccessor.message("사용자 등급 목록"));
        excelInfo.addAttrInfos(new ExportExcelAttrVo("levelName", this.messageAccessor.message("managementWorkspace.levelName"), 6, ExportExcelAttrVo.ALIGN_CENTER));
        excelInfo.addAttrInfos(new ExportExcelAttrVo("permAllIssueAndProjectSetting", this.messageAccessor.message("manageUser.manageAllIssueAndProjectPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
        excelInfo.addAttrInfos(new ExportExcelAttrVo("permPartnerSetting", this.messageAccessor.message("manageUser.managePartnerPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
@@ -251,12 +256,41 @@
        excelInfo.addAttrInfos(new ExportExcelAttrVo("permQnA", this.messageAccessor.message("manageUser.manageQnAPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
        excelInfo.addAttrInfos(new ExportExcelAttrVo("permGuide", this.messageAccessor.message("manageUser.manageGuidePerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
        excelInfo.setDatas(userLevelVos);
        //  userLevelVos 데이터를 엑셀에서 표시할 수 있는 데이터로 변경한다.
        List<Map<String, Object>> convertExcelViewToUserLevelMaps = this.convertExcelViewToUserLevelVos(userLevelVos);
        excelInfo.setDatas(convertExcelViewToUserLevelMaps);
        model.addAttribute(Constants.EXCEL, excelInfo);
        return new ModelAndView(this.excelView);
    }
    //  userLevelVos 데이터를 엑셀에서 표시할 수 있는 데이터로 변경한다.
    private List<Map<String, Object>> convertExcelViewToUserLevelVos(List<UserLevelVo> userLevelVos) {
        List<Map<String, Object>> results = Lists.newArrayList();
        for (UserLevelVo userLevelVo : userLevelVos){
            try {
                Map<String, Object> result = new HashMap<>();
                result.put("levelName", userLevelVo.getLevelName());
                result.put("permAllIssueAndProjectSetting", userLevelVo.getPermAllIssueAndProjectSetting());
                result.put("permPartnerSetting", userLevelVo.getPermPartnerSetting());
                result.put("permWorkSpaceSetting", userLevelVo.getPermWorkSpaceSetting());
                result.put("permProjectSetting", userLevelVo.getPermProjectSetting());
                result.put("permIssueSetting", userLevelVo.getPermIssueSetting());
                result.put("permApi", userLevelVo.getPermApi());
                result.put("permNotice", userLevelVo.getPermNotice());
                result.put("permFAQ", userLevelVo.getPermFAQ());
                result.put("permQnA", userLevelVo.getPermQnA());
                result.put("permGuide", userLevelVo.getPermGuide());
                results.add(result);
            } catch (Exception e) {
                log.error("엑셀 다운로드 오류 발생");
            }
        }
        return results;
    }
    // 사용자 등급 상태를 변경한다.
    @Override
    public void modifyLevelPermission(UserLevelForm userLevelForm) {
src/main/java/kr/wisestone/owl/vo/UserLevelVo.java
@@ -165,6 +165,14 @@
        this.permAllIssueAndProjectSetting = permAllIssueAndProjectSetting;
    }
    public Boolean getPermPartnerSetting() {
        return permPartnerSetting;
    }
    public void setPermPartnerSetting(Boolean permPartnerSetting) {
        this.permPartnerSetting = permPartnerSetting;
    }
    public void toPermissionValues() {
        this.permAllIssueAndProjectSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL);
        this.permPartnerSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PARTNER);
src/main/resources/mybatis/query-template/project-template.xml
@@ -82,7 +82,7 @@
            AND p.name like CONCAT('%',#{name},'%')
        </if>
        <choose>
            <when test="myDepartmentIds.size != 0">
            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
                AND prd.department_id IN
                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
@@ -187,7 +187,7 @@
        </if>
        <choose>
            <when test="myDepartmentIds.size != 0">
            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
                AND prd.department_id IN
                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}