⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 temptabledispose.java

📁 SAP这个系统的一个转换器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.idoc.logic;

/**
 * <p>Title: IDOC Interface</p>
 * <p>Description: IDOC 转换器</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: SiChuan XinHua</p>
 * @author Richary
 * @version 1.0
 */

import com.idoc.util.db.RowSet;
import com.idoc.util.db.Row;
import java.util.Vector;
import java.io.File;
import java.util.Vector;
import com.idoc.util.LogManager;
import com.idoc.util.db.DBQueryBean;
import com.idoc.util.Operate;

public class TempTableDispose {
  private Operate operate = null;
  private DBQueryBean query = null;

  public TempTableDispose() {
  }

  /**
   * 操作商品主数据
   * @param vec1
   * @param sqlup
   * @param v_vec
   * @param tablename
   * @param file
   * @return
   */
  public boolean dealData(Vector vec1, Vector sqlup, Vector v_vec,
                          String tablename, File file) {
    Vector vec = new Vector();
    query = new DBQueryBean();
    LogManager log = new LogManager();
    Vector log_vec = new Vector();

    boolean flag = false;
    boolean f = false;
    String ts = ""; // 插临时表的主数据
    String tu = ""; // 修改临时表的免费标志
    int sign = 0;

    if (vec1 == null) {
      return false;
    }
    try {
      // 把解析数据插入中间数据库表
      vec = Operate.uniteVector(vec, vec1);

      vec = Operate.uniteVector(vec, v_vec);

      flag = query.doAffair(vec);
      //if (flag == false)
      //throw new Throwable("error");
      // 写日志 -- 操作成功
      log_vec = log.getLogData("", "material", "b");
      log_vec.set(2, file.getName());
      log_vec.set(8, String.valueOf(vec1.size()));
      log_vec.set(9, "1");
      log_vec.set(10, "0");
      f = log.WriteLog(log_vec);
    }
    catch (Throwable e) {
      //System.out.println("批量插入中间数据库表"+e.toString());
      flag = false;
      // 写日志
      log_vec = log.getLogData("", "material", "b");
      log_vec.set(2, file.getName());
      log_vec.set(8, String.valueOf(vec1.size()));
      log_vec.set(9, "0");
      log_vec.set(10, "0");
      f = log.WriteLog(log_vec);
    }

    if (!flag) {
      // 每一条执行
      for (int i = 0; i < vec1.size(); i++) {
        //System.out.println(vec1.get(i));
        try {
          sign = query.Update(vec1.get(i).toString());
          if (sign < 0) {
            throw new Throwable("error");
          }
          else {
            query.Update(v_vec.get(i).toString());
          }
        }
        catch (Throwable e1) {
          //sign = -1;
          // 写日志
          try {
            log_vec = log.getLogData(vec1.get(i).toString(), "material", "b");
            log_vec.set(2, file.getName());
            log_vec.set(8, "1");
            log_vec.set(9, "0");
            log_vec.set(10, "1");
            f = log.WriteLog(log_vec);
          }catch(Exception ex) {
            System.out.println("log_vec : " + ex.toString());
            ex.printStackTrace();
          }
        }

        // 插入中间表失败
        if (sign < 0) {
          ts = (String) vec1.get(i);
          tu = (String) v_vec.get(i);
          // 插临时表
          ts = ts.replaceAll(tablename, "T_" + tablename);
          // 修改临时表的免费标志
          tu = tu.replaceAll(tablename, "T_" + tablename);
          try {
            sign = query.Update(ts);

            if (sign >= 0) {
              flag = true;
            }

            //if(sign<0)
            //throw new Throwable("error");
          }
          catch (Throwable e2) {
//  System.out.println("临时数据库表一行"+e2.toString());
            sign = -1;
            // 写日志
            flag = false;

            log_vec = log.getLogData(vec1.get(i).toString(), "material", "t");
            log_vec.set(2, file.getName());
            log_vec.set(8, "1");
            log_vec.set(9, "0");
            log_vec.set(10, "1");
            f = log.WriteLog(log_vec);
          }

          // 写临时表失败,修改临时表
          if (sign < 0) {
            try {
              sign = query.Update( (String) sqlup.get(i));
//System.out.println("i = " + i + " --> " + (String) sqlup.get(i));
              if (sign >= 0) {
                query.Update(tu);
                flag = true;
              }
              if (sign < 0) {
                throw new Throwable("error");
              }
            }
            catch (Throwable e3) {
//    System.out.println("e3 : " + e3.toString());
              sign = -1;
              flag = false;
              // 写日志
              log_vec.set(8, "1");
              log_vec.set(9, "0");
              log_vec.set(10, "0");
              f = log.WriteLog(log_vec);
            }
          }
          try {
            query.Update(tu);
          }
          catch (Exception ex) {
            System.out.println("update t_'s date : " + ex.toString());
          }
        }
      }
    }
    query.close();
    //dbquery.close();
//System.out.println("flag : " + flag);
    return flag;

  }

