yz
2021-04-06 8f27785e23d7551483041f6481b7054e4d91656f
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -23,8 +23,8 @@
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.IdcardUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -93,7 +93,7 @@
    @Override
    public IPage<EmpBaseInfo> findZsEmpBaseInfos(QueryRequest request, EmpBaseInfo empBaseInfo) {
        Page<EmpBaseInfo> page = new Page<>(request.getPageNum(), request.getPageSize());
        SortUtil.handlePageSort(request, page, "createTime", FebsConstant.ORDER_DESC, true);
        SortUtil.handlePageSort(request, page, "entryDate", FebsConstant.ORDER_ASC, true);
        IPage<EmpBaseInfo> iPage = empBaseInfoMapper.selectPageVo(page, createQueryWrapper(empBaseInfo));
        //设置部门
        // List<EmpBaseInfo> list = setDeptName(iPage.getRecords());
@@ -174,8 +174,11 @@
    public void createEmpBaseInfo(EmpBaseInfo empBaseInfo) {
        String operatorId = Optional.of(FebsUtil.getUserId()).orElse("1");
        EmpBaseInfo dbInfo = this.getEmpBaseInfo(empBaseInfo);
        if (dbInfo == null) {
            empBaseInfo.setEmpId(SequenceUtil.generateId(0L, ModuleCode.HR_EMPLOYEE));
        Long empId = SequenceUtil.generateId(0L, ModuleCode.HR_EMPLOYEE);
        boolean saveDimissionLog = true;
         if (dbInfo == null) {
            empBaseInfo.setEmpId(empId);
             // saveDimissionLog = true;
        } else {
            empBaseInfo.setEmpId(dbInfo.getEmpId());
        }
@@ -189,13 +192,24 @@
        empBaseInfo.setCreator(operatorId);
        empBaseInfo.setModifier(operatorId);
        this.saveOrUpdate(empBaseInfo);
        EmpDimissionLog dimissionLog = new EmpDimissionLog();
        dimissionLog.setCloseId(SequenceUtil.generateId(0L, ModuleCode.HR_EMPLOYEE));
        dimissionLog.setEmpId(empId);
        dimissionLog.setEntryDate(empBaseInfo.getEntryDate());
        dimissionLog.setDimissionType("20");
        dimissionLog.setRemark(empBaseInfo.getRemark());
        dimissionLog.setCreator(operatorId);
        dimissionLog.setModifier(operatorId);
        dimissionLogService.save(dimissionLog);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateEmpBaseInfo(EmpBaseInfo empBaseInfo) {
        String operatorId = Optional.of(FebsUtil.getUserId()).orElse("1");
        if (StrUtil.isNotBlank(empBaseInfo.getImagePath())) {
        if (StrUtil.isNotBlank(empBaseInfo.getImagePath())&&empBaseInfo.getImagePath().indexOf(",")>0) {
            String path = properties.getEmpBaseInfoPath() + empBaseInfo.getEmpId() + ".png";
            if (MyUtil.generateImage(empBaseInfo.getImagePath(), path)) {
                empBaseInfo.setImagePath(empBaseInfo.getEmpId() + ".png");
@@ -481,7 +495,22 @@
            empBaseInfo.setJobId(position.getPositionId());
            empBaseInfo.setJobName(list.get(3).toString());
            empBaseInfo.setEmpName(list.get(4).toString());
            empBaseInfo.setCertificateNumb(list.get(5).toString());
            try {
                if(StrUtil.isNotBlank(list.get(5).toString())){
                    empBaseInfo.setCertificateNumb(list.get(5).toString());
                    if (IdcardUtil.isValidCard(list.get(5).toString())){
                        empBaseInfo.setAge(IdcardUtil.getAgeByIdCard(list.get(5).toString()));
                        empBaseInfo.setBirthdate(IdcardUtil.getBirthDate(list.get(5).toString()));
                    }
                }
            }catch (Exception e){
                log.error("导入人员身份证异常:{}",e);
                returnList.add(StrUtil.format("导入员工基本信息异常: 出现位置第{}行, 原因:{}检查身份证是否正确", listObject.indexOf(list) + 1, list.get(5).toString()));
                continue;
            }
            empBaseInfo.setSex("男".equals(list.get(6).toString()) ? "1" : "2");
            //民族
@@ -516,7 +545,7 @@
            }
            if (StringUtils.isNotBlank(list.get(13).toString())) {
                empBaseInfo.setSeniority(Integer.valueOf(list.get(13).toString()));
                empBaseInfo.setSeniority(list.get(13).toString());
            }
            //籍贯
@@ -599,7 +628,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数组用于存放图片字节数据
@@ -608,9 +637,19 @@
            inputStream.read(buff);
            inputStream.close();
            //设置发送到客户端的响应内容类型
            response.setContentType("image/png");
            String  contentType = empBaseInfo.getImagePath().substring(empBaseInfo.getImagePath().lastIndexOf(".")+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);
        }
    }
@@ -1108,6 +1147,7 @@
    public EmpBaseInfo addInEmpBaseInfo(EmpBaseInfo empBaseInfo) {
        EmpBaseInfo dbEmpInfo = this.getEmpBaseInfo(empBaseInfo);
        if (dbEmpInfo == null) {
            empBaseInfo.setDelFlag(0);
            this.createEmpBaseInfo(empBaseInfo);
            return null;
        } else {