From d64ce641aa6985cf531abe819ea7991f4fd2ec94 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 화, 14 12월 2021 20:20:13 +0900 Subject: [PATCH] 사용자등급, 프로젝트 엑셀 다운로드 오류 해결 --- src/main/resources/mybatis/query-template/project-template.xml | 4 +- src/main/java/kr/wisestone/owl/vo/UserLevelVo.java | 8 ++++ src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java | 21 +++++++++- src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java | 38 ++++++++++++++++++- 4 files changed, 64 insertions(+), 7 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java index 69f9136..54a9c67 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java +++ b/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); diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java index eae1020..18831c2 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java +++ b/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) { diff --git a/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java b/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java index a1d1479..0884354 100644 --- a/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java +++ b/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); diff --git a/src/main/resources/mybatis/query-template/project-template.xml b/src/main/resources/mybatis/query-template/project-template.xml index f5054ef..388e063 100644 --- a/src/main/resources/mybatis/query-template/project-template.xml +++ b/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} -- Gitblit v1.8.0