luoyb
2021-03-03 0ba51b87c662a28778fbe25bf804aa9ea85c802e
feat(在职员工): 关闭档案

关闭档案增加了关闭档案时的后续操作并实现了相关逻辑
6个文件已修改
115 ■■■■ 已修改文件
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpDimissionLog.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpContractInfoMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpContractInfoService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpContractInfoServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/UserController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpDimissionLog.java
@@ -125,4 +125,10 @@
    
    @TableField(exist = false)
    private String dimissionDateStr= "";
    @TableField(exist = false)
    private String afterOperation= "";
    @TableField(exist = false)
    private String certificateNumb= "";
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpContractInfoMapper.java
@@ -60,4 +60,18 @@
            "        </foreach>\n" +
            "</script>")
    int momentToNormal(@Param("list") List<String> list,@Param("operatorId") String operatorId);
    @Update("<script> " +
            " UPDATE t_emp_contractinfo SET contractStatus='3',\n" +
            " empStatus='1',\n" +
            " modifyTime = NOW(),\n" +
            " modifier = #{operatorId}, \n" +
            " version = version+1 \n" +
            " WHERE contractStatus in ('1','2') " +
            " and  empId IN \n" +
            "        <foreach item=\"delId\" collection=\"list\" open=\"(\" close=\")\" separator=\",\">\n" +
            "            #{delId} \n" +
            "        </foreach>\n" +
            "</script>")
    int terminateContract(@Param("list") List<String> list,@Param("operatorId") String operatorId);
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpContractInfoService.java
@@ -79,4 +79,6 @@
    boolean momentToNormal(String ids);
    void importEmpContractInfo(List<List<Object>> listObject);
    void terminateContract(String empIds, String operatorId);
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -13,6 +13,7 @@
import cc.mrbird.febs.server.hr.entity.EmpJobChange;
import cc.mrbird.febs.server.hr.feign.IRemoteUserService;
import cc.mrbird.febs.server.hr.properties.FebsServerHrProperties;
import cc.mrbird.febs.server.hr.service.IEmpContractInfoService;
import cc.mrbird.febs.server.hr.service.IEmpDimissionLogService;
import cc.mrbird.febs.server.hr.service.IEmpJobChangeService;
import cn.hutool.core.date.DateUnit;
@@ -66,6 +67,7 @@
    private final EmpBaseInfoMapper empBaseInfoMapper;
    private final IEmpDimissionLogService dimissionLogService;
    private final IEmpJobChangeService jobChangeService;
    private final IEmpContractInfoService empContractInfoService;
    private final FebsServerHrProperties properties;
    private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser())
            .map(u -> u.getUserId().toString())
