| | |
| | | import com.vci.common.utility.ObjectUtility; |
| | | import com.vci.corba.common.PLException; |
| | | import com.vci.corba.common.data.UserEntityInfo; |
| | | import com.vci.corba.framework.data.DeptInfo; |
| | | import com.vci.corba.framework.data.RoleInfo; |
| | | import com.vci.corba.framework.data.UserInfo; |
| | | import com.vci.corba.framework.data.UserLogonInfo; |
| | | import com.vci.corba.framework.data.*; |
| | | import com.vci.corba.omd.data.BusinessObject; |
| | | import com.vci.corba.omd.etm.EnumItem; |
| | | import com.vci.corba.omd.etm.EnumType; |
| | |
| | | throw new VciBaseException("登录时,获取用户信息失败:"+e.getMessage()); |
| | | } |
| | | } |
| | | /** |
| | | * 导出用户列表三员账号除外 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public String expUser() throws PLException { |
| | | // 设置表单列名 |
| | | List<String> columns = new ArrayList<>(Arrays.asList("姓名, 账号, 状态, 密码策略, 锁定状态, 所属部门, 专业, 角色, 电子邮件, 描述, 部门领导, 密级".split(","))); |
| | | //设置必填列 |
| | | ColumnNameisRed.clear(); |
| | | ColumnNameisRed.add(0); |
| | | ColumnNameisRed.add(1); |
| | | ColumnNameisRed.add(2); |
| | | //写excel |
| | | String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + "userList.xls"; |
| | | try { |
| | | new File(excelPath).createNewFile(); |
| | | } catch (Throwable e) { |
| | | throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[]{excelPath}, e); |
| | | } |
| | | //设置列 |
| | | List<WriteExcelData> excelDataList = new ArrayList<>(); |
| | | for (int index = 0; index < columns.size(); index++) { |
| | | //判断是否为必填列,给必填列设置颜色 |
| | | if(ColumnNameisRed.contains(index)){ |
| | | WriteExcelData excelData = new WriteExcelData(0, index, columns.get(index)); |
| | | excelData.setFontColor(String.valueOf(HSSFColor.HSSFColorPredefined.RED.getIndex())); |
| | | excelDataList.add(excelData); |
| | | }else{ |
| | | excelDataList.add(new WriteExcelData(0,index, columns.get(index))); |
| | | } |
| | | } |
| | | UserInfo[] userInfos = platformClientUtil.getFrameworkService().fetchUserInfoWithOutSanYuan(); |
| | | //部门信息集合 |
| | | Hashtable<String, String> deptHashTable = new Hashtable<String, String>(); |
| | | for(int index = 1; index <= userInfos.length; index++){ |
| | | UserInfo userInfo = userInfos[index-1]; |
| | | excelDataList.add(new WriteExcelData(index,0, userInfo.trueName)); |
| | | excelDataList.add(new WriteExcelData(index,1, userInfo.userName)); |
| | | excelDataList.add(new WriteExcelData(index,2, userInfo.status==1 ? "停用":"启用")); |
| | | /**密码策略**/ |
| | | PasswordStrategyInfo pwsObj = platformClientUtil.getFrameworkService().fetchPasswordStrategyByUserId(userInfo.id); |
| | | excelDataList.add(new WriteExcelData(index,3, pwsObj.name)); |
| | | /**锁定状态**/ |
| | | UserLogonInfo lockObj = platformClientUtil.getFrameworkService().fetchUserLogonObj(userInfo.id); |
| | | if (pwsObj != null) |
| | | excelDataList.add(new WriteExcelData(index,4, (pwsObj.retryTime > 0 && lockObj.plWrongNum >= pwsObj.retryTime) ? "锁定" : "未锁定")); |
| | | else |
| | | excelDataList.add(new WriteExcelData(index,4, "未锁定")); |
| | | DeptInfo obj = null; |
| | | RoleInfo[] roles = null; |
| | | String deptName = ""; |
| | | obj = platformClientUtil.getFrameworkService().fetchDeptByUserId(userInfo.id); |
| | | if (obj != null){ |
| | | if(!deptHashTable.containsKey((obj.id))){ |
| | | deptName = getDeptObjectAllByDeptId(obj); |
| | | deptHashTable.put(obj.id, deptName); |
| | | }else{ |
| | | deptName = deptHashTable.get(obj.id); |
| | | } |
| | | } |
| | | roles = platformClientUtil.getFrameworkService().fetchRoleInfoByUserId(userInfo.id); |
| | | excelDataList.add(new WriteExcelData(index,5, deptName)); |
| | | excelDataList.add(new WriteExcelData(index,6, userInfo.specialties)); |
| | | String roleNames = ""; |
| | | if (roles.length != 0){ |
| | | for(int j = 0 ; j < roles.length ; j ++){ |
| | | if (j < roles.length -1){ |
| | | roleNames += roles[j].name + ","; |
| | | }else { |
| | | roleNames += roles[j].name; |
| | | } |
| | | } |
| | | } |
| | | excelDataList.add(new WriteExcelData(index,7, roleNames)); |
| | | excelDataList.add(new WriteExcelData(index,8, userInfo.email)); |
| | | excelDataList.add(new WriteExcelData(index,9, userInfo.desc)); |
| | | excelDataList.add(new WriteExcelData(index,10, userInfo.isDeptLeader.equals("1") ? "是" : "否")); |
| | | String secretGrade = String.valueOf(userInfo.secretGrade); |
| | | try { |
| | | EnumType item = platformClientUtil.getEnumService().getEnumTypeByName(ENUM_USERSECURITYENUM); |
| | | EnumItem[] children = item.items; |
| | | String securityShowName = ""; |
| | | for(EnumItem child: children){ |
| | | if(child.value.equals(secretGrade)){ |
| | | securityShowName = child.name; |
| | | break; |
| | | } |
| | | } |
| | | excelDataList.add(new WriteExcelData(index,11, securityShowName)); |
| | | } catch (PLException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | WriteExcelOption excelOption = new WriteExcelOption(excelDataList); |
| | | ExcelUtil.writeDataToFile(excelPath, excelOption); |
| | | return excelPath; |
| | | } |
| | | //根据子部门查询所属的父类部门,并拼接成字符串形式,返回 |
| | | public String getDeptObjectAllByDeptId(DeptInfo obj) throws PLException { |
| | | String fetchDepName = ""; |
| | | DeptInfo[] depObjectAll = platformClientUtil.getFrameworkService().fetchDepartmentInfosBySonId(obj.id); |
| | | for(int i=depObjectAll.length-1;i>=0; i--){ |
| | | fetchDepName += depObjectAll[i].name+"/"; |
| | | } |
| | | if(fetchDepName.length() != 0){ |
| | | fetchDepName = fetchDepName.substring(0, fetchDepName.length() - 1); |
| | | } |
| | | return fetchDepName; |
| | | } |
| | | |
| | | } |