febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/IRemoteDeptService.java
@@ -30,4 +30,7 @@ @GetMapping("dept") List<Dept> selectAllDept(Dept dept); @GetMapping("dept/userRightDepts") String userRightDepts(); } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/feign/fallback/RemoteDeptServiceFallback.java
@@ -1,8 +1,10 @@ package cc.mrbird.febs.server.hr.feign.fallback; import java.util.List; import cc.mrbird.febs.common.core.annotation.Fallback; import cc.mrbird.febs.common.core.entity.system.Dept; import cc.mrbird.febs.server.hr.feign.IRemoteDeptService; import cc.mrbird.febs.server.hr.feign.IRemoteUserService; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; @@ -21,9 +23,19 @@ public class RemoteDeptServiceFallback implements FallbackFactory<IRemoteDeptService> { @Override public IRemoteDeptService create(Throwable throwable) { return (dept) -> { return new IRemoteDeptService() { @Override public String userRightDepts() { log.error("获取用户权限信息失败", throwable); return null; } @Override public List<Dept> selectAllDept(Dept dept) { log.error("获取部门信息失败", throwable); return null; } }; } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpBaseInfoMapper.java
@@ -1,12 +1,12 @@ package cc.mrbird.febs.server.hr.mapper; import cc.mrbird.febs.common.core.entity.system.SysConfig; import cc.mrbird.febs.server.hr.entity.EmpBaseInfo; import cc.mrbird.febs.server.hr.entity.EmpJobChange; import cc.mrbird.febs.server.hr.entity.*; import com.baomidou.mybatisplus.annotation.SqlParser; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; @@ -25,6 +25,9 @@ * @since JDK1.8 */ public interface EmpBaseInfoMapper extends BaseMapper<EmpBaseInfo> { IPage<EmpBaseInfo> selectPageVo(Page<?> page, @Param(Constants.WRAPPER) Wrapper wrapper); /** * 根据Id批量逻辑删除记录 * <p> febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpBaseInfoMapper.xml
@@ -5,6 +5,12 @@ <select id="sysConfig" resultType="cc.mrbird.febs.common.core.entity.system.SysConfig"> select * from sys_config where delFlag='0' and config_key in ("manOld","womanOld") ORDER BY config_key asc </select> <select id="selectPageVo" resultType="cc.mrbird.febs.server.hr.entity.EmpBaseInfo"> select a.* from t_emp_baseInfo a inner join t_dept c on a.deptId = c.DEPT_ID ${ew.customSqlSegment} </select> <select id="countZcygBaseInfoList" resultType="java.util.Map"> SELECT febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpWorkExperienceMapper.java
@@ -1,11 +1,18 @@ package cc.mrbird.febs.server.hr.mapper; import cc.mrbird.febs.server.hr.entity.EmpWorkExperience; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; import java.util.List; import java.util.Map; /** * name:EmpWorkexperience @@ -50,4 +57,6 @@ " </foreach>\n" + "</script>") int momentToNormal(@Param("list") List<String> list, @Param("operatorId") String operatorId); IPage<EmpWorkExperience> selectPageVo(Page<?> page, @Param(Constants.WRAPPER) Wrapper wrapper); } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpWorkExperienceMapper.xml
@@ -2,4 +2,11 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cc.mrbird.febs.server.hr.mapper.EmpWorkExperienceMapper"> <select id="selectPageVo" resultType="cc.mrbird.febs.server.hr.entity.EmpWorkExperience"> select a.* from t_emp_workExperience a inner join t_emp_baseinfo b on a.empId = b.empId inner join t_dept c on b.deptId = c.DEPT_ID ${ew.customSqlSegment} </select> </mapper> febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -70,6 +70,7 @@ private final IEmpJobChangeService jobChangeService; private final IEmpContractInfoService empContractInfoService; private final FebsServerHrProperties properties; private final IRemoteDeptService remoteDeptService; private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser()) .map(u -> u.getUserId().toString()) .orElse("1"); @@ -82,7 +83,7 @@ @Override public IPage<EmpBaseInfo> findZsEmpBaseInfos(QueryRequest request, EmpBaseInfo empBaseInfo) { Page<EmpBaseInfo> page = new Page<>(request.getPageNum(), request.getPageSize()); IPage<EmpBaseInfo> iPage = this.page(page, createQueryWrapper(empBaseInfo)); IPage<EmpBaseInfo> iPage = empBaseInfoMapper.selectPageVo(page, createQueryWrapper(empBaseInfo)); //设置部门 List<EmpBaseInfo> list = setDeptName(iPage.getRecords()); List<DicItem> dicItems = CastUtil.castList(redisService.get("dicItems"), DicItem.class); @@ -823,77 +824,77 @@ return hasCondition == 1; } private LambdaQueryWrapper<EmpBaseInfo> createQueryWrapper(EmpBaseInfo empBaseInfo) { LambdaQueryWrapper<EmpBaseInfo> queryWrapper = new LambdaQueryWrapper<>(); private QueryWrapper<EmpBaseInfo> createQueryWrapper(EmpBaseInfo empBaseInfo) { QueryWrapper<EmpBaseInfo> queryWrapper = new QueryWrapper<>(); //记录的状态,0-正常 1-删除 2-暂存 if (StringUtils.isNotBlank(empBaseInfo.getDelFlag().toString())) { queryWrapper.eq(EmpBaseInfo::getDelFlag, empBaseInfo.getDelFlag()); queryWrapper.eq("a.DelFlag", empBaseInfo.getDelFlag()); } else { queryWrapper.eq(EmpBaseInfo::getDelFlag, 0); queryWrapper.eq("a.DelFlag", 0); } //人员的状态,0-在职 1-离职 2-退休 if (StringUtils.isNotBlank(empBaseInfo.getEmpStatus())) { queryWrapper.in(EmpBaseInfo::getEmpStatus, empBaseInfo.getEmpStatus().split(",")); queryWrapper.in("a.EmpStatus", empBaseInfo.getEmpStatus().split(",")); } else { queryWrapper.in(EmpBaseInfo::getEmpStatus, 0); queryWrapper.in("a.EmpStatus", 0); } // 下面的条件就是人员的属性条件,条件之间是或的关系 if (this.checkQueryCondition(empBaseInfo)) { queryWrapper.and(p -> { if (StringUtils.isNotBlank(empBaseInfo.getEmpNumb())) { p.like(EmpBaseInfo::getEmpNumb, empBaseInfo.getEmpNumb()); p.like("a.EmpNumb", empBaseInfo.getEmpNumb()); } if (StringUtils.isNotBlank(empBaseInfo.getEmpName())) { p.or().like(EmpBaseInfo::getEmpName, empBaseInfo.getEmpName()); p.or().like("a.EmpName", empBaseInfo.getEmpName()); } if (StringUtils.isNotBlank(empBaseInfo.getDeptName())) { p.or().like(EmpBaseInfo::getDeptName, empBaseInfo.getDeptName()); p.or().like("a.DeptName", empBaseInfo.getDeptName()); } if (StringUtils.isNotBlank(empBaseInfo.getCertificateNumb())) { p.or().like(EmpBaseInfo::getCertificateNumb, empBaseInfo.getCertificateNumb()); p.or().like("a.CertificateNumb", empBaseInfo.getCertificateNumb()); } if (StringUtils.isNotBlank(empBaseInfo.getEntryDateStr())) { p.or().between(EmpBaseInfo::getEntryDate, empBaseInfo.getEntryDateStr().split(",")[0], empBaseInfo.getEntryDateStr().split(",")[1]); p.or().between("a.EntryDate", empBaseInfo.getEntryDateStr().split(",")[0], empBaseInfo.getEntryDateStr().split(",")[1]); } if (StringUtils.isNotBlank(empBaseInfo.getDimissionDateStr())) { p.or().between(EmpBaseInfo::getDimissionDate, empBaseInfo.getDimissionDateStr().split(",")[0], empBaseInfo.getDimissionDateStr().split(",")[1]); p.or().between("a.DimissionDate", empBaseInfo.getDimissionDateStr().split(",")[0], empBaseInfo.getDimissionDateStr().split(",")[1]); } if (StringUtils.isNotBlank(empBaseInfo.getSex())) { p.or().in(EmpBaseInfo::getSex, empBaseInfo.getSex().split(",")); p.or().in("a.Sex", empBaseInfo.getSex().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getEducation())) { p.or().in(EmpBaseInfo::getEducation, empBaseInfo.getEducation().split(",")); p.or().in("a.Education", empBaseInfo.getEducation().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getPolitics())) { p.or().in(EmpBaseInfo::getPolitics, empBaseInfo.getPolitics().split(",")); p.or().in("a.Politics", empBaseInfo.getPolitics().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getAgeStr())) { String[] ages = empBaseInfo.getAgeStr().split(","); Consumer<LambdaQueryWrapper<EmpBaseInfo>> consumer = new Consumer<LambdaQueryWrapper<EmpBaseInfo>>() { @Override public void accept(LambdaQueryWrapper<EmpBaseInfo> wrapper) { Consumer<QueryWrapper<EmpBaseInfo>> consumer = new Consumer<QueryWrapper<EmpBaseInfo>>() { public void accept(QueryWrapper<EmpBaseInfo> wrapper) { for (int i = 0; i < ages.length; i++) { String ageBtn = ages[i]; wrapper.or().between(EmpBaseInfo::getAge, ageBtn.split("-")[0], ageBtn.split("-")[1]); wrapper.or().between("a.Age", ageBtn.split("-")[0], ageBtn.split("-")[1]); } } }; p.or().and(consumer); } if (StringUtils.isNotBlank(empBaseInfo.getArchivesStatus())) { p.or().in(EmpBaseInfo::getArchivesStatus, empBaseInfo.getArchivesStatus().split(",")); p.or().in("a.ArchivesStatus", empBaseInfo.getArchivesStatus().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getInsuranceType())) { p.or().in(EmpBaseInfo::getInsuranceType, empBaseInfo.getInsuranceType().split(",")); p.or().in("a.InsuranceType", empBaseInfo.getInsuranceType().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getHandbookStatus())) { p.or().in(EmpBaseInfo::getHandbookStatus, empBaseInfo.getHandbookStatus().split(",")); p.or().in("a.HandbookStatus", empBaseInfo.getHandbookStatus().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getEmpCardStatus())) { p.or().in(EmpBaseInfo::getEmpCardStatus, empBaseInfo.getEmpCardStatus().split(",")); p.or().in("a.EmpCardStatus", empBaseInfo.getEmpCardStatus().split(",")); } }); } queryWrapper.in("c.deptId", remoteDeptService.userRightDepts()); return queryWrapper; } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpWorkExperienceServiceImpl.java
@@ -5,6 +5,7 @@ import cc.mrbird.febs.common.core.utils.SequenceUtil; import cc.mrbird.febs.server.hr.entity.EmpBaseInfo; import cc.mrbird.febs.server.hr.entity.EmpWorkExperience; import cc.mrbird.febs.server.hr.feign.IRemoteDeptService; import cc.mrbird.febs.server.hr.mapper.EmpWorkExperienceMapper; import cc.mrbird.febs.server.hr.service.IEmpWorkExperienceService; import cn.hutool.core.date.DateUtil; @@ -15,6 +16,7 @@ import org.springframework.transaction.annotation.Propagation; import lombok.RequiredArgsConstructor; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -37,31 +39,34 @@ class EmpWorkExperienceServiceImpl extends ServiceImpl<EmpWorkExperienceMapper, EmpWorkExperience> implements IEmpWorkExperienceService { private final EmpWorkExperienceMapper empWorkexperienceMapper; private final IRemoteDeptService remoteDeptService; private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser()) .map(u -> u.getUserId().toString()) .orElse("1"); @Override public IPage<EmpWorkExperience> findEmpWorkExperiences(QueryRequest request, EmpWorkExperience empWorkexperience) { LambdaQueryWrapper<EmpWorkExperience> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(EmpWorkExperience::getDelFlag,empWorkexperience.getDelFlag()); QueryWrapper<EmpWorkExperience> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("a.delFlag",empWorkexperience.getDelFlag()); if (StringUtils.isNotBlank(empWorkexperience.getEmpNumb())) { queryWrapper.like(EmpWorkExperience::getEmpNumb, empWorkexperience.getEmpNumb()); queryWrapper.like("a.empNumb", empWorkexperience.getEmpNumb()); } if (StringUtils.isNotBlank(empWorkexperience.getEmpName())) { queryWrapper.like(EmpWorkExperience::getEmpName, empWorkexperience.getEmpName()); queryWrapper.like("a.EmpName", empWorkexperience.getEmpName()); } if (StringUtils.isNotBlank(empWorkexperience.getCertificateNumb())) { queryWrapper.like(EmpWorkExperience::getCertificateNumb, empWorkexperience.getCertificateNumb()); queryWrapper.like("a.certificateNumb", empWorkexperience.getCertificateNumb()); } if (StringUtils.isNotBlank(empWorkexperience.getCertificateNumb())) { queryWrapper.like(EmpWorkExperience::getCertificateNumb, empWorkexperience.getCertificateNumb()); queryWrapper.like("a.certificateNumb", empWorkexperience.getCertificateNumb()); } if (StringUtils.isNotBlank(empWorkexperience.getJobContent())) { queryWrapper.like(EmpWorkExperience::getJobContent, empWorkexperience.getJobContent()); queryWrapper.like("a.jobContent", empWorkexperience.getJobContent()); } Page<EmpWorkExperience> page = new Page<>(request.getPageNum(), request.getPageSize()); return this.page(page, queryWrapper); queryWrapper.in("c.deptId", remoteDeptService.userRightDepts()); return this.empWorkexperienceMapper.selectPageVo(page, queryWrapper); } @Override febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/DeptController.java
@@ -4,8 +4,11 @@ import cc.mrbird.febs.common.core.entity.QueryRequest; import cc.mrbird.febs.common.core.entity.constant.StringConstant; import cc.mrbird.febs.common.core.entity.system.Dept; import cc.mrbird.febs.common.core.utils.FebsUtil; import cc.mrbird.febs.server.system.annotation.ControllerEndpoint; import cc.mrbird.febs.server.system.service.IDeptService; import cc.mrbird.febs.server.system.service.IUserDataPermissionService; import com.wuwenze.poi.ExcelKit; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -18,6 +21,7 @@ import javax.validation.constraints.NotBlank; import java.util.List; import java.util.Map; import java.util.Optional; /** * @author MrBird @@ -30,6 +34,10 @@ public class DeptController { private final IDeptService deptService; private final IUserDataPermissionService userDataPermissionService; private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser()) .map(u -> u.getUserId().toString()) .orElse("1"); @GetMapping("all") public FebsResponse getAllEmpBaseInfos(Dept dept) { @@ -75,4 +83,12 @@ public void setDeptToRedis(){ deptService.setDeptRedis(); } @GetMapping("userRightDepts") public String userRightDepts(){ log.info("当前用户Id"+operatorId); String userRightDepts=userDataPermissionService.findByUserId(operatorId); log.info("当前用户权限"+userRightDepts); return userRightDepts; } }