From 65f1296728ac4a2c207d411b50659af683628413 Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期五, 30 七月 2021 09:22:39 +0800
Subject: [PATCH] fix: 导入新员工时也同步写一条入职记录
---
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java | 25 +++++++++++-
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java | 91 ++++++++++++++++++++++++---------------------
2 files changed, 71 insertions(+), 45 deletions(-)
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
index c2957af..21a2520 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
+++ b/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());
}
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java
index d126f2e..126e63c 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java
+++ b/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;
}
--
Gitblit v1.8.0