package cn.com.lzt.common.util; import cn.com.lzt.arrangeduty.dto.ProjectDepartDto; import cn.com.lzt.duties.entity.DutiesEntity; import cn.com.lzt.personnelbasearchivesmanage.entity.PersonnelBaseArchivesManageEntity; import cn.com.lzt.useractiviti.data.dao.UseractivitiDataDao; import org.apache.commons.lang.StringUtils; import org.jeecgframework.core.constant.Globals; import org.jeecgframework.core.util.ApplicationContextUtil; import org.jeecgframework.web.system.pojo.base.TSDepart; import org.jeecgframework.web.system.pojo.base.TSUserOrg; import org.jeecgframework.web.system.service.SystemService; import java.util.List; public class UserUtil { /** * 判断是否为项目人员,判断依据:所属部门为【直属项目】或【区域项目】 * */ public static boolean isProjectUser(String userid) { boolean isProjectuser = false; SystemService service = ApplicationContextUtil.getContext().getBean(SystemService.class); List userorgList = service.findHql("from TSUserOrg where tsUser.id=? and ifpluralism=? ", userid, Globals.PLURALISM_NO.toString()); if(userorgList.size() > 0) { TSDepart depart = userorgList.get(0).getTsDepart(); if(depart.getOrgCode().length() > 6) { //查找上一级组织机构 depart = depart.getTSPDepart(); } //二级组织机构为部门或项目管理处,判断组织机构类型 if(depart.getOrgType().equals(Globals.org_type_3) || depart.getOrgType().equals(Globals.org_type_5)) { isProjectuser = true; } } return isProjectuser; } /** * 获得用于查询的部门id * @param userid * @return */ @Deprecated public static String getQueryDepIdByUserId(String userid){ return DepartUtil.getQueryDepIdByUserId(userid); } @Deprecated public static String getQueryDepIdByDepId(String depid){ return DepartUtil.getQueryDepIdByDepId(depid); } /** * 返回用户 岗位类型 * @param userId * @return */ public static int getDutyTypeByUserId(String userId){ SystemService service = ApplicationContextUtil.getContext().getBean(SystemService.class); PersonnelBaseArchivesManageEntity up = service.findUniqueByProperty(PersonnelBaseArchivesManageEntity.class,"userid" , userId); return getDutyType(up.getBelongDutiesid()); } /** * 返回岗位类型 * @param duties * @return 1 一线员工 * 2部门专员 * 3项目主管及以上 * 4部门经理和项目经理 * 5公司顾问 * 6公司副总经理 * -1 duitesCode 为空 * -2 没找着对应类型 */ public static int getDutyType(DutiesEntity duties){ if(duties==null) return 0; String code = duties.getDutiesCode(); if(StringUtils.isBlank(code)) return -1; if(code.startsWith("A03") || code.startsWith("A11") ) return 1; if(code.startsWith("A05")) return 2; if(code.startsWith("A14A04") ||code.startsWith("A14A03") ||code.startsWith("A14A01") ||code.startsWith("A04") ) return 3; if(code.equals("A06") ||code.equals("A07") ||code.equals("A08") ||code.equals("A09") ||code.equals("A14A06") ||code.equals("A14A05") ||code.equals("A14A02") ) return 4; if(code.equals("A21")) return 5; if(code.equals("A24")) return 6; return -2; } public static int getDutyType(String dutiesId){ SystemService service = ApplicationContextUtil.getContext().getBean(SystemService.class); DutiesEntity duties = service.getEntity(DutiesEntity.class, dutiesId); return getDutyType(duties); } /** * 是否属于人事部门 * @param userId * @return */ public static boolean isHr(String userId){ UseractivitiDataDao useractivitiDataDao = ApplicationContextUtil.getContext().getBean(UseractivitiDataDao.class); ProjectDepartDto dto = new ProjectDepartDto(); dto.setOrgCode("A06A01"); List list = useractivitiDataDao.getUserAllDep(userId,dto); if(list.size()>0){ return true; } return false; } /** * 判断是为一线员工 * 与上面getDutyType不同,此判断是依据duty的managetype来处理 * */ public static boolean isYXYGByUserid(String userId) { boolean isYXYG = false; SystemService service = ApplicationContextUtil.getContext().getBean(SystemService.class); PersonnelBaseArchivesManageEntity up = service.findUniqueByProperty(PersonnelBaseArchivesManageEntity.class,"userid" , userId); DutiesEntity duties = service.getEntity(DutiesEntity.class, up.getBelongDutiesid()); if(duties.getManageType() != null && duties.getManageType().equals("2")) isYXYG = true; return isYXYG; } }