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

关闭档案增加了关闭档案时的后续操作并实现了相关逻辑
6个文件已修改
69 ■■■■ 已修改文件
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 32 ●●●● 补丁 | 查看 | 原始文档 | 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())
@@ -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());
        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(empBaseInfo.getCertificateNumb());
                    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,13 +762,13 @@
    }
    /**
     *
     * 检查是否是带条件查询
     *
     * <p>
     * date 2021-02-26 13:49
     * @author: luoyibo
     *
     * @param empBaseInfo 人员参数
     * @return boolean
     * @author: luoyibo
     */
    private  boolean checkQueryCondition(EmpBaseInfo empBaseInfo){
        int hasCondition = 0;
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")