yz_08
2021-03-17 c540c6c77b9f11bcf8b1688bb08ebaed7df12006
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -22,6 +22,8 @@
import cc.mrbird.febs.server.hr.service.IEmpDimissionLogService;
import cc.mrbird.febs.server.hr.service.IEmpJobChangeService;
import cc.mrbird.febs.server.hr.util.PoiExportExcel;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -79,6 +81,9 @@
    private final IRemoteDicItemService remoteDicItemService;
    private final EmpOccupationalMapper empOccupationalMapper;
    private final IRemotePositionService remotePositionService;
    private final EmpDimissionLogMapper empDimissionLogMapper;
    private final EmpOpenArchivesMapper empOpenArchivesMapper;
    private final EmpResignMapper empResignMapper;
    @Override
    public IPage<EmpBaseInfo> findEmpBaseInfos(QueryRequest request, EmpBaseInfo empBaseInfo) {
@@ -236,6 +241,25 @@
        String[] str = ids.split(",");
        List<String> list = new ArrayList<>(Arrays.asList(str));
        empBaseInfoMapper.logicDeleteByIds(list, operatorId);
        //同步删除关联数据
        //不良记录
        empBadRecordMapper.logicDelByUserIds(list,operatorId);
        empAccidentCasesMapper.logicDelByUserIds(list,operatorId);
        empContractInfoMapper.logicDelByUserIds(list,operatorId);
        empDimissionAttendMapper.logicDelByUserIds(list,operatorId);
        empDimissionLogMapper.logicDelByUserIds(list,operatorId);
        empInsuranceMapper.logicDelByUserIds(list,operatorId);
        empJobChangeMapper.logicDelByUserIds(list,operatorId);
        empLaborTroubleMapper.logicDelByUserIds(list,operatorId);
        empLeaveInfoMapper.logicDelByUserIds(list,operatorId);
        empOccupationalMapper.logicDelByUserIds(list,operatorId);
        empOpenArchivesMapper.logicDelByUserIds(list,operatorId);
        empPhysicalExamMapper.logicDelByUserIds(list,operatorId);
        empRemarkInfoMapper.logicDelByUserIds(list,operatorId);
        empResignMapper.logicDelByUserIds(list,operatorId);
        empUnemploymentMapper.logicDelByUserIds(list,operatorId);
        empWorkExperienceMapper.logicDelByUserIds(list,operatorId);
    }
    /**
@@ -249,6 +273,9 @@
     */
    private List<EmpBaseInfo> setDeptName(List<EmpBaseInfo> empBaseInfoList) {
        List<Dept> depts = CastUtil.castList(redisService.get("depts"), Dept.class);
        if(null == depts){
            depts =remoteDeptService.setDeptRedis();
        }
        for (EmpBaseInfo empBaseInfo : empBaseInfoList) {
            // 设置部门
            empBaseInfo.setDeptName(depts.stream()
@@ -378,6 +405,7 @@
            saveChange.setOldDeptName(strDeptName[i]);
            saveChange.setOldJobName(strJobName[i]);
            saveChange.setNewDeptName(empJobChange.getNewDeptName());
            saveChange.setAllDeptName(empJobChange.getAllDeptName());
            saveChange.setNewJobName(empJobChange.getNewJobName());
            saveChange.setChangeType(empJobChange.getChangeType());
            saveChange.setChangeDate(empJobChange.getChangeDate());
@@ -392,6 +420,7 @@
        Map<String, Object> mapParams = new HashMap<>();
        mapParams.put("deptId", empJobChange.getDeptId());
        mapParams.put("deptName", empJobChange.getNewDeptName());
        mapParams.put("allDeptName", empJobChange.getAllDeptName());
        mapParams.put("jobId", empJobChange.getJobId());
        mapParams.put("jobName", empJobChange.getNewJobName());
        mapParams.put("operatorId", operatorId);
@@ -420,6 +449,12 @@
            empBaseInfo.setEmpNumb(list.get(1).toString());
            List<Dept> depts = CastUtil.castList(redisService.get("depts"), Dept.class);
            if(null == depts){
                depts =remoteDeptService.setDeptRedis();
            }
            if(null == depts){
               depts =remoteDeptService.setDeptRedis();
            }
            empBaseInfo.setDeptName(list.get(2).toString());
            Dept dept = depts.stream().filter(d -> d.getDeptName().equals(list.get(2).toString())).findFirst().orElse(null);
            if (null == dept) {
@@ -492,7 +527,7 @@
            empBaseInfo.setCensusAddress(list.get(15).toString());
            empBaseInfo.setCurrentAddress(list.get(16).toString());
            //员工类型
            dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"empType")&&StrUtil.equals(j.getDicItemName(),list.get(17).toString())).findFirst().orElse(null);
            if (null!=dicItem){
                empBaseInfo.setEmpType(dicItem.getDicItemCode());
@@ -525,14 +560,34 @@
                empBaseInfo.setEmpCardStatus(dicItem.getDicItemCode());
            }
            //相关证件
            List<DicItem> dicItemList = new ArrayList<>();
            String[] certificateList = list.get(30).toString().split(StringConstant.COMMA);
            if (null != certificateList){
                for (String s : certificateList) {
                    dicItem =   dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"certificateList")&&StrUtil.equals(j.getDicItemName(),s)).findFirst().orElse(null);
                    if (null!=dicItem){
                        dicItemList.add(dicItem);
                    }
                }
            }
            empBaseInfo.setCertificateList(list.get(30).toString());
            if(CollUtil.isNotEmpty(dicItemList)){
                empBaseInfo.setCertificateList(dicItemList.stream().map(i->i.getDicItemCode()).collect(Collectors.joining(StringConstant.COMMA)));
            }
            empBaseInfo.setDelFlag(2);
            //入职类型
            dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"lztype")&&StrUtil.equals(j.getDicItemName(),list.get(31).toString())).findFirst().orElse(null);
            if (null!=dicItem){
                empBaseInfo.setEntryType(dicItem.getDicItemCode());
            }
            //档案情况
            dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"archivesStatus")&&StrUtil.equals(j.getDicItemName(),list.get(32).toString())).findFirst().orElse(null);
            if (null!=dicItem){
                empBaseInfo.setArchivesStatus(dicItem.getDicItemCode());
            }
            empBaseInfo.setEmpStatus("0");
            this.save(empBaseInfo);
        }