...
This commit is contained in:
		@@ -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;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user