@@ -232,8 +234,8 @@
    @Override
    public boolean verifyEmpNumb(EmpBaseInfo empBaseInfo) {
        QueryWrapper<EmpBaseInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(EmpBaseInfo::getEmpNumb, empBaseInfo.getEmpNumb()).ne(EmpBaseInfo::getDelFlag,1);
        if (this.count(queryWrapper)<=0) {
        queryWrapper.lambda().eq(EmpBaseInfo::getEmpNumb, empBaseInfo.getEmpNumb()).ne(EmpBaseInfo::getDelFlag, 1);
        if (this.count(queryWrapper) <= 0) {
            return false;
        }
        return true;
@@ -269,6 +271,7 @@
        String[] str = empDimissionLog.getEmpIds().split(",");
        List<String> list = new ArrayList<>(Arrays.asList(str));
        String[] strDate = empDimissionLog.getEntryDates().split(",");
        EmpDimissionLog dimissionLog = null;
        for (int i = 0, k = str.length; i < k; i++) {
            dimissionLog = new EmpDimissionLog();
@@ -284,9 +287,28 @@
            dimissionLog.setModifier(operatorId);
            dimissionLogService.save(dimissionLog);
        }
        EmpBaseInfo empBaseInfo = this.getById(dimissionLog.getEmpId());
        //禁用账户
        iRemoteUserService.updateStatus(empBaseInfo.getCertificateNumb());
        if (StrUtil.isNotBlank(empDimissionLog.getAfterOperation())) {
            String[] strAfterOperation = empDimissionLog.getAfterOperation().split(",");
            int flag = 0;
            for (String s : strAfterOperation) {
                flag = flag + Integer.parseInt(s);
            }
            switch (flag) {
                case 1:
                    //解除合同
                    empContractInfoService.terminateContract(empDimissionLog.getEmpIds(), operatorId);
                    break;
                case 2:
                    //禁用账户
                    iRemoteUserService.updateStatus(empDimissionLog.getCertificateNumb());
                    break;
                case 3:
                    empContractInfoService.terminateContract(empDimissionLog.getEmpIds(), operatorId);
                    iRemoteUserService.updateStatus(empDimissionLog.getCertificateNumb());
                    break;
            }
        }
        return empBaseInfoMapper.closeEmpArchives(list, empDimissionLog.getDimissionType(), empDimissionLog.getDimissionDate(), empDimissionLog.getRemark(), operatorId) > 0;
    }
@@ -740,71 +762,71 @@
    }
    /**
     *
     * 检查是否是带条件查询
     *
     * <p>
     * date 2021-02-26 13:49
     * @author: luoyibo
     *
     * @param empBaseInfo 人员参数
     * @return boolean
     * @author: luoyibo
     */
    private  boolean checkQueryCondition(EmpBaseInfo empBaseInfo){
    private boolean checkQueryCondition(EmpBaseInfo empBaseInfo) {
        int hasCondition = 0;
        if (StringUtils.isNotBlank(empBaseInfo.getEmpNumb())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getEmpName())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getDeptName())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getCertificateNumb())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getEntryDateStr())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getDimissionDateStr())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getSex())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getEducation())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getPolitics())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getAgeStr())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getArchivesStatus())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        if (StringUtils.isNotBlank(empBaseInfo.getInsuranceType())) {
            hasCondition = hasCondition|1;
            hasCondition = hasCondition | 1;
        }
        return hasCondition==1;
        return hasCondition == 1;
    }
    private LambdaQueryWrapper<EmpBaseInfo> createQueryWrapper(EmpBaseInfo empBaseInfo){
    private LambdaQueryWrapper<EmpBaseInfo> createQueryWrapper(EmpBaseInfo empBaseInfo) {
        LambdaQueryWrapper<EmpBaseInfo> queryWrapper = new LambdaQueryWrapper<>();
        //记录的状态,0-正常 1-删除 2-暂存
        if(StringUtils.isNotBlank(empBaseInfo.getDelFlag().toString())) {
        if (StringUtils.isNotBlank(empBaseInfo.getDelFlag().toString())) {
            queryWrapper.eq(EmpBaseInfo::getDelFlag, empBaseInfo.getDelFlag());
        } else{
        } else {
            queryWrapper.eq(EmpBaseInfo::getDelFlag, 0);
        }
        //人员的状态,0-在职 1-离职 2-退休
        if (StringUtils.isNotBlank(empBaseInfo.getEmpStatus())) {
            queryWrapper.in(EmpBaseInfo::getEmpStatus, empBaseInfo.getEmpStatus().split(","));
        } else{
        } else {
            queryWrapper.in(EmpBaseInfo::getEmpStatus, 0);
        }
        // 下面的条件就是人员的属性条件,条件之间是或的关系
        if(this.checkQueryCondition(empBaseInfo)){
        if (this.checkQueryCondition(empBaseInfo)) {
            queryWrapper.and(p -> {
                if (StringUtils.isNotBlank(empBaseInfo.getEmpNumb())) {
                    p.like(EmpBaseInfo::getEmpNumb, empBaseInfo.getEmpNumb());
@@ -866,7 +888,7 @@
    @Override
    public EmpBaseInfo addInEmpBaseInfo(EmpBaseInfo empBaseInfo) {
        EmpBaseInfo dbEmpInfo = this.getEmpBaseInfo(empBaseInfo);
        if(dbEmpInfo==null){
        if (dbEmpInfo == null) {
            this.createEmpBaseInfo(empBaseInfo);
            return null;
        } else {
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpContractInfoServiceImpl.java
@@ -11,7 +11,6 @@
import cc.mrbird.febs.common.core.entity.system.DicItem;
import cc.mrbird.febs.common.core.utils.CastUtil;
import cc.mrbird.febs.common.redis.service.RedisService;
import cc.mrbird.febs.server.hr.entity.EmpPhysicalExam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -26,7 +25,6 @@
import cc.mrbird.febs.common.core.entity.QueryRequest;
import cc.mrbird.febs.common.core.utils.FebsUtil;
import cc.mrbird.febs.common.core.utils.SequenceUtil;
import cc.mrbird.febs.server.hr.entity.EmpBaseInfo;
import cc.mrbird.febs.server.hr.entity.EmpContractInfo;
import cc.mrbird.febs.server.hr.mapper.EmpContractInfoMapper;
import cc.mrbird.febs.server.hr.service.IEmpContractInfoService;
@@ -190,4 +188,12 @@
            this.save(contractInfo);
        }
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void terminateContract(String empIds, String operatorId) {
        String[] str = empIds.split(",");
        List<String> list = new ArrayList<>(Arrays.asList(str));
        empContractinfoMapper.terminateContract(list, operatorId);
    }
}
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/UserController.java
@@ -175,7 +175,10 @@
    @PostMapping("updateStatus")
    public void updateStatus(@NotBlank(message = "{required}") String certificateNumb) {
        this.userService.updateUserByCertificateNumb(certificateNumb);
        String[] strNumbers = certificateNumb.split(",");
        for (int i = 0,k=strNumbers.length; i < k; i++) {
            this.userService.updateUserByCertificateNumb(strNumbers[i]);
        }
    }
    private static final String XLSX = ".xlsx";
    @PostMapping("import")