From 0fd37c566b53d2c82515ac94bcc60a710f82b4c1 Mon Sep 17 00:00:00 2001 From: chenxu1234 <1401584727@qq.com> Date: Fri, 21 Feb 2025 15:11:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=88=97=E5=AE=9A=E5=88=B6?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=8C=87=E5=AE=9A=E8=A7=92=E8=89=B2=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/hrm/cmd/search/GetRightMenuCmd.java | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 src/com/api/hrm/cmd/search/GetRightMenuCmd.java diff --git a/src/com/api/hrm/cmd/search/GetRightMenuCmd.java b/src/com/api/hrm/cmd/search/GetRightMenuCmd.java new file mode 100644 index 0000000..3954769 --- /dev/null +++ b/src/com/api/hrm/cmd/search/GetRightMenuCmd.java @@ -0,0 +1,120 @@ +package com.api.hrm.cmd.search; + +import com.api.hrm.bean.RightMenu; +import com.api.hrm.bean.RightMenuType; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.service.HrmCommonService; +import com.engine.common.service.impl.HrmCommonServiceImpl; +import com.engine.core.interceptor.CommandContext; +import org.apache.commons.collections.CollectionUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import java.util.*; + +/** + * 获取右键菜单 + */ +public class GetRightMenuCmd extends AbstractCommonCommand> { + + public GetRightMenuCmd(Map params, User user) { + this.user = user; + this.params = params; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + Map resultMap = new HashMap(); + try { + List rightMenus = new ArrayList(); + int language = user.getLanguage(); + + rightMenus.add(new RightMenu(language, RightMenuType.BTN_SENDEMESSAGE, "sendEmessage", true)); + rightMenus.add(new RightMenu(language, RightMenuType.BTN_SEARCH, "doSearch")); + rightMenus.add(new RightMenu(language, RightMenuType.BTN_RESEARCH, "reSearch")); + //是否具有【人力资源邮件群发】权限 + if (HrmUserVarify.checkUserRight("HrmMailMerge:Merge", user) && false) { + rightMenus.add(new RightMenu(language, RightMenuType.BTN_SENDMAIL, "sendMail")); + } + //是否具有【人员信息导出】权限 + if (HrmUserVarify.checkUserRight("HrmResourceInfo:Import", user)) { + rightMenus.add(new RightMenu(language, RightMenuType.BTN_EXPORTEXCEL, "exportExcel", true)); + rightMenus.add(new RightMenu(language, RightMenuType.BTN_EXPORT_SETTING, "doExportSetting", false)); + rightMenus.add(new RightMenu(language, RightMenuType.BTN_EXPORT_LOG, "doLog", false)); + } + //默认排序设置 + rightMenus.add(new RightMenu(language, RightMenuType.BTN_SORTBYCOL, "doSortSetting", false)); + //二开是否具有【显示列定制】权限 + boolean hasAccess = false; + HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); + List roleIds = new ArrayList<>(Arrays.asList(hrmCommonService.getRoleIds(user.getUID()).split(","))); + List accessRoleIds = new ArrayList<>(); + accessRoleIds.add("31"); + roleIds.retainAll(accessRoleIds); + hasAccess = CollectionUtils.isNotEmpty(roleIds); + boolean back = false; + if(hasAccess){ + //指定角色可以设置 + back = true; + }else if (user.getUID() == 1){ + //系统管理员可以设置 + back = true; + } + if(back){ + rightMenus.add(new RightMenu(language, RightMenuType.BTN_COLUMN, "definedColumn")); + } + + resultMap.put("defaultShowLeft", true); + resultMap.put("status", "1"); + resultMap.put("rightMenus", rightMenus); + } catch (Exception e) { + writeLog(e); + resultMap.put("status", "-1"); + resultMap.put("message", ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10004501,weaver.general.ThreadVarLanguage.getLang())+""); + } + return resultMap; + } + + public List queryHrmRoleUserByRole(String roleid){ + BaseBean bb = new BaseBean(); + List userList = new ArrayList<>(); + try{ + RecordSet rs = new RecordSet(); + String jobtitleSql = " WHERE (a.jobtitle = b.resourceid AND b.resourcetype=5 AND (b.jobtitlelevel=1 OR (b.jobtitlelevel=2 AND ','||b.subdepid ||',' LIKE '%,'||a.subcompanyid1||',%') OR (b.jobtitlelevel=3 AND ','||b.subdepid||',' LIKE '%,' || a.departmentid ||',%')))"; + + String sql =" select distinct t.resourceid from ( \n" + + " select a.id as resourceid from HrmResource a, HrmRoleMembers b \n" + + " where (a.id=b.resourceid and b.resourcetype =1 ) and b.roleid = " + roleid + + " union all \n" + + " select a.id AS resourceid from HrmResourceManager a, HrmRoleMembers b \n" + + " where (a.id=b.resourceid and b.resourcetype in(7,8)) and b.roleid =" + roleid + + " union all \n" + + " select a.id as resourceid from HrmResource a, HrmRoleMembers b \n" + + " where (a.subcompanyid1 = b.resourceid and a.seclevel>=b.seclevelfrom and a.seclevel<=b.seclevelto and b.resourcetype=2) and b.roleid=" +roleid + + " union all \n" + + " select a.id as resourceid FROM HrmResource a, HrmRoleMembers b \n" + + " WHERE (a.departmentid = b.resourceid and a.seclevel>=b.seclevelfrom and a.seclevel<=b.seclevelto and b.resourcetype=3) and b.roleid =" + roleid + + " union all \n" + + " SELECT a.id as resourceid FROM HrmResource a, HrmRoleMembers b \n" + jobtitleSql + " and b.roleid = " + roleid + + " ) t " ; + + bb.writeLog("queryHrmRoleUserByRole:sql:"+sql); + rs.executeQuery(sql); + while (rs.next()){ + String resourceid = rs.getString("resourceid"); + userList.add(resourceid); + } + }catch (Exception e){ + bb.writeLog("queryHrmRoleUserByRole:e:"+e); + } + return userList; + } +}