孔祥富
2021-04-01 63c7e9d7051ed6742eb7334346a53376b0247c29
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -24,6 +24,7 @@
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.IdcardUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -92,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());
@@ -173,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());
        }
@@ -188,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");
@@ -480,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");
            //民族
@@ -607,7 +637,7 @@
            inputStream.read(buff);
            inputStream.close();
            String  contentType = empBaseInfo.getImagePath().substring(empBaseInfo.getImagePath().indexOf(".")+1);
            String  contentType = empBaseInfo.getImagePath().substring(empBaseInfo.getImagePath().lastIndexOf(".")+1);
            if (contentType.equals("tif")){
                //设置发送到客户端的响应内容类型
                response.setContentType("image/tiff");
@@ -1117,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 {