📄 temptabledispose.java
字号:
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 + -