사용자등급, 프로젝트 엑셀 다운로드 오류 해결
| | |
| | | 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(); |
| | |
| | | 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 데이터를 엑셀에서 표시할 수 있는 데이터로 변경한다. |
| | |
| | | } |
| | | |
| | | 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); |
| | |
| | | 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; |
| | |
| | | |
| | | @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; |
| | |
| | | |
| | | // 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)); |
| | |
| | | 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) { |
| | |
| | | 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); |
| | |
| | | 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} |
| | |
| | | </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} |