getxml.java

  1. /**
  2.  * Title:        生成XML信息文件
  3.  * Description:  1、生成接收文件反饋信息。
  4.  * @date :       2006-3-9
  5.  * @author :     zhanglei
  6.  * @version :    1.0
  7.  */
  8. package server;
  9. import java.sql.*;
  10. import java.util.*;
  11. import java.io.*;
  12. import oracle.sql.*;
  13. import sun.misc.BASE64Decoder;
  14. import org.apache.log4j.*;
  15. import com.microsoft.jdbc.sqlserver.*;
  16. public class GetXmlFile {
  17.     private DomXML DomXML = MainServer.DomXML;
  18.     private EditXML editxml = MainServer.editxml;
  19.     private JdbcWork ZzJw = new JdbcWork();
  20.     private String dwdm = "";
  21.     private String dwmc = "";
  22.     private String tableName = "";
  23.     private String SQLWhere = "";
  24.     private String sjblx = "";
  25.     private String bbh = "2.00";
  26.     private int sjbJls = 100;
  27.     private String encodeFlag = "0";
  28.     private String xmlPath = ".";
  29.     private String updateflag = "Y";
  30.     private String sjbbh = "";
  31.     private String getXmlType = "";
  32.     private String zdexchangeflag = "";
  33.     private String zdItem = "";
  34.     private String undofield = "";
  35.     private String dofield = "";
  36.     private String newsjbbh = "";
  37.     public GetXmlFile(String xmlNo) {
  38.         try {
  39.             DomXML.GetBeginItem("System");
  40.             dwdm = DomXML.GetItemVal("dwdm").trim();
  41.             dwmc = DomXML.GetItemVal("dwmc").trim();
  42.             DomXML.GetBeginItem("GetXmlFile");
  43.             getXmlType = DomXML.GetItemAttribute(xmlNo, "xmltype").trim();
  44.             bbh = DomXML.GetItemAttribute(xmlNo, "bbh").trim();
  45.             sjbJls = Integer.parseInt(DomXML.GetItemAttribute(xmlNo, "jls").trim());
  46.             encodeFlag = DomXML.GetItemAttribute(xmlNo, "encode").trim();
  47.             sjblx = DomXML.GetItemAttribute(xmlNo, "sjblx").trim();
  48.             xmlPath = DomXML.GetItemAttribute(xmlNo, "path").trim();
  49.             undofield = DomXML.GetItemAttribute(xmlNo, "undofield").toUpperCase().trim() + ",";
  50.             dofield = DomXML.GetItemAttribute(xmlNo, "dofield").toUpperCase().trim();
  51.             zdexchangeflag = DomXML.GetItemAttribute(xmlNo, "zdexchange").toLowerCase().trim();
  52.             tableName = DomXML.GetItemAttribute(xmlNo, "tableName").trim();
  53.             SQLWhere = DomXML.GetItemAttribute(xmlNo, "SQLWhere").trim();
  54.             updateflag = DomXML.GetItemAttribute(xmlNo, "updateflag").toLowerCase().trim();
  55.             newsjbbh = DomXML.GetItemAttribute(xmlNo, "newsjbbh").toLowerCase().trim();
  56.             if (zdexchangeflag.equals("y")) {
  57.                 new ZdExchange(); //獲得字典轉換表
  58.                 zdItem = ZdExchange.getZdItem().toUpperCase();
  59.             }
  60.         }
  61.         catch (Exception ex) {
  62.             SaveLog.SetInfo("GetXmlFile中初始化失敗:" + ex, 2);
  63.         }
  64.     }
  65.     /**
  66.      *GetXmlFile 生成交換信息XML文件
  67.      *@param   GetXmlfile  XML文件類型標誌
  68.      */
  69.     public void Start() {
  70.         if (newsjbbh.equals("y")) {
  71.             CreateSjbbh();
  72.         }
  73.         else {
  74.             HaveSjbbh();
  75.         }
  76.     }
  77.     /**
  78.      * CreateSjbbh產生新數據包包號
  79.      */
  80.     private void CreateSjbbh() {
  81.         StringBuffer log = new StringBuffer();
  82.         StringBuffer Sql = new StringBuffer();
  83.         sun.misc.BASE64Encoder base64Encoder = new sun.misc.BASE64Encoder();
  84.         String fssj = "";
  85.         String fileName = "";
  86.         String xmlFile = "";
  87.         String fieldName = "";
  88.         String fieldType = "";
  89.         String fieldVal = "";
  90.         String pc = "";
  91.         String doFieldList = "";
  92.         Vector fileNameList = new Vector();
  93.         String tempStr = "";
  94.         Statement jlStmt = null;
  95.         ResultSet jlRs = null;
  96.         ResultSetMetaData rsMd = null;
  97.         int recSum = 0;
  98.         int sjbSum = 0;
  99.         int sjbMax = 0;
  100.         try {
  101.             if (tableName.length() < 1) {
  102.                 return;
  103.             }
  104.             Sql.setLength(0);
  105.             Sql.append("select count(*) a from ").append(tableName)
  106.                 .append(" ").append(SQLWhere).append(" "); //where rownum <= 2333333
  107.             //得到數據記錄數
  108.             recSum = ZzJw.GetCount(Sql.toString());
  109.             if (recSum < 1) {
  110.                 return;
  111.             }
  112.             Sql.setLength(0);
  113.             if (updateflag.equals("y")) {
  114.                 tempStr = "rowid,";
  115.             }
  116.             //得到打包字段列表
  117.             doFieldList = GetFieldList(dofield, bbh);
  118.             Sql.append("select ").append(tempStr).append(doFieldList).append(" from ").append(tableName)
  119.                 .append(" ").append(SQLWhere).append(" "); //where rownum <= 2333333
  120.             //得到包體結果集
  121.             jlStmt = ZzJw.GetStatment();
  122.             jlRs = jlStmt.executeQuery(Sql.toString());
  123.             rsMd = jlRs.getMetaData();
  124.             fssj = MyFunction.DataTimeStr("yyyyMMddHHmmss");
  125.             //得到批次號
  126.             pc = dwdm + fssj.substring(08) + GetSxh(GetMaxBH(1));
  127.             sjbMax = GetMaxBH(0);
  128.             //文件生成路徑
  129.             File bakdir = new File(xmlPath);
  130.             if (!bakdir.exists()) {
  131.                 bakdir.mkdirs();
  132.             }
  133. //            xmlPath = xmlPath + "//" + fssj;
  134.             bakdir = new File(xmlPath);
  135.             if (!bakdir.exists()) {
  136.                 bakdir.mkdirs();
  137.             }
  138.             jlRs.next();
  139.             sjbSum = (int) Math.ceil( (double) recSum / sjbJls);
  140.             for (int n = 1; n <= sjbSum; n++) { //
  141.                 //得到文件名
  142.                 if (fssj.substring(08).equals(MyFunction.DataTimeStr("yyyyMMdd"))) {
  143.                     sjbMax = sjbMax + 1;
  144.                 }
  145.                 else {
  146.                     sjbMax = 1;
  147.                 }
  148.                 fssj = MyFunction.DataTimeStr("yyyyMMddHHmmss");
  149.                 sjbbh = dwdm + fssj.substring(08) + GetSxh(sjbMax);
  150.                 fileName = getXmlType + "_" + sjbbh + ".xml";
  151.                 xmlFile = xmlPath + "//" + fileName;
  152.                 WriteXml myxml = new WriteXml();
  153.                 myxml.WriteFile(xmlFile);
  154.                 //寫入包頭
  155.                 myxml.AddRoot(0"Package");
  156.                 myxml.AddRoot(1"PackageHead");
  157.                 myxml.AddItem(1"BBH", bbh);
  158.                 myxml.AddItem(1"SJBBH", sjbbh);
  159.                 myxml.AddItem(1"SJBLX", sjblx);
  160.                 myxml.AddItem(1"DWDM", dwdm);
  161.                 myxml.AddItem(1"DWMC", dwmc);
  162.                 if ( (recSum - sjbJls * n) > 0) {
  163.                     myxml.AddItem(1"JLS", String.valueOf(sjbJls));
  164.                 }
  165.                 else {
  166.                     myxml.AddItem(1"JLS", String.valueOf(recSum - sjbJls * (n - 1)));
  167.                 }
  168.                 myxml.AddItem(1"FSSJ", fssj);
  169.                 myxml.AddRoot(1"Data");
  170.                 //生成包體
  171.                 for (int m = 0; m < sjbJls; m++) {
  172.                     myxml.AddRoot(2"Record");
  173.                     for (int j = 1; j <= rsMd.getColumnCount(); j++) {
  174.                         fieldName = rsMd.getColumnName(j).toUpperCase();
  175.                         fieldType = rsMd.getColumnTypeName(j).toUpperCase();
  176.                         if (undofield.indexOf(fieldName + ",") == -1) { //包頭項不做處理
  177.                             if (fieldType.equals("BLOB")) {
  178.                                 try {
  179.                                     Blob blob = jlRs.getBlob(fieldName);
  180.                                     fieldVal = base64Encoder.encode(blob.getBytes(1, (int) blob.length()));
  181.                                     myxml.AddItem(2, MyFunction.fmtStr(fieldName),
  182.                                                   MyFunction.GetNewBase64(fieldVal));
  183.                                 }
  184.                                 catch (Exception e) {
  185.                                     myxml.AddItem(2, MyFunction.fmtStr(fieldName), "");
  186.                                 }
  187.                             }
  188.                             else if (fieldType.toUpperCase().equals("DATE")) {
  189.                                 fieldVal = MyFunction.DataTimeStr(jlRs.getTimestamp(fieldName));
  190.                                 myxml.AddItem(2, MyFunction.fmtStr(fieldName), fieldVal);
  191.                             }
  192.                             else {
  193.                                 if (zdexchangeflag.equals("y") && (zdItem.indexOf(fieldName + ",") > 0)) { //是否轉換字典代碼
  194.                                     fieldVal = ZdExchange.getGbZd(fieldName, jlRs.getString(fieldName)); // == null?jlRs.getString(fieldName):jlRs.getString(fieldName).trim()
  195.                                 }
  196.                                 else {
  197.                                     //try{
  198.                                         fieldVal = jlRs.getString(fieldName);
  199.                                     //}catch(Exception e){fieldVal = "";}
  200.                                 }
  201.                                 myxml.AddItem(2, MyFunction.fmtStr(fieldName), fieldVal);
  202.                             }
  203.                         }
  204.                     }
  205.                     //更新記錄標記
  206.                     if (updateflag.equals("y")) {
  207.                         Sql.setLength(0);
  208.                         Sql.append("update ").append(tableName).append(" set sjbbh = '" + sjbbh +
  209.                             "',").append("pc = '" + pc + "',").append("fssj = '" + fssj + "'")
  210.                             .append(" where rowid = '").append(jlRs.getString(1)).append("'");
  211.                         ZzJw.PstmtExecSql(Sql.toString());
  212.                     }
  213.                     if (!jlRs.next()) {
  214.                         break;
  215.                     }
  216.                 }
  217.                 //‘0’存儲爲"UTF-8",無standalone="yes"標識XML文件
  218.                 myxml.toSave(encodeFlag);
  219.                 fileNameList.add(fileName);
  220.                 log.setLength(0);
  221.                 log.append(xmlFile).append("文件生成完畢!");
  222.                 SetSxh(sjbbh, 0); //寫入最後包號
  223.                 SaveLog.SetInfo(log.toString(), 0);
  224.             }
  225.             //提交全部、生成批次文件、移動全部文件
  226.             ZzJw.PstmtCommit();
  227.             //GetPcXml(xmlPath, pc, fileNameList);
  228.             //SetSxh(pc, 1); //寫入最後批次號
  229.         }
  230.         catch (Exception e) {
  231.             log.setLength(0);
  232.             log.append(xmlFile).append("文件生成異常:").append(e.toString());
  233.             SaveLog.SetInfo(log.toString(), 1);
  234.         }
  235.         finally {
  236.             try {
  237.                 if (jlRs != null) {
  238.                     jlRs.close();
  239.                 }
  240.                 if (jlStmt != null) {
  241.                     jlStmt.close();
  242.                 }
  243.             }
  244.             catch (Exception e) {
  245.             }
  246.         }
  247.     }
  248.     /**
  249.      * CreateSjbbh產生新數據包包號
  250.      */
  251.     private void HaveSjbbh() {
  252.         StringBuffer log = new StringBuffer();
  253.         StringBuffer Sql = new StringBuffer();
  254.         sun.misc.BASE64Encoder base64Encoder = new sun.misc.BASE64Encoder();
  255.         String fssj = "";
  256.         String fileName = "";
  257.         String xmlFile = "";
  258.         String fieldName = "";
  259.         String fieldType = "";
  260.         String fieldVal = "";
  261.         String pc = "";
  262.         String doFieldList = "";
  263.         Vector fileNameList = new Vector();
  264.         String tempStr = "";
  265.         Statement sjbStmt = null;
  266.         ResultSet sjbRs = null;
  267.         Statement jlStmt = null;
  268.         ResultSet jlRs = null;
  269.         ResultSetMetaData rsMd = null;
  270.         int recSum = 0;
  271.         int sjbSum = 0;
  272.         int sjbMax = 0;
  273.         try {
  274.             if (tableName.length() < 1) {
  275.                 return;
  276.             }
  277.             Sql.setLength(0);
  278.             Sql.append("select distinct sjbbh from ").append(tableName)
  279.                 .append(" ").append(SQLWhere).append(" order by sjbbh"); //where rownum <= 2333333
  280.             //得到數據記錄數
  281.             sjbStmt = ZzJw.GetStatment();
  282.             sjbRs = sjbStmt.executeQuery(Sql.toString());
  283.             fssj = MyFunction.DataTimeStr("yyyyMMdd");
  284. //            xmlPath = xmlPath + "//" + fssj;
  285.             //更新記錄標記
  286.             if (updateflag.equals("y")) {
  287.                 Sql.setLength(0);
  288.                 Sql.append("update ").append(tableName).append(" set fssj = '" + fssj + "' ").append(SQLWhere);
  289.                     //.append(" and sjbbh = '" + sjbbh + "',")
  290.                 ZzJw.PstmtExecSql(Sql.toString());
  291.                 ZzJw.PstmtCommit();
  292.             }
  293.             while (sjbRs.next()) {
  294.                 sjbbh = sjbRs.getString("sjbbh");
  295.                 Sql.setLength(0);
  296.                 if (updateflag.equals("y")) {
  297.                     tempStr = "rowid,";
  298.                 }
  299.                 //得到打包字段列表
  300.                 if (SQLWhere.toLowerCase().indexOf("where") < 0) {
  301.                     SQLWhere = " where ";
  302.                 }
  303.                 else {
  304.                     SQLWhere = " " + SQLWhere + " and sjbbh = " + sjbbh + " ";
  305.                 }
  306.                 doFieldList = GetFieldList(dofield, bbh);
  307.                 Sql.append("select ").append(tempStr).append(doFieldList).append(" from ").append(tableName)
  308.                     .append(" where sjbbh = " + sjbbh + " "); //
  309.                 //得到包體結果集
  310.                 jlStmt = ZzJw.GetStatment();
  311.                 jlRs = jlStmt.executeQuery(Sql.toString());
  312.                 rsMd = jlRs.getMetaData();
  313.                 Sql.setLength(0);
  314.                 sjbJls = ZzJw.GetCount(Sql.append("select count(*) a from ").append(tableName)
  315.                      .append(" where sjbbh = " + sjbbh + " ").toString());
  316.                 //文件生成路徑
  317.                 File bakdir = new File(xmlPath);
  318.                 if (!bakdir.exists()) {
  319.                     bakdir.mkdirs();
  320.                 }
  321.                 bakdir = new File(xmlPath);
  322.                 if (!bakdir.exists()) {
  323.                     bakdir.mkdirs();
  324.                 }
  325.                 //得到文件名
  326.                 fssj = MyFunction.DataTimeStr("yyyyMMddHHmmss");
  327.                 fileName = getXmlType + "_" + sjbbh + ".xml";
  328.                 xmlFile = xmlPath + "//" + fileName;
  329.                 WriteXml myxml = new WriteXml();
  330.                 myxml.WriteFile(xmlFile);
  331.                 //寫入包頭
  332.                 myxml.AddRoot(0"Package");
  333.                 myxml.AddRoot(1"PackageHead");
  334.                 myxml.AddItem(1"BBH", bbh);
  335.                 myxml.AddItem(1"SJBBH", sjbbh);
  336.                 myxml.AddItem(1"SJBLX", sjblx);
  337.                 myxml.AddItem(1"DWDM", dwdm);
  338.                 myxml.AddItem(1"DWMC", dwmc);
  339.                 myxml.AddItem(1"JLS", String.valueOf(sjbJls));
  340.                 myxml.AddItem(1"FSSJ", fssj);
  341.                 myxml.AddRoot(1"Data");
  342.                 //生成包體
  343.                 while (jlRs.next()) {
  344.                     myxml.AddRoot(2"Record");
  345.                     for (int j = 1; j <= rsMd.getColumnCount(); j++) {
  346.                         fieldName = rsMd.getColumnName(j).toUpperCase();
  347.                         fieldType = rsMd.getColumnTypeName(j).toUpperCase();
  348.                         if (undofield.indexOf(fieldName + ",") == -1) { //包頭項不做處理
  349.                             if (fieldType.equals("BLOB")) {
  350.                                 try {
  351.                                     Blob blob = jlRs.getBlob(fieldName);
  352.                                     fieldVal = base64Encoder.encode(blob.getBytes(1, (int) blob.length()));
  353.                                     myxml.AddItem(2, MyFunction.fmtStr(fieldName),
  354.                                                   MyFunction.GetNewBase64(fieldVal));
  355.                                 }
  356.                                 catch (Exception e) {
  357.                                     myxml.AddItem(2, MyFunction.fmtStr(fieldName), "");
  358.                                 }
  359.                             }
  360.                             else if (fieldType.toUpperCase().equals("DATE")) {
  361.                                 fieldVal = MyFunction.DataTimeStr(jlRs.getTimestamp(fieldName));
  362.                                 myxml.AddItem(2, MyFunction.fmtStr(fieldName), fieldVal);
  363.                             }
  364.                             else {
  365.                                 if (zdexchangeflag.equals("y") && (zdItem.indexOf(fieldName + ",") > 0)) { //是否轉換字典代碼
  366.                                     fieldVal = ZdExchange.getGbZd(fieldName, jlRs.getString(fieldName)); // == null?jlRs.getString(fieldName):jlRs.getString(fieldName).trim()
  367.                                 }
  368.                                 else {
  369.                                     fieldVal = jlRs.getString(fieldName);
  370.                                 }
  371.                                 myxml.AddItem(2, MyFunction.fmtStr(fieldName), fieldVal);
  372.                             }
  373.                         }
  374.                     }
  375.                     //更新記錄標記
  376.                 }
  377.                 //‘0’存儲爲"UTF-8",無standalone="yes"標識XML文件
  378.                 myxml.toSave(encodeFlag);
  379.                 fileNameList.add(fileName);
  380.                 log.setLength(0);
  381.                 log.append(xmlFile).append("文件生成完畢!");
  382.                 SetSxh(sjbbh, 0); //寫入最後包號
  383.                 SaveLog.SetInfo(log.toString(), 0);
  384.                 jlRs.close();
  385.                 jlStmt.close();
  386.                 //提交全部、生成批次文件、移動全部文件
  387.             }
  388. //            ZzJw.PstmtCommit();
  389.             sjbRs.close();
  390.             sjbStmt.close();
  391.         }
  392.         catch (Exception e) {
  393.             log.setLength(0);
  394.             log.append(xmlFile).append("文件生成異常:").append(e.toString());
  395.             SaveLog.SetInfo(log.toString(), 1);
  396.         }
  397.         finally {
  398.             try {
  399.                 if (jlRs != null) {
  400.                     jlRs.close();
  401.                 }
  402.                 if (jlStmt != null) {
  403.                     jlStmt.close();
  404.                 }
  405.                 if (sjbRs != null) {
  406.                     sjbRs.close();
  407.                 }
  408.                 if (sjbStmt != null) {
  409.                     sjbStmt.close();
  410.                 }
  411.             }
  412.             catch (Exception e) {
  413.             }
  414.         }
  415.     }
  416.     /**
  417.      *GetFieldList 得到處理字段列表
  418.      *@param   dofieldstr  處理字段
  419.      *@param   bm  部門編號
  420.      */
  421.     private String GetFieldList(String dofieldstr, String bm) {
  422.         String doFieldList = "";
  423.         Statement jlStmt = null;
  424.         ResultSet jlRs = null;
  425.         if (dofieldstr.trim().equals("") || bm.trim().equals("")) {
  426.             doFieldList = tableName + ".*";
  427.         }
  428.         else if (dofieldstr.toLowerCase().indexOf("select ") < 0) {
  429.             doFieldList = dofieldstr;
  430.         }
  431.         else {
  432.             try {
  433.                 jlStmt = ZzJw.GetStatment();
  434.                 jlRs = jlStmt.executeQuery(dofieldstr + " where ispk != 1 and tgbm='" + bm + "'");
  435.                 while (jlRs.next()) {
  436.                     doFieldList = doFieldList + jlRs.getString(1) + ",";
  437.                 }
  438.             }
  439.             catch (Exception ex) {
  440.             }
  441.             finally {
  442.                 try {
  443.                     if (jlRs != null) {
  444.                         jlRs.close();
  445.                     }
  446.                     if (jlStmt != null) {
  447.                         jlStmt.close();
  448.                     }
  449.                 }
  450.                 catch (Exception e) {
  451.                 }
  452.             }
  453.             doFieldList = doFieldList.substring(0, doFieldList.length() - 1);
  454.         }
  455.         return doFieldList;
  456.     }
  457.     /**
  458.      *Getsjbbh 得到批次文件
  459.      *@param   sjb_pc  0 數據包 1 批次文件
  460.      */
  461.     private int GetPcXml(String path, String pc, Vector fileNameList) {
  462.         StringBuffer log = new StringBuffer();
  463.         String pcXmlFile = path + "//" + getXmlType.substring(0, 4) + "LIST_"
  464.             + pc + ".xml";
  465.         try {
  466.             DomXML.GetBeginItem("System");
  467.             WriteXml myxml = new WriteXml();
  468.             myxml.WriteFile(pcXmlFile);
  469.             //寫入包頭
  470.             myxml.AddRoot(0"Package");
  471.             myxml.AddRoot(1"PackageHead");
  472.             myxml.AddItem(1"BBH""2.00");
  473.             myxml.AddItem(1"SJBBH", pc);
  474.             myxml.AddItem(1"SJBLX""09");
  475.             myxml.AddItem(1"DWDM", DomXML.GetItemVal("dwdm").trim());
  476.             myxml.AddItem(1"DWMC", DomXML.GetItemVal("dwmc").trim());
  477.             myxml.AddItem(1"JLS", String.valueOf(fileNameList.size()));
  478.             myxml.AddItem(1"FSSJ", MyFunction.DataTimeStr("yyyyMMddHHmmss"));
  479.             myxml.AddRoot(1"Data");
  480.             myxml.AddRoot(2"Record");
  481.             int i;
  482.             for (i = 0; i < fileNameList.size(); i++) {
  483.                 myxml.AddItem(2, fileNameList.get(i).toString().trim(), "");
  484.             }
  485.             myxml.toSave("0");
  486.             /*//拷貝文件到指定目錄*/
  487.             //MyFunction.copyDirectiory(path.substring(0, path.length() - 15), path);
  488.             log.append(pcXmlFile).append("文件生成完畢!");
  489.             SaveLog.SetInfo(log.toString(), 0);
  490.             return 0;
  491.         }
  492.         catch (Exception ex) {
  493.             log.append(pcXmlFile).append("文件生成失敗!");
  494.             SaveLog.SetInfo(log.toString(), 1);
  495.             return 1;
  496.         }
  497.     }
  498.     /**
  499.      *SetSxh 得到當前最大數據包順序號
  500.      *@param   maxbh  最大包號
  501.      *@param   sjb_pc  0 數據包 1 批次文件
  502.      */
  503.     private void SetSxh(String maxbh, int sjb_pc) {
  504.         String setbh = "";
  505.         try {
  506.             setbh = maxbh.substring(maxbh.length() - 13, maxbh.length());
  507.         }
  508.         catch (Exception ex) {
  509.             setbh = MyFunction.DataTimeStr("yyyyMMddHHmmss").substring(08) + "00001";
  510.         }
  511.         try {
  512.             if (sjb_pc == 0) {
  513.                 editxml.EditNodeAttr("System""maxsxh""maxbh", setbh);
  514.             }
  515.             else {
  516.                 editxml.EditNodeAttr("System""maxsxh""maxpc", setbh);
  517.             }
  518.             editxml.toSave("1");
  519.         }
  520.         catch (Exception ex) {
  521.             SaveLog.SetInfo("GetXmlFile中SetSxh異常,寫入最大包號失敗:" + ex, 2);
  522.         }
  523.     }
  524.     /**
  525.      *Getsjbbh 得到當前最大數據包或批次順序號
  526.      *@param   sjb_pc  0 數據包 1 批次文件
  527.      */
  528.     private int GetMaxBH(int sjb_pc) {
  529.         String fssj = MyFunction.DataTimeStr("yyyyMMddHHmmss").substring(08);
  530.         String sjbbh = "";
  531.         String maxbh = "";
  532.         int maxbh_I = 0;
  533.         try {
  534.             DomXML.GetBeginItem("System");
  535.             if (sjb_pc == 0) {
  536.                 sjbbh = DomXML.GetItemAttribute("maxsxh""maxbh").trim();
  537.                 if (sjbbh.substring(08).equals(fssj)) {
  538.                     maxbh = sjbbh.substring(813);
  539.                     maxbh_I = Integer.parseInt(maxbh);
  540.                 }
  541.                 else {
  542.                     maxbh_I = 0;
  543.                 }
  544.             }
  545.             else {
  546.                 sjbbh = DomXML.GetItemAttribute("maxsxh""maxpc").trim();
  547.                 if (sjbbh.substring(08).equals(fssj)) {
  548.                     maxbh = sjbbh.substring(813);
  549.                     maxbh_I = Integer.parseInt(maxbh) + 1;
  550.                 }
  551.                 else {
  552.                     maxbh_I = 1;
  553.                 }
  554.             }
  555.             return maxbh_I;
  556.         }
  557.         catch (Exception ex) {
  558.             return 0;
  559.         }
  560.     }
  561.     /**
  562.      *Getsjbbh 得到當前最大數據包順序號
  563.      *@param   maxbh  最大包號
  564.      */
  565.     private String GetSxh(int maxbh) {
  566.         String temp = "";
  567.         for (int i = 0; i < (5 - String.valueOf(maxbh).length()); i++) {
  568.             temp = "0" + temp;
  569.         }
  570.         return temp + maxbh;
  571.     }
  572.     public static void main(String[] args) {
  573.         try {
  574.             DomXML configXml = new DomXML("config.xml");
  575.             System.out.println("XML配置文件讀取成功!");
  576.         }
  577.         catch (Throwable t) {
  578.             System.out.println("檢驗XML配置文件讀取錯誤!");
  579.         }
  580.         //GetSjbHk.SetInfo("HUJ_CZRK_2203000000002005042500006.xml",24,"31");
  581.         //GetTabHk("sfz_zlhkxxb", "32", "SFZ_ZLHK_");
  582.         GetXmlFile getXmlFile = new GetXmlFile("CSH_JBXX");
  583.         getXmlFile.Start();
  584.         for (int i = 0; i < 10; i++) {
  585.             //GetXmlFile.SetInfo("sfz_zzxxb", "31", "SFZ_ZZXX_");
  586.         }
  587.         Logger a = Logger.getLogger("dsfsf");
  588.         a.debug("sdfsda");
  589.         a.error("error");
  590.     }
  591. }
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章