Compare commits

..

2 Commits

@ -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<Map<String, Object>> {
public GetRightMenuCmd(Map<String, Object> params, User user) {
this.user = user;
this.params = params;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map<String, Object> resultMap = new HashMap<String, Object>();
try {
List<RightMenu> rightMenus = new ArrayList<RightMenu>();
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<String> roleIds = new ArrayList<>(Arrays.asList(hrmCommonService.getRoleIds(user.getUID()).split(",")));
List<String> 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<String> queryHrmRoleUserByRole(String roleid){
BaseBean bb = new BaseBean();
List<String> 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;
}
}

@ -41,6 +41,7 @@ import com.engine.portal.biz.nonstandardfunction.SysModuleInfoBiz;
import com.engine.hrm.util.face.ValidateFieldManager;
import com.engine.hrm.util.face.bean.CheckItemBean;
import ln.LN;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.hrm.definedfield.HrmFieldComInfo;
import weaver.hrm.job.JobCallComInfo;
@ -3661,21 +3662,39 @@ public class HrmResourceBaseService extends BaseBean {
userManagerId = resourceComInfo.getManagerID(userid);
userDeptId = resourceComInfo.getDepartmentID(userid);
}
String deptLeaderId = getDepartmentLeader(userDeptId);
String allDeptLeaders = getDepartmentLeader(userDeptId);
bb.writeLog("userManagerId:"+userManagerId);
bb.writeLog("userDeptId:"+userDeptId);
bb.writeLog("deptLeaderId:"+deptLeaderId);
String leader_roleid = "30";
List<String> leaderList = queryHrmRoleUserByRole(leader_roleid);
String hr_roleid = "30";
List<String> hrList = queryHrmRoleUserByRole(hr_roleid);
if(leaderList.contains(currentUserId) || hrList.contains(currentUserId)){
bb.writeLog("allDeptLeaders:"+allDeptLeaders);
// String leader_roleid = "30";
// List<String> leaderList = queryHrmRoleUserByRole(leader_roleid);
// String hr_roleid = "29";
// List<String> hrList = queryHrmRoleUserByRole(hr_roleid);
//判断是否是指定角色29、30
boolean hasAccess = false;
HrmCommonService hrmCommonService = new HrmCommonServiceImpl();
List<String> roleIds = new ArrayList<>(Arrays.asList(hrmCommonService.getRoleIds(currentUserId).split(",")));
List<String> accessRoleIds = new ArrayList<>();
accessRoleIds.add("29");
accessRoleIds.add("30");
roleIds.retainAll(accessRoleIds);
hasAccess = CollectionUtils.isNotEmpty(roleIds);
new BaseBean().writeLog("currentUserId"+currentUserId+"roleIds"+roleIds+"hasAccess"+hasAccess);
if(hasAccess){
back = true;
}else if((","+deptLeaderId+",").contains(","+currentUserId+",")){
}else if((","+allDeptLeaders+",").contains(","+currentUserId+",")){
back = true;
}else if(String.valueOf(currentUserId).equals(userManagerId)){
back = true;
}else if(String.valueOf(currentUserId).equals(userid)){
//自己看自己可以看
back = true;
}else if(currentUserId == 1){
//系统管理员可以看所有
back = true;
}else{
back = false;
}
@ -3731,16 +3750,22 @@ public class HrmResourceBaseService extends BaseBean {
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
bb.writeLog("getDepartmentLeader:deptid:"+deptid);
String bmfzr = "";
String bmfzrs = "";
try {
String sql = " select bmfzr from hrmdepartmentdefined where deptid = ?";
String sql =" with tem_table(dep_id,departmentname,supdepid,curlevel) as (\n" +
" select id, departmentname,supdepid, 1 as level from HrmDepartment where id=" + deptid+
" union all\n" +
" select a.id,a.departmentname,a.supdepid,b.curlevel+1 from Hrmdepartment a inner join tem_table b on (a.id = b.supdepid)\n" +
" )\n" +
" select bmfzr from hrmdepartmentdefined where deptid in (select dep_id from tem_table)";
rs.executeQuery(sql,new Object[]{deptid});
if(rs.next()){
bmfzr = Util.null2String(rs.getString("bmfzr"));
while(rs.next()){
String bmfzr = Util.null2String(rs.getString("bmfzr"));
bmfzrs += StringUtils.isBlank(bmfzrs) ? bmfzr :","+bmfzr ;
}
}catch (Exception e){
bb.writeLog("e:"+e);
}
return bmfzr;
return bmfzrs;
}
}

Loading…
Cancel
Save