  /**
   * @param vec1 --- SQL
   * @param sqlup --- SQL
   * @param ablename --- 临时表名
   * @param file ----idoc文件
   * @return boolean
   */
  public boolean dealData(Vector vec1, Vector sqlup, String tablename,
                          File file, String type) {

    query = new DBQueryBean();
    boolean flag = false;

    LogManager log = new LogManager();
    Vector log_vec = new Vector();
    boolean f = false;
    log_vec = log.getLogData("", type, "b");
    int sign = 0;
    if (vec1 == null) {
      return false;
    }
    try {
      // 把解析数据插入中间数据库表
      flag = query.doAffair(vec1);
      if (flag == false) {
        throw new Throwable("error");
      }
/*
      // 写日志
      log_vec.set(2, file.getName());
      log_vec.set(8, String.valueOf(vec1.size()));
      log_vec.set(9, "1");
      log_vec.set(10, "0");
      f = log.WriteLog(log_vec);
 */
    }
    catch (Throwable e) {
      //System.out.println("中间数据库表"+e.toString());
      // flag = false;
      /*
      // 写日志
      log_vec = log.getLogData("", type, "b");
      log_vec.set(2, file.getName());
      log_vec.set(8, String.valueOf(vec1.size()));
      log_vec.set(9, "0");
      log_vec.set(10, "0");
      f = log.WriteLog(log_vec);
*/
    }

    // 批量插入失败,进行逐条插入
    if (!flag) {
      for (int i = 0; i < vec1.size(); i++) {
        try {
          sign = query.Update(vec1.get(i).toString());
          if (sign < 0) {
            throw new Throwable("error");
          }
        }
        catch (Throwable e1) {
          //System.out.println("中间数据库表一行"+e1.toString());
          // 写日志
          /*
          log_vec = log.getLogData(vec1.get(i).toString(), type, "b");
          log_vec.set(2, file.getName());
          log_vec.set(8, "1");
          log_vec.set(9, "0");
          log_vec.set(10, "1");
          f = log.WriteLog(log_vec);
*/
        }

        // 逐条插入失败,插入临时表
        if (sign < 0) {
          String ts = (String) vec1.get(i);
          ts = ts.replaceAll(tablename, "T_" + tablename);
          try {
            sign = query.Update(ts);
            //System.out.println("i = " + i + " --> " + ts + "  sign = " + sign);
            if (sign >= 0) {
              flag = true;
            }
            if (sign < 0) {
              throw new Throwable("error");
            }
          }
          catch (Throwable e2) {
            //System.out.println("临时数据库表一行"+e2.toString());
            sign = -1;
            // 写日志
            flag = false;
/*
            log_vec = log.getLogData(vec1.get(i).toString(), type, "t");
            log_vec.set(2, file.getName());
            log_vec.set(8, "1");
            log_vec.set(9, "0");
            log_vec.set(10, "1");
            f = log.WriteLog(log_vec);
*/
          }

          // 插入临时表失败,修改临时表
          if (sign < 0) {
            try {
              sign = query.Update( (String) sqlup.get(i));
              //System.out.println("i = " + i + " --> " + (String) sqlup.get(i) + "   sign = "+ sign);
              if (sign >= 0) {
                flag = true;
              }
              if (sign < 0) {
                throw new Throwable("error");
              }
            }
            catch (Throwable e3) {
              sign = -1;
              flag = false;
              /*
              // 写日志
              log_vec = log.getLogData(vec1.get(i).toString(), type, "u");
              log_vec.set(8, "1");
              log_vec.set(9, "0");
              log_vec.set(10, "0");
              f = log.WriteLog(log_vec);
*/
            }
          }
        }
      }
    }
    query.close();
    //query.close();
    return flag;
  }

  //重载方法dealData
  /**

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -