diff --git a/代码/jsp/telsale_import/src/com/cpic/telsale/DataImport/DataImport.java b/代码/jsp/telsale_import/src/com/cpic/telsale/DataImport/DataImport.java index 019a09c..fdf3f0d 100644 --- a/代码/jsp/telsale_import/src/com/cpic/telsale/DataImport/DataImport.java +++ b/代码/jsp/telsale_import/src/com/cpic/telsale/DataImport/DataImport.java @@ -116,251 +116,6 @@ public class DataImport return policyList; } - /** - * 读取xls表格插入数据,要么全部成功,要么全部失败。 - * - * @param fileName xls文件名 - * @param telsalePolicyOperatorListTableName informix库电销转介绍表名 - * @param informixURL informix数据库URL - * @return - * @throws IOException - * @throws ClassNotFoundException - * @throws SQLException 数据库异常 - * @throws XlsFileFormatException xls文件格式错误异常 - */ - public static String importTelsalePolicyDataFromXlsx( String fileName, - String telsalePolicyOperatorListTableName, - String informixURL ) - throws IOException, - ClassNotFoundException, - SQLException, - XlsFileFormatException - { - String importResult = ""; - String importMessage = null; - int rowIndex = 1; //excel文件行索引 - int rowCount = -1; - int successCount = 0; //成功写入的行计数 - int failCount = 0; //写入失败的行计数 - - //excel相关 - FileInputStream xlsFileIn = null; - HSSFWorkbook xlsFile = null; - HSSFSheet sheet = null; - HSSFRow row = null; - - try - { - xlsFileIn = new FileInputStream( fileName ); - xlsFile = new HSSFWorkbook( xlsFileIn ); - sheet = xlsFile.getSheetAt( 0 ); //第一个sheet - rowIndex = sheet.getFirstRowNum() + 1; - rowCount = sheet.getLastRowNum(); - row = sheet.getRow( rowIndex ); - } - catch ( IOException error ) //有文件格式错误的可能。 - { - xlsFile.close(); - xlsFileIn.close(); - - throw new XlsFileFormatException( "文件格式错误,请检查是否xls格式文件。" ); - } - - //informix相关 - Class.forName( "com.informix.jdbc.IfxDriver" ); - String ifxSql = - "INSERT INTO " + telsalePolicyOperatorListTableName + " \n" + - " (bdh,\n" + - " zhjywy,\n" + - " zhjywymc,\n" + - " kshdm,\n" + - " kshmc,\n" + - " zhjywybm,\n" + - " zhjywybmm,\n" + - //" chshdm,\n" + - //" khmc,\n" + - //" chph,\n" + - " khjl,\n" + - " khjllx,\n" + - " jjbj,\n" + - " czydm,\n" + - " czrq)\n" + - "VALUES\n" + - " (?,\n" + - " ?,\n" + - " ?,\n" + - " ?,\n" + - " ?,\n" + - " ?,\n" + - " ?,\n" + - //" ?,\n" + - //" ?,\n" + - //" ?,\n" + - " 0,\n" + - " 0,\n" + - " 1,\n" + - " '800',\n" + - " today)"; - Connection ifxConn = DriverManager.getConnection( informixURL ); - PreparedStatement ifxStmt = ifxConn.prepareStatement( ifxSql ); - - ifxConn.setAutoCommit( false );//关闭自动提交,整个表格要么全部成写入,要么全部失败。 - - //数据相关 - String policyNo = null; - String operatorCode = null; - StaffInfo staff = null; - boolean isSuccess = true; //标志位,用来指示在保存过程中是否出现错误。 - - while ( rowIndex <= rowCount ) - { - //用来判断是不是空行 - HSSFCell cell = row.getCell( 0 ); - - if ( cell == null ) - { - rowIndex++; - continue; - } - - policyNo = row.getCell( 0 ).getStringCellValue().trim(); - operatorCode = getStringValueFromHSSFCell( row.getCell( 1 ) ); - - //判断一下是不是空的单元格 - if ( policyNo.length() == 0 || operatorCode.length() == 0 ) - { - importResult = importResult + "第" + rowIndex + "行数据为空。
"; - - //isSuccess = false; - } - else //不是空单元格,进行处理 - { - try - { - //取得经办人信息 - staff = new StaffInfo( operatorCode ); - - //写入informix - ifxStmt.setString( 1, policyNo ); - ifxStmt.setString( 2, staff.getStaffCode() ); - ifxStmt.setString( 3, staff.getStaffName() ); - ifxStmt.setString( 4, staff.getSectionOfficeCode() ); - ifxStmt.setString( 5, staff.getSectionOfficeName() ); - ifxStmt.setString( 6, staff.getDepartmentCode() ); - ifxStmt.setString( 7, staff.getDepartmentName() ); - //ifxStmt.setString( 8, getStringValueFromHSSFCell( row.getCell( 6 ) ) ); - //ifxStmt.setString( 9, getStringValueFromHSSFCell( row.getCell( 3 ) ) ); - //ifxStmt.setString( 10, getStringValueFromHSSFCell( row.getCell( 2 ) ) ); - - //ifxStmt.execute(); - - //成功写入提示 - importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",转介绍信息入成功!
"; - - successCount++; - } - catch ( StaffCodeNotExistException error ) - { - //经办人不存在 - importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",经办人" + operatorCode + "不存在。
"; - - //标志位 - isSuccess = false; - - //计数 - failCount++; - } - catch ( OracleConnectionException error ) - { - //查询工号失败 - importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",经办人" + operatorCode + ",查询工号失败。
"; - - //标志位 - isSuccess = false; - - //计数 - failCount++; - } - catch ( SQLException error ) - { - int errorCode = error.getErrorCode(); - - switch ( errorCode ) - { - case -268: //保单号重复 - importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",已录入过转介绍信息!" + error.getCause() + "。
"; - break; - - default: //写入错误 - importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",数据库写入错误,错误信息:" + error - .getCause() + "。
"; - break; - } - - //标志位 - isSuccess = false; - - //计数 - failCount++; - } - catch ( Exception error ) - { - //写入错误 - importResult = importResult + "第" + rowIndex + "行,保单号" + policyNo + ",数据库写入错误,错误信息:" + error.getMessage() + "。
"; - - //标志位 - isSuccess = false; - - //计数 - failCount++; - } - finally - { - ifxConn.commit(); - } - } - - rowIndex++; - row = sheet.getRow( rowIndex ); - } - - //判断标志位,如果为false,则说明在保存过程中出现了错误,放弃所有过程,进行回滚。 -// if ( isSuccess == true ) -// { -// //oracleConn.commit(); -// ifxConn.commit(); -// } -// else -// { -// ifxConn.rollback(); -// } - - //清理 - xlsFile.close(); - xlsFileIn.close(); - - //日志 - importMessage = "读取记录数量:" + ( rowIndex - 1 ) + - "
写入记录数量:" + successCount + - "
错误记录数量:" + failCount + "
"; - -// if ( failCount != 0 ) -// { -// //有错误的记录,输出提示 -// importMessage += "
请根据错误提示修正后重新导入!
"; -// } -// else -// { -// //无错误的记录,输出成功提示 -// importMessage += "
文件已成功导入!
"; -// } - - //追加导入记录 - importMessage += importResult; - - return importMessage; - } - private static String getStringValueFromHSSFCell( HSSFCell cell ) { String value = null; @@ -593,8 +348,8 @@ public class DataImport /** * @Description: 读取excel文件,将数据写入oracle和informix数据库。 - * 数据库连接关闭自动提交,在两个数据库都写入成功后提交。 - * 只要有一个数据库写入抛出异常,回滚两个数据库的事务。 + * 数据库连接关闭自动提交,在两个数据库都写入成功后提交。 + * 只要有一个数据库写入抛出异常,回滚两个数据库的事务。 * @Param: * @return: void * @Author: 王炜 diff --git a/代码/jsp/telsale_import/src/com/cpic/telsale/uploadData/uploadDataProcessor.java b/代码/jsp/telsale_import/src/com/cpic/telsale/uploadData/uploadDataProcessor.java index 5467c0a..4c31fe0 100644 --- a/代码/jsp/telsale_import/src/com/cpic/telsale/uploadData/uploadDataProcessor.java +++ b/代码/jsp/telsale_import/src/com/cpic/telsale/uploadData/uploadDataProcessor.java @@ -35,13 +35,13 @@ public class uploadDataProcessor extends HttpServlet ServletException { //获取参数 - oracleURL = (String) config.getServletContext().getInitParameter( "oracleURL" ); + oracleURL = (String) config.getServletContext().getInitParameter( "oracle_url_dev01" ); oracleUserName = (String) config.getServletContext().getInitParameter( "oracleUserName" ); oraclePassword = (String) config.getServletContext().getInitParameter( "oraclePassword" ); //informix dxbd_test //informixURL = (String) config.getServletContext().getInitParameter( "informixURL" ); - informixURL = (String) config.getServletContext().getInitParameter( "dxbd_test" ); + informixURL = (String) config.getServletContext().getInitParameter( "informix_url_92" ); telsalePolicyOperatorListTableName = (String) config.getServletContext() .getInitParameter( "telsalePolicyOperatorListTableName" ); } diff --git a/代码/jsp/telsale_import/src/com/cpic/util/staff/StaffInfo.java b/代码/jsp/telsale_import/src/com/cpic/util/staff/StaffInfo.java index 92920fa..2b51f41 100644 --- a/代码/jsp/telsale_import/src/com/cpic/util/staff/StaffInfo.java +++ b/代码/jsp/telsale_import/src/com/cpic/util/staff/StaffInfo.java @@ -20,15 +20,14 @@ public class StaffInfo private static String oracleURL = "jdbc:oracle:thin:@10.39.0.86:1521:xmcx1"; - public StaffInfo( String staffCode ) + public StaffInfo(String staffCode) throws StaffCodeNotExistException, - OracleConnectionException, - ClassNotFoundException, - SQLException + OracleConnectionException, + ClassNotFoundException, + SQLException { - if ( staffCode.length() < 3 ) - { - throw new StaffCodeNotExistException( staffCode + "不存在。" ); + if (staffCode.length() < 3) { + throw new StaffCodeNotExistException(staffCode + "不存在。"); } //url要改成可配置的 @@ -39,7 +38,7 @@ public class StaffInfo this.staffCode = staffCode; - Class.forName( "oracle.jdbc.driver.OracleDriver" ); + Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = null; PreparedStatement stmt = null; @@ -58,43 +57,32 @@ public class StaffInfo " AND ry.department_code = bm.department_code\n" + " AND ry.section_office_code = ksh.section_office_code"; - try - { - conn = DriverManager.getConnection( oracleURL, oracleUserName, oraclePassword ); - stmt = conn.prepareStatement( sql ); - stmt.setString( 1, staffCode ); + try { + conn = DriverManager.getConnection(oracleURL, oracleUserName, oraclePassword); + stmt = conn.prepareStatement(sql); + stmt.setString(1, staffCode); result = stmt.executeQuery(); - if ( result.next() ) - { - staffName = result.getString( "staff_name" ); - sectionOfficeCode = result.getString( "section_office_code" ); - sectionOfficeName = result.getString( "section_office_name" ); - departmentCode = result.getString( "department_code" ); - departmentName = result.getString( "department_name" ); + if (result.next()) { + staffName = result.getString("staff_name"); + sectionOfficeCode = result.getString("section_office_code"); + sectionOfficeName = result.getString("section_office_name"); + departmentCode = result.getString("department_code"); + departmentName = result.getString("department_name"); } - if ( staffName.isEmpty() == true ) - { + if (staffName.isEmpty() == true) { //没查到数据 - throw new StaffCodeNotExistException( "工号" + staffCode + "不存在。" ); + throw new StaffCodeNotExistException("工号" + staffCode + "不存在。"); } - } - catch ( SQLException error ) - { - throw new OracleConnectionException( error.getMessage() ); - } - finally - { - try - { - if ( conn != null ) - { + } catch (SQLException error) { + throw new OracleConnectionException(error.getMessage()); + } finally { + try { + if (conn != null) { conn.close(); } - } - catch ( SQLException error ) - { + } catch (SQLException error) { //不处理了 } } diff --git a/代码/jsp/telsale_import/web/WEB-INF/web.xml b/代码/jsp/telsale_import/web/WEB-INF/web.xml index 42a1dcf..41e9e3d 100644 --- a/代码/jsp/telsale_import/web/WEB-INF/web.xml +++ b/代码/jsp/telsale_import/web/WEB-INF/web.xml @@ -20,9 +20,13 @@ temporaryFiles - oracleURL + oracle_url_dev01 jdbc:oracle:thin:@10.39.0.85:1521:dev01 + + oracle_url_xmcx1 + jdbc:oracle:thin:@10.39.0.86:1521:xmcx1 + oracleUserName telsale @@ -32,17 +36,13 @@ Cpic#1234 - informixURL + informix_prod_url jdbc:informix-sqli://10.187.11.163:9096/ywgl_xm:INFORMIXSERVER=pxmcx2;newcodeset=GBK,8859-1,819;user=ccx99;password=ct0IT17! - dxbd_test + informix_url_92 jdbc:informix-sqli://10.39.0.92:16192/ywgl_xm:INFORMIXSERVER=xmcx2;newcodeset=GBK,8859-1,819;user=ccx99;password=c92IT09 - - ora_telsale_url - jdbc:oracle:thin:@10.39.0.85:1521:dev01;user=telsale;password=Cpic%231234; - ora_xmcx1_url jdbc:oracle:thin:@10.39.0.86:1521:xmcx1;user=ywglxt;password=ywglxt; diff --git a/代码/oracle/项目/建表/查询.sql b/代码/oracle/项目/建表/查询.sql new file mode 100644 index 0000000..d1f5986 --- /dev/null +++ b/代码/oracle/项目/建表/查询.sql @@ -0,0 +1,7 @@ + +/* +truncate table Ϣ +*/ + +SELECT * + FROM Ϣ; diff --git a/代码/oracle/项目/电销保单信息管理.dsk b/代码/oracle/项目/电销保单信息管理.dsk index cd8aadd..f5f6222 100644 --- a/代码/oracle/项目/电销保单信息管理.dsk +++ b/代码/oracle/项目/电销保单信息管理.dsk @@ -6,7 +6,7 @@ SavePath=D:\develop\projects_win\2018\telsale_management_2017\ Index=1 Filename=D:\develop\projects_win\2018\telsale_management_2017\\oracle\Ŀ\\telsale_policy_check_pkg.pck VCSDBObject=0 -Connection=203611904672479448844638482446903692419849284826467636303960398639804038366443144308449440244018359636063616 +Connection=271145534323418944714289409142133087477745794477439133453099306130553049344348614855459331633157337533853395 DPI=96 Left=0 Top=0 @@ -17,11 +17,38 @@ Type=3 ChildListIndex=1 Pinned=0 +Index=2 +Filename=D:\develop\projects_win\2018\telsale_management_2017\\oracle\Ŀ\\Ϣ.sql +Connection=228750254923504546234889507549414071444946675045492738813667372537513777391545654559423337633757384738573867 +DPI=96 +Left=0 +Top=0 +Width=1474 +Height=636 +State=0 +Type=1 +ChildListIndex=3 +Pinned=0 + +Index=3 +Filename=D:\develop\projects_win\2018\telsale_management_2017\\oracle\Ŀ\\ѯ.sql +Connection=206849344704482648524670472845943724416649604602477237263992395439484070356842184212446240564050401240224032 +DPI=96 +Left=0 +Top=0 +Width=1550 +Height=719 +State=0 +Type=1 +ChildListIndex=2 +Pinned=0 + [Files] [MRU] -3,D:\develop\projects_win\2018\telsale_management_2017\\oracle\Ŀ\\telsale_policy_check_pkg.pck +1,D:\develop\projects_win\2018\telsale_management_2017\\oracle\Ŀ\\ѯ.sql 1,D:\develop\projects_win\2018\telsale_management_2017\\oracle\Ŀ\\Ϣ.sql +3,D:\develop\projects_win\2018\telsale_management_2017\\oracle\Ŀ\\telsale_policy_check_pkg.pck 1,D:\develop\projects_win\2018\telsale_management_2017\\oracle\Ŀ\\Ϣ¼־.sql [Layout] diff --git a/代码/oracle/项目/电销保单信息管理.prj b/代码/oracle/项目/电销保单信息管理.prj index be5a777..95cbd83 100644 --- a/代码/oracle/项目/电销保单信息管理.prj +++ b/代码/oracle/项目/电销保单信息管理.prj @@ -3,7 +3,7 @@ PL/SQL Developer Project [Options] AutoConnect=0 Username=telsale -Password=2093407949054803468536713937389938934015 +Password=2784480245724182438433383060305430483170 Database=DEV01 ConnectAs=Normal Edition=1.0 @@ -17,8 +17,8 @@ VersionControlPath= ShowItems=-1 [History] -Programs=D:\develop\projects_win\2019\car_dealer_util\\ݿ\oracle\pkg -SQL Scripts=D:\develop\projects_win\2018\xmty_util_2018\\oracle\xmty\sql\ѯ +Programs=D:\develop\projects_win\2018\telsale_management_2017\\oracle\Ŀ\ +SQL Scripts=D:\develop\projects_win\2018\telsale_management_2017\\oracle\Ŀ\ Report Files= Test Scripts= Command Scripts= @@ -31,6 +31,7 @@ Diagram Files= [Files] 1,0,,,\Ϣ.sql +1,0,,,\ѯ.sql [Notes] {\rtf1\ansi\deff0\nouicompat{\fonttbl{\f0\fnil Arial;}}