From 6d240fbbf6a47b4125320f26c4f5c537e1493fb6 Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期五, 05 十一月 2021 22:19:12 +0800
Subject: [PATCH] fix(bug修复): 到期合同的统计条件修改为只针对在职员工统计
---
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java | 128 +++++++++++++++++++++++-------------------
1 files changed, 71 insertions(+), 57 deletions(-)
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 de94684..726aeb1 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
@@ -8,6 +8,8 @@
import java.util.Date;
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;
@@ -24,7 +26,7 @@
/**
* 描述:获取IO流中的数据,组装成List<List<Object>>对象
- *
+ *
* @param in,fileName
* @return
* @throws IOException
@@ -82,11 +84,11 @@
* sheet.getLastRowNum(); j++) { row = sheet.getRow(j); if (row == null ||
* row.getFirstCellNum() == j) { if (row != null) countCellNum =
* row.getLastCellNum(); continue; }
- *
+ *
* // 遍历所有的列 List<Object> li = new ArrayList<Object>(); for (int y = row
* .getFirstCellNum(); y <= countCellNum; y++) { cell = row.getCell(y);
* li.add(this.getCellValue(cell));
- *
+ *
* } list.add(li); }
*/
@@ -96,7 +98,7 @@
/**
* 描述:获取IO流中的数据,组装成List<List<List<Object>>>对象,多个sheet
- *
+ *
* @param in,fileName
* @return
* @throws IOException
@@ -110,53 +112,67 @@
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) {
- // 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<>());
- }
- }
+ // 首行为定义标题的行,数据从第2行开始
+ for (int i = 1; i < rows; i++) {
+ dataRow = new ArrayList<Object>();
+ // 获取行
+ row = sheet.getRow(i);
+ if (row == null) {
+ break;
+ }
- work.close();
- returnList.add(list);
- }
-
+ 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);
+
+ // 往dataRow存值
+ dataRow.add(getCellValue(cell));
+ }
+ list.add(dataRow);
+ } else {
+ list.add(new ArrayList<>());
+ }
+ }
+
+ work.close();
+ returnList.add(list);
+ }
+ } catch (Exception e){
+ Log.error(e.getMessage());
+ }
+
return returnList;
}
/**
* 描述:根据文件后缀,自适应上传文件的版本
- *
+ *
* @param inStr,fileName
* @return
* @throws Exception
@@ -176,7 +192,7 @@
/**
* 描述:对表格中数值进行格式化
- *
+ *
* @param cell
* @return
*/
@@ -189,25 +205,23 @@
value = "";
return value;
}
-
- DecimalFormat df = new DecimalFormat("0"); // 格式化number String字符
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 日期格式化
- DecimalFormat df2 = new DecimalFormat("0.00"); // 格式化数字
+ // 格式化number String字符
+ DecimalFormat df = new DecimalFormat("0");
+ // 日期格式化
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ // 格式化数字
+ DecimalFormat df2 = new DecimalFormat("0.00");
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
value = cell.getRichStringCellValue().getString();
break;
case Cell.CELL_TYPE_NUMERIC:
- if (HSSFDateUtil.isCellDateFormatted(cell)) {// 处理日期格式、时间格式
-
- if (cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("h:mm")
- || cell.getCellStyle().getDataFormat() == 176) {
- sdf = new SimpleDateFormat("HH:mm");
- }
- Date date = cell.getDateCellValue();
- value = sdf.format(date);
-
+ if (HSSFDateUtil.isCellDateFormatted(cell)) {
+ // 处理日期格式、时间格式
+ Date date = cell.getDateCellValue();
+ sdf = new SimpleDateFormat("yyyy-MM-dd");
+ value = sdf.format(date);
} else if (cell.getCellStyle().getDataFormat() == 58) {
// 处理自定义日期格式:m月d日(通过判断单元格的格式id解决,id的值是58)
SimpleDateFormat sdf2 = new SimpleDateFormat("MM-dd");
@@ -247,4 +261,4 @@
}
-}
\ No newline at end of file
+}
--
Gitblit v1.8.0