luoyb
2021-07-30 65f1296728ac4a2c207d411b50659af683628413
fix:
导入新员工时也同步写一条入职记录
2个文件已修改
116 ■■■■■ 已修改文件
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -103,8 +103,8 @@
        list.forEach(p -> {
            p.setSexName("1".equals(p.getSex()) ? "男" : "女");
            p.setArchivesStatusName("0".equals(p.getArchivesStatus()) ? "未移交" : "已移交");
            p.setEmpCardStatusName("1".equals(p.getEmpCardStatus()) ? "未发" : "已发");
            p.setHandbookStatusName("1".equals(p.getHandbookStatus()) ? "未发" : "已发");
            p.setEmpCardStatusName("0".equals(p.getEmpCardStatus()) ? "未发" : "已发");
            p.setHandbookStatusName("0".equals(p.getHandbookStatus()) ? "未发" : "已发");
            p.setEmpStatusName("0".equals(p.getEmpStatus()) ? "在职" : "离职");
            //保险类型
            p.setInsuranceTypeName(dicItems.stream()
@@ -210,6 +210,21 @@
        empBaseInfo.setModifier(operatorId);
        this.saveOrUpdate(empBaseInfo);
        addEmpDimissLog(empBaseInfo, operatorId, empId);
    }
    /**
     *
     * 增加员工后同步增加入职记录
     *
     * date 2021-07-30 09:12
     * @author: luoyibo
     * @param empBaseInfo 员工信息
     * @param operatorId 操作员Id
     * @param empId 员工Id
     * @return void
     */
    private void addEmpDimissLog(EmpBaseInfo empBaseInfo, String operatorId, Long empId) {
        EmpDimissionLog dimissionLog = new EmpDimissionLog();
        dimissionLog.setCloseId(SequenceUtil.generateId(0L, ModuleCode.HR_EMPLOYEE));
        dimissionLog.setEmpId(empId);
@@ -474,6 +489,10 @@
                returnList.add(StrUtil.format("导入员工基本信息异常: 出现位置第{}行, 原因:{}员工编号重复", listObject.indexOf(list) + 1, list.get(1).toString()));
                continue;
            }
            if (this.count(new LambdaQueryWrapper<EmpBaseInfo>().eq(EmpBaseInfo::getCertificateNumb, list.get(1).toString()).ne(EmpBaseInfo::getDelFlag, 1)) > 0) {
                returnList.add(StrUtil.format("导入员工基本信息异常: 出现位置第{}行, 原因:{}身份证号重复", listObject.indexOf(list) + 1, list.get(1).toString()));
                continue;
            }
            EmpBaseInfo empBaseInfo = new EmpBaseInfo();
            empBaseInfo.setEmpId(SequenceUtil.generateId(0L, ModuleCode.HR_EMPLOYEE));
            empBaseInfo.setArchivesNumb(list.get(0).toString());
@@ -636,6 +655,8 @@
            }
            empBaseInfo.setEmpStatus("0");
            this.save(empBaseInfo);
            //新入职员工需要增加一条入职记录
            this.addEmpDimissLog(empBaseInfo,"2",empBaseInfo.getEmpId());
        }
    }
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java
@@ -9,6 +9,7 @@
import java.util.List;
import cn.hutool.core.util.StrUtil;
import com.esotericsoftware.minlog.Log;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -111,56 +112,60 @@
            throw new Exception("创建Excel工作薄为空!");
        }
        List<List<List<Object>>> returnList = new ArrayList<List<List<Object>>>();
        for (Sheet sheet : work) {
            Row row = null;
            Cell cell = null;
        try {
            for (Sheet sheet : work) {
                Row row = null;
                Cell cell = null;
            list = new ArrayList<List<Object>>();
            if (sheet == null) {
                continue;
            }
            // 取得Excel的总列数,总行数
            int columns = 0;
            Row firstRow = sheet.getRow((short) 0);
            if (firstRow != null) {
                columns = firstRow.getPhysicalNumberOfCells();
            }
                list = new ArrayList<List<Object>>();
                if (sheet == null) {
                    continue;
                }
                // 取得Excel的总列数,总行数
                int columns = 0;
                Row firstRow = sheet.getRow((short) 0);
                if (firstRow != null) {
                    columns = firstRow.getPhysicalNumberOfCells();
                }
            int rows = sheet.getPhysicalNumberOfRows();
            List<Object> dataRow = null;
                int rows = sheet.getPhysicalNumberOfRows();
                List<Object> dataRow = null;
            // 首行为定义标题的行,数据从第2行开始
            for (int i = 1; i < rows; i++) {
                dataRow = new ArrayList<Object>();
                // 获取行
                row = sheet.getRow(i);
                if (row == null) {
                    break;
                }
                // 首行为定义标题的行,数据从第2行开始
                for (int i = 1; i < rows; i++) {
                    dataRow = new ArrayList<Object>();
                    // 获取行
                    row = sheet.getRow(i);
                    if (row == null) {
                        break;
                    }
                cell = row.getCell(0);
                if (StrUtil.isBlank(getCellValue(cell).toString())) {
                    break;
                }
                    cell = row.getCell(0);
                    if (StrUtil.isBlank(getCellValue(cell).toString())) {
                        break;
                    }
                if (row != null) {
                    // columns=row.getPhysicalNumberOfCells();//不在这里设置,通过firstRow来获取列数信息。
                    for (int j = 0; j < columns; j++) {
                        // 获取某行某列的某一个单元格
                        cell = row.getCell(j);
                    if (row != null) {
                        // columns=row.getPhysicalNumberOfCells();//不在这里设置,通过firstRow来获取列数信息。
                        for (int j = 0; j < columns; j++) {
                            // 获取某行某列的某一个单元格
                            cell = row.getCell(j);
                        // 往dataRow存值
                        dataRow.add(getCellValue(cell));
                    }
                    list.add(dataRow);
                } else {
                    list.add(new ArrayList<>());
                }
            }
                            // 往dataRow存值
                            dataRow.add(getCellValue(cell));
                        }
                        list.add(dataRow);
                    } else {
                        list.add(new ArrayList<>());
                    }
                }
            work.close();
            returnList.add(list);
        }
                work.close();
                returnList.add(list);
            }
        } catch (Exception e){
            Log.error(e.getMessage());
        }
        return returnList;
    }