...
This commit is contained in:
parent
10c07f669c
commit
83c26ecec9
|
@ -1,19 +1,15 @@
|
||||||
package com.cpic.telsale.DataImport;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Kane on 2017/3/28.
|
* Created by Kane on 2017/3/28.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
package com.cpic.telsale.DataImport;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.text.ParseException;
|
import java.util.ArrayList;
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Calendar;
|
|
||||||
|
|
||||||
import org.apache.poi.hssf.*;
|
|
||||||
import org.apache.poi.hssf.usermodel.*;
|
import org.apache.poi.hssf.usermodel.*;
|
||||||
import org.apache.poi.ss.usermodel.CellType;
|
import com.cpic.telsale.TelsalePolicyRecord;
|
||||||
|
|
||||||
import com.cpic.util.staff.*;
|
import com.cpic.util.staff.*;
|
||||||
|
|
||||||
public class DataImport
|
public class DataImport
|
||||||
|
@ -22,6 +18,58 @@ public class DataImport
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 从xlsx文件读取电销转介绍保单记录,保存在一个ArrayList中并返回。
|
||||||
|
* @Param: fileName xlsx文件的路径
|
||||||
|
* @return: java.util.ArrayList<com.cpic.telsale.TelsalePolicyRecord>
|
||||||
|
* @Author: 王炜
|
||||||
|
* @Date: 2021/6/21
|
||||||
|
*/
|
||||||
|
public static ArrayList<TelsalePolicyRecord> readTelsalePolicyDataFromXlsx(String fileName, int sheetIndex) throws
|
||||||
|
IOException,
|
||||||
|
SQLException,
|
||||||
|
XlsFileFormatException
|
||||||
|
{
|
||||||
|
ArrayList<TelsalePolicyRecord> policyList = new ArrayList<TelsalePolicyRecord>();
|
||||||
|
|
||||||
|
TelsalePolicyRecord record = null;
|
||||||
|
|
||||||
|
FileInputStream xlsxFile = null;
|
||||||
|
HSSFWorkbook workBook = null;
|
||||||
|
HSSFSheet sheet = null;
|
||||||
|
HSSFRow row = null;
|
||||||
|
|
||||||
|
int rowIndex = 0;
|
||||||
|
int rowCount = 0;
|
||||||
|
|
||||||
|
try {
|
||||||
|
xlsxFile = new FileInputStream(fileName);
|
||||||
|
workBook = new HSSFWorkbook(xlsxFile);
|
||||||
|
sheet = workBook.getSheetAt(sheetIndex);
|
||||||
|
rowIndex = sheet.getFirstRowNum() + 1;
|
||||||
|
rowCount = sheet.getLastRowNum();
|
||||||
|
row = sheet.getRow(rowIndex);
|
||||||
|
|
||||||
|
while (rowIndex <= rowCount) {
|
||||||
|
//用第一个单元格判断是不是空行,如果cell为null视为空行
|
||||||
|
HSSFCell cell = row.getCell(0);
|
||||||
|
|
||||||
|
if (cell == null) {
|
||||||
|
rowIndex++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String policyNo = cell.getStringCellValue();
|
||||||
|
String operatorCode = getStringValueFromHSSFCell(row.getCell(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (IOException error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return policyList;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 读取xls表格插入数据,要么全部成功,要么全部失败。
|
* 读取xls表格插入数据,要么全部成功,要么全部失败。
|
||||||
*
|
*
|
||||||
|
@ -55,16 +103,14 @@ public class DataImport
|
||||||
HSSFSheet sheet = null;
|
HSSFSheet sheet = null;
|
||||||
HSSFRow row = null;
|
HSSFRow row = null;
|
||||||
|
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
xlsFileIn = new FileInputStream(fileName);
|
xlsFileIn = new FileInputStream(fileName);
|
||||||
xlsFile = new HSSFWorkbook(xlsFileIn);
|
xlsFile = new HSSFWorkbook(xlsFileIn);
|
||||||
sheet = xlsFile.getSheetAt(0); //第一个sheet
|
sheet = xlsFile.getSheetAt(0); //第一个sheet
|
||||||
rowIndex = sheet.getFirstRowNum() + 1;
|
rowIndex = sheet.getFirstRowNum() + 1;
|
||||||
rowCount = sheet.getLastRowNum();
|
rowCount = sheet.getLastRowNum();
|
||||||
row = sheet.getRow(rowIndex);
|
row = sheet.getRow(rowIndex);
|
||||||
}
|
} catch (IOException error) //有文件格式错误的可能。
|
||||||
catch( IOException error ) //有文件格式错误的可能。
|
|
||||||
{
|
{
|
||||||
xlsFile.close();
|
xlsFile.close();
|
||||||
xlsFileIn.close();
|
xlsFileIn.close();
|
||||||
|
@ -118,13 +164,11 @@ public class DataImport
|
||||||
StaffInfo staff = null;
|
StaffInfo staff = null;
|
||||||
boolean isSuccess = true; //标志位,用来指示在保存过程中是否出现错误。
|
boolean isSuccess = true; //标志位,用来指示在保存过程中是否出现错误。
|
||||||
|
|
||||||
while ( rowIndex <= rowCount )
|
while (rowIndex <= rowCount) {
|
||||||
{
|
|
||||||
//用来判断是不是空行
|
//用来判断是不是空行
|
||||||
HSSFCell cell = row.getCell(0);
|
HSSFCell cell = row.getCell(0);
|
||||||
|
|
||||||
if ( cell == null)
|
if (cell == null) {
|
||||||
{
|
|
||||||
rowIndex++;
|
rowIndex++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -133,16 +177,14 @@ public class DataImport
|
||||||
operatorCode = getStringValueFromHSSFCell(row.getCell(1));
|
operatorCode = getStringValueFromHSSFCell(row.getCell(1));
|
||||||
|
|
||||||
//判断一下是不是空的单元格
|
//判断一下是不是空的单元格
|
||||||
if ( policyNo.length() == 0 || operatorCode.length() == 0 )
|
if (policyNo.length() == 0 || operatorCode.length() == 0) {
|
||||||
{
|
|
||||||
importResult = importResult + "第" + rowIndex + "行数据为空。<br>";
|
importResult = importResult + "第" + rowIndex + "行数据为空。<br>";
|
||||||
|
|
||||||
//isSuccess = false;
|
//isSuccess = false;
|
||||||
}
|
}
|
||||||
else //不是空单元格,进行处理
|
else //不是空单元格,进行处理
|
||||||
{
|
{
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
//取得经办人信息
|
//取得经办人信息
|
||||||
staff = new StaffInfo(operatorCode);
|
staff = new StaffInfo(operatorCode);
|
||||||
|
|
||||||
|
@ -164,9 +206,7 @@ public class DataImport
|
||||||
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",转介绍信息入成功!<br>";
|
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",转介绍信息入成功!<br>";
|
||||||
|
|
||||||
successCount++;
|
successCount++;
|
||||||
}
|
} catch (StaffCodeNotExistException error) {
|
||||||
catch( StaffCodeNotExistException error )
|
|
||||||
{
|
|
||||||
//经办人不存在
|
//经办人不存在
|
||||||
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",经办人" + operatorCode + "不存在。<br>";
|
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",经办人" + operatorCode + "不存在。<br>";
|
||||||
|
|
||||||
|
@ -175,9 +215,7 @@ public class DataImport
|
||||||
|
|
||||||
//计数
|
//计数
|
||||||
failCount++;
|
failCount++;
|
||||||
}
|
} catch (OracleConnectionException error) {
|
||||||
catch( OracleConnectionException error )
|
|
||||||
{
|
|
||||||
//查询工号失败
|
//查询工号失败
|
||||||
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",经办人" + operatorCode + ",查询工号失败。<br>";
|
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",经办人" + operatorCode + ",查询工号失败。<br>";
|
||||||
|
|
||||||
|
@ -186,19 +224,17 @@ public class DataImport
|
||||||
|
|
||||||
//计数
|
//计数
|
||||||
failCount++;
|
failCount++;
|
||||||
}
|
} catch (SQLException error) {
|
||||||
catch( SQLException error )
|
|
||||||
{
|
|
||||||
int errorCode = error.getErrorCode();
|
int errorCode = error.getErrorCode();
|
||||||
|
|
||||||
switch ( errorCode )
|
switch (errorCode) {
|
||||||
{
|
|
||||||
case -268: //保单号重复
|
case -268: //保单号重复
|
||||||
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",已录入过转介绍信息!" + error.getCause() + "。<br>";
|
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",已录入过转介绍信息!" + error.getCause() + "。<br>";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: //写入错误
|
default: //写入错误
|
||||||
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",数据库写入错误,错误信息:" + error.getCause() + "。<br>";
|
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",数据库写入错误,错误信息:" + error
|
||||||
|
.getCause() + "。<br>";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -207,9 +243,7 @@ public class DataImport
|
||||||
|
|
||||||
//计数
|
//计数
|
||||||
failCount++;
|
failCount++;
|
||||||
}
|
} catch (Exception error) {
|
||||||
catch( Exception error )
|
|
||||||
{
|
|
||||||
//写入错误
|
//写入错误
|
||||||
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",数据库写入错误,错误信息:" + error.getMessage() + "。<br>";
|
importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",数据库写入错误,错误信息:" + error.getMessage() + "。<br>";
|
||||||
|
|
||||||
|
@ -218,9 +252,7 @@ public class DataImport
|
||||||
|
|
||||||
//计数
|
//计数
|
||||||
failCount++;
|
failCount++;
|
||||||
}
|
} finally {
|
||||||
finally
|
|
||||||
{
|
|
||||||
ifxConn.commit();
|
ifxConn.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -270,41 +302,33 @@ public class DataImport
|
||||||
{
|
{
|
||||||
String value = null;
|
String value = null;
|
||||||
|
|
||||||
if ( cell == null )
|
if (cell == null) {
|
||||||
{
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ( cell.getCellType() )
|
switch (cell.getCellType()) {
|
||||||
{
|
case HSSFCell.CELL_TYPE_NUMERIC: {
|
||||||
case HSSFCell.CELL_TYPE_NUMERIC:
|
|
||||||
{
|
|
||||||
//判断是不是整数
|
//判断是不是整数
|
||||||
double dValue = cell.getNumericCellValue();
|
double dValue = cell.getNumericCellValue();
|
||||||
|
|
||||||
if ( dValue == ( int )dValue )
|
if (dValue == (int) dValue) {
|
||||||
{
|
|
||||||
value = String.valueOf((int) dValue);
|
value = String.valueOf((int) dValue);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
value = String.valueOf(dValue);
|
value = String.valueOf(dValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case HSSFCell.CELL_TYPE_STRING:
|
case HSSFCell.CELL_TYPE_STRING: {
|
||||||
{
|
|
||||||
value = cell.getStringCellValue();
|
value = cell.getStringCellValue();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case HSSFCell.CELL_TYPE_BLANK:
|
case HSSFCell.CELL_TYPE_BLANK: {
|
||||||
{
|
|
||||||
value = "";
|
value = "";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default: {
|
||||||
{
|
|
||||||
value = "";
|
value = "";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue