新增预警/告警事务首页以及技术监督管理接口
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
package com.njcn.process.utils;
|
||||
|
||||
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @author lee
|
||||
* @version 1.0
|
||||
*/
|
||||
public class ReadPatientExcelUtil {
|
||||
//总行数
|
||||
private static int totalRows = 0;
|
||||
//总条数
|
||||
private static int totalCells = 0;
|
||||
//错误信息接收器
|
||||
private static String errorMsg;
|
||||
|
||||
/**
|
||||
* 读EXCEL文件,获取信息集合
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static List<ThsOverRunLog> getExcelInfo(MultipartFile mFile) {
|
||||
String fileName = mFile.getOriginalFilename();//获取文件名
|
||||
try {
|
||||
if (!validateExcel(fileName)) {// 验证文件名是否合格
|
||||
return null;
|
||||
}
|
||||
boolean isExcel2003 = true;// 根据文件名判断文件是2003版本还是2007版本
|
||||
if (isExcel2007(fileName)) {
|
||||
isExcel2003 = false;
|
||||
}
|
||||
List<ThsOverRunLog> userList = createExcel(mFile.getInputStream(), isExcel2003);
|
||||
return userList;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据excel里面的内容读取客户信息
|
||||
*
|
||||
* @param is 输入流
|
||||
* @param isExcel2003 excel是2003还是2007版本
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
public static List<ThsOverRunLog> createExcel(InputStream is, boolean isExcel2003) {
|
||||
try {
|
||||
Workbook wb = null;
|
||||
if (isExcel2003) {// 当excel是2003时,创建excel2003
|
||||
wb = new HSSFWorkbook(is);
|
||||
} else {// 当excel是2007时,创建excel2007
|
||||
wb = new XSSFWorkbook(is);
|
||||
}
|
||||
List<ThsOverRunLog> thsOverRunLogList = readExcelValue(wb);// 读取Excel里面客户的信息
|
||||
return thsOverRunLogList;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取Excel里面客户的信息
|
||||
*
|
||||
* @param wb
|
||||
* @return
|
||||
*/
|
||||
private static List<ThsOverRunLog> readExcelValue(Workbook wb) {
|
||||
//默认会跳过第一行标题
|
||||
// 得到第一个shell
|
||||
Sheet sheet = wb.getSheetAt(0);
|
||||
// 得到Excel的行数
|
||||
totalRows = sheet.getPhysicalNumberOfRows();
|
||||
// 得到Excel的列数(前提是有行数)
|
||||
if (totalRows > 1 && sheet.getRow(1) != null) {
|
||||
totalCells = sheet.getRow(1).getPhysicalNumberOfCells();
|
||||
}
|
||||
List<ThsOverRunLog> thsOverRunLogList = new ArrayList<ThsOverRunLog>();
|
||||
// 循环Excel行数
|
||||
for (int r = 1; r < totalRows; r++) {
|
||||
Row row = sheet.getRow(r);
|
||||
if (row == null) {
|
||||
continue;
|
||||
}
|
||||
ThsOverRunLog ThsOverRunLog = new ThsOverRunLog();
|
||||
// 循环Excel的列
|
||||
for (int c = 0; c < totalCells; c++) {
|
||||
Cell cell = row.getCell(c);
|
||||
if (null != cell) {
|
||||
if (c == 0) { //第一列
|
||||
//如果是纯数字,将单元格类型转为String
|
||||
if (cell.getCellTypeEnum() == CellType.NUMERIC) {
|
||||
cell.setCellType(CellType.STRING);
|
||||
}
|
||||
ThsOverRunLog.setCompanyName(cell.getStringCellValue());//将单元格数据赋值给ThsOverRunLog
|
||||
} else if (c == 1) {
|
||||
if (cell.getCellTypeEnum() == CellType.NUMERIC) {
|
||||
cell.setCellType(CellType.STRING);
|
||||
}
|
||||
ThsOverRunLog.setName(cell.getStringCellValue());
|
||||
} else if (c == 2) {
|
||||
if (cell.getCellTypeEnum() == CellType.NUMERIC) {
|
||||
cell.setCellType(CellType.STRING);
|
||||
}
|
||||
String stringCellValue = cell.getStringCellValue();
|
||||
ThsOverRunLog.setLineIndexName(stringCellValue);
|
||||
} else if (c == 3) {
|
||||
if (cell.getCellTypeEnum() == CellType.NUMERIC) {
|
||||
cell.setCellType(CellType.STRING);
|
||||
}
|
||||
String stringCellValue = cell.getStringCellValue();
|
||||
ThsOverRunLog.setDescription(stringCellValue);
|
||||
} else if (c == 4) {
|
||||
if (cell.getCellTypeEnum() == CellType.NUMERIC) {
|
||||
cell.setCellType(CellType.STRING);
|
||||
}
|
||||
String stringCellValue = cell.getStringCellValue();
|
||||
ThsOverRunLog.setFileName(stringCellValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
//将excel解析出来的数据赋值给对象添加到list中
|
||||
// 添加到list
|
||||
thsOverRunLogList.add(ThsOverRunLog);
|
||||
}
|
||||
return thsOverRunLogList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证EXCEL文件
|
||||
*
|
||||
* @param filePath
|
||||
* @return
|
||||
*/
|
||||
public static boolean validateExcel(String filePath) {
|
||||
if (filePath == null || !(isExcel2003(filePath) || isExcel2007(filePath))) {
|
||||
errorMsg = "文件名不是excel格式";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// @描述:是否是2003的excel,返回true是2003
|
||||
public static boolean isExcel2003(String filePath) {
|
||||
return filePath.matches("^.+\\.(?i)(xls)$");
|
||||
}
|
||||
|
||||
//@描述:是否是2007的excel,返回true是2007
|
||||
public static boolean isExcel2007(String filePath) {
|
||||
return filePath.matches("^.+\\.(?i)(xlsx)$");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user