yz
2021-03-17 353d3489eb7096c176ec5595f87efa2c9d82c52c
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -22,6 +22,7 @@
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.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -79,6 +80,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 +240,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 +272,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 +404,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 +419,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 +448,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 +526,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,13 +559,33 @@
                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);
@@ -544,7 +598,7 @@
        if (StrUtil.isBlank(empBaseInfo.getImagePath())) {
            return;
        }
        String path = properties.getEmpBaseInfoPath() + empBaseInfo.getEmpId() + ".png";
        String path = properties.getEmpBaseInfoPath() + empBaseInfo.getImagePath();
        try (InputStream inputStream = new FileInputStream(path); OutputStream out = response.getOutputStream()) {
            //byte数组用于存放图片字节数据
@@ -553,9 +607,19 @@
            inputStream.read(buff);
            inputStream.close();
            //设置发送到客户端的响应内容类型
            response.setContentType("image/png");
            String  contentType = empBaseInfo.getImagePath().substring(empBaseInfo.getImagePath().indexOf(".")+1);
            if (contentType.equals("tif")){
                //设置发送到客户端的响应内容类型
                response.setContentType("image/tiff");
            }else if (contentType.equals("bmp")){
                response.setContentType("application/x-bmp");
            }else if (contentType.equals("jpg")){
                response.setContentType("image/jpeg");
            }else if (contentType.equals("gif")){
                response.setContentType("image/gif");
            }else{
                response.setContentType("image/png");
            }
            out.write(buff);
        }
    }