📄 updatadispose.java
字号:
package com.idoc.logic;
import java.util.*;
import com.idoc.util.*;
import com.idoc.util.db.*;
/**
* <p>Title: IDOC Interface</p>
* <p>Description: IDOC 转换器</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: SiChuan XinHua</p>
* @author zjc
* @version 1.0
*/
public class UpDataDispose {
private DBQueryBean query = null;
public UpDataDispose() {
}
//取配置表中的门店编码,某门店的最大结束时间
/**
* @return Hashtable ---key是门店,value最大结束时间戳
* 如果type是sale将bank_code写入bank_code表
*/
public String[][] getSyInfo(String type) {
RowSet rowset1 = new RowSet() ;
Row row = new Row();
query = new DBQueryBean();
String sql = "";
String[][] str = null;
sql = "Select distinct storeid,max(convert(bigint,endtime)) From interface_sy where uptype='" +
type + "' and flag <> 3 " + " group by storeid order by storeid";
try {
rowset1 = query.Query(sql);
str = new String[rowset1.length()][2];
if (type.equalsIgnoreCase("sales")) {
String paymentsql =
"insert into bank_code(storecode,serialno,bank_code,payment_money,sell_time) "
+ " select distinct SAPOUT_D_SALE_Payment.storecode,SAPOUT_D_SALE_Payment.serialno,SAPOUT_D_SALE_Payment.bank_code,SAPOUT_D_SALE_Payment.payment_money, "
+ " min(SAPOUT_D_SALE_INFO.sell_time) from SAPOUT_D_SALE_Payment ,SAPOUT_D_SALE_INFO where SAPOUT_D_SALE_INFO.storecode=SAPOUT_D_SALE_Payment.storecode and "
+ " SAPOUT_D_SALE_INFO.serialno =SAPOUT_D_SALE_Payment.serialno and( not exists(select 1 from bank_code where bank_code.storecode = SAPOUT_D_SALE_Payment.storecode and "
+ " bank_code.serialno = SAPOUT_D_SALE_Payment.serialno and bank_code.bank_code = SAPOUT_D_SALE_Payment.bank_code)) and SAPOUT_D_SALE_Payment.payment_type = 'ptbc' "
+
" group by SAPOUT_D_SALE_Payment.storecode,SAPOUT_D_SALE_Payment.serialno,"
+
" SAPOUT_D_SALE_Payment.bank_code,SAPOUT_D_SALE_Payment.payment_money";
query.Update(paymentsql);
}
for (int i = 0; i < rowset1.length(); i++) {
row= rowset1.get(i);
str[i][0] = row.get("storeid");
str[i][1] = row.get(1);
if (row.get(1).equalsIgnoreCase("0"))
str[i][1] = "";
row.removedata();
}
}
catch (Exception e) {
System.out.println("getSyInfo_PayMent----Update" + e.toString());
e.printStackTrace();
}
finally {
if(row!=null)
{row.clear();}
if(rowset1!=null)
{rowset1.release();}
query.close();
return str;
}
}
//取配置表中状态为未完成的门店编码,开始时间,结束时间
/**
* @return Hashtable ---key是int的自增涨,value是vector,含结束时间,,开始时间,门店三个元属
*/
public String[][] getNotFilishedSyInfo(String type) {
RowSet rowset2 = null ;
Row row = null;
query = new DBQueryBean();
String sql = "";
String[][] str = null;
sql = "Select storeid,startime,endtime From interface_sy where flag = 0"
+ " and uptype='" + type + "'";
try {
rowset2 = query.Query(sql);
str = new String[rowset2.length()][3];
for (int i = 0; i < rowset2.length(); i++) {
row = rowset2.get(i);
String storeid = row.get("storeid");
String startime = row.get("startime");
String endtime = row.get("endtime");
str[i][0] = storeid;
str[i][1] = startime;
str[i][2] = endtime;
row.removedata();
}
}
catch (Exception e) {
System.out.println("getNotFilishedSyInfo-------Query" + e.toString());
e.printStackTrace();
}
finally {
if(row!=null)
{row.clear();}
if(rowset2!=null)
{rowset2.release();}
query.close();
return str;
}
}
//向配置表中插入一条新记录,(含门店,开始时间戳,正在处理状态)
/**
* @param String ---storeid,门店代码
* @param String ---startime,开始时间
* @return int ---成功大于0
*/
public int insertSyInfo(String type, String storeid, String startime,
String endtime) {
int flag = -1;
LogManager log = new LogManager();
query = new DBQueryBean();
String sql = null;
if (startime == null || startime.equalsIgnoreCase("null") ||
startime.equalsIgnoreCase("")) {
startime = "";
}
sql =
"insert into interface_sy (uptype,storeid,startime,endtime,flag) values('"
+ type + "','" + storeid + "','" + startime + "','" + endtime + "',0)";
try {
flag = query.Update(sql);
}
catch (Exception e) {
query.close();
System.out.println("insertSyInfo--Update" + e.toString());
e.printStackTrace();
}
finally {
query.close();
}
Vector log_vec2 = new Vector();
log_vec2.add(0, storeid);
log_vec2.add(1, type + startime);
log_vec2.add(2, "");
log_vec2.add(3, type);
log_vec2.add(4, "interface_sy");
log_vec2.add(5, "in");
log_vec2.add(6, "操作表interface_sy的INSERT时失败,通知软件开发商,或系统管理员!");
log_vec2.add(7, "getDate()");
log_vec2.add(8, "1");
log_vec2.add(9, "0");
log_vec2.add(10, "0");
if (flag > -1) {
log_vec2.setElementAt("1", 9);
log_vec2.setElementAt("操作表interface_sy的INSERT时成功!", 6);
}
try {
// log.WriteLog(log_vec2);
}
catch (Exception ex) {
System.out.println(" insertSyInfo---WriteLog is Error!");
ex.printStackTrace();
}
return flag;
}
//取到某个表中某门店的最大时间戳
/**
* @param String ---storecode,门店代码
* @param int ---tablename,表名称
* @return String ---maxtime,最大时间戳
*/
public String getMaxTime(String storecode, String tablename) {
RowSet rowset3 = null;
Row row = null;
String maxtime = "";
query = new DBQueryBean();
String sql = "";
sql = "select CONVERT(bigint,max(update_time)) from " + tablename +
" WHERE STORECODE ='" +
storecode + "'";
try {
rowset3 = query.Query(sql);
row = rowset3.get(0);
maxtime = row.get(0);
}
catch (Exception e) {
System.out.println("getMaxTime---Query" + e.toString());
e.printStackTrace();
}
finally {
if(row!=null)
{row.clear();}
if(rowset3!=null)
{rowset3.release();}
query.close();
}
return maxtime;
}
//删除配置表中状态为完成,结束时间不等于最大时间戳的记录
/**
* @param String ---maxtime,最大结束时间戳
* @return int ---成功大于0
*/
public int delSyInfo(String type) {
int flag = 0;
query = new DBQueryBean();
String sql = null;
sql = " delete interface_sy where flag =1 "
+ " and not exists(select * from (select storeid,uptype, max(convert(bigint,endtime))as et from interface_sy"
+ " where flag <> 3 group by storeid ,uptype ) b "
+
" where interface_sy.uptype=b.uptype and interface_sy.storeid = b.storeid "
+ " and interface_sy.endtime = b.et)";
LogManager log = new LogManager();
Vector log_vec2 = new Vector();
log_vec2.add(0, "");
log_vec2.add(1, type + "over");
log_vec2.add(2, "");
log_vec2.add(3, type);
log_vec2.add(4, "interface_sy");
log_vec2.add(5, "in");
log_vec2.add(6, "删除配置表中状态为完成,结束时间不等于最大时间戳的记录");
log_vec2.add(7, "getDate()");
log_vec2.add(8, "1");
log_vec2.add(9, "1");
log_vec2.add(10, "0");
try {
flag = query.Update(sql);
log.WriteLog(log_vec2);
}
catch (Exception e) {
log_vec2.setElementAt("删除配置表中状态为完成,结束时间不等于最大时间戳的记录失败!", 6);
log_vec2.setElementAt("0", 9);
log.WriteLog(log_vec2);
System.out.println("delSyInfo" + e.toString());
e.printStackTrace();
}
finally {
query.close();
return flag;
}
}
//删除销售,支付方式中间数据库表中取过的对应数据,修改配置表中结束时间戳,状态标志
/**
* @param String ---storecode,门店代码
* @param String ---startime,开始时间戳
* @param String ---endtime,结束时间戳
* @return boolean ---flag,成功标志
*/
public boolean deleteData(String storecode, String startime, String endtime,
Vector Tv) {
boolean flag = false;
String sql = "";
Vector vec = new Vector();
query = new DBQueryBean();
Operate Op1 = new Operate();
String wheresql = "";
String wheresqlsy = "";
if (startime == null || startime.equalsIgnoreCase("") ||
startime.equalsIgnoreCase("null")) {
wheresql = "where STORECODE='" + storecode +
"' and CONVERT(bigint,update_time) <='" + endtime + "'";
}
else {
wheresql = "where STORECODE='" + storecode
+ "' and '" + startime + "' < CONVERT(bigint,update_time) "
+ " and CONVERT(bigint,update_time)<= '" + endtime + "'";
}
if (startime == null || startime.equalsIgnoreCase("null")) {
startime = "";
}
wheresqlsy = "where storeid = '" + storecode + "' and uptype='sales'" +
" and startime = '" + startime + "'";
sql = "update interface_sy set flag = 1 " + wheresqlsy;
vec.addElement(sql);
sql = "delete SAPOUT_D_SALE_INFO " + wheresql;
//vec.addElement(sql);
for (int i = 0; i < Tv.size(); i++) {
sql = "delete SAPOUT_D_SALE_Payment where storecode='" + storecode +
"' and serialno='"
+ Tv.elementAt(i) + "'";
//vec.addElement(sql);
}
//
LogManager log = new LogManager();
Vector log_vec2 = new Vector();
log_vec2.add(0, storecode);
log_vec2.add(1, "sales" + startime);
log_vec2.add(2, "");
log_vec2.add(3, "sales");
log_vec2.add(4, "interface_sy,SALE_INFO,SALE_Payment");
log_vec2.add(5, "in");
log_vec2.add(6,
"从POS中心数据库删除门店(" + storecode + ")从 " + startime + " 到 " +
endtime +
" 的销售数据成功!");
log_vec2.add(7, "getDate()");
log_vec2.add(8, String.valueOf(vec.size()));
log_vec2.add(9, "1");
log_vec2.add(10, "0");
try {
flag = query.doAffair(vec);
Tv.removeAllElements();
if (flag == false) {
throw new Throwable("error");
}
// 写日志
log.WriteLog(log_vec2);
}
catch (Throwable e) {
flag = false;
// 写日志
log_vec2.setElementAt("从POS中心数据库删除门店(" + storecode + ")从 " + startime +
" 到 " + endtime + " 的销售数据失败!", 6);
log_vec2.setElementAt("0", 9);
log.WriteLog(log_vec2);
System.out.println("UpDataDispose's deleteData is Error!");
e.printStackTrace();
}
finally {
query.close();
}
return flag;
}
//删除盘点中间数据库表中取过的对应数据,修改配置表中结束时间戳,状态标志
/**
* @param String ---storecode,门店代码
* @param String ---startime,开始时间戳
* @param String ---endtime,结束时间戳
* @return boolean ---flag,*/
public boolean delDatainventory(String storecode, String startime,
String endtime) {
boolean flag = true;
String sql = null;
Vector vec = new Vector();
query = new DBQueryBean();
Operate Op1 = new Operate();
String wheresql = null;
String wheresqlsy = null;
if (startime == null || startime.equalsIgnoreCase("") ||
startime.equalsIgnoreCase("null")) {
wheresql = "where STORECODE='" + storecode
+ "' and CONVERT(bigint,update_time)<='" + endtime + "'";
}
else {
wheresql = "where STORECODE='" + storecode
+ "' and '" + startime +
"'<=CONVERT(bigint,update_time) and CONVERT(bigint,update_time)<='" +
endtime + "'";
}
if (startime == null || startime.equalsIgnoreCase("") ||
startime.equalsIgnoreCase("null")) {
startime = "";
}
wheresqlsy = "where storeid = '" + storecode + "' and uptype='upinventory'" +
" and startime='" + startime + "'";
sql = "update interface_sy set flag = 1 " + wheresqlsy;
vec.addElement(sql);
sql = "delete sapout_sy_checklist_down " + wheresql;
//vec.addElement(sql);
//
LogManager log = new LogManager();
Vector log_vec2 = new Vector();
log_vec2.add(0, storecode);
log_vec2.add(1, "upinventory" + startime);
log_vec2.add(2, "");
log_vec2.add(3, "upinventory");
log_vec2.add(4, "interface_sy,sapout_sy_checklist_down");
log_vec2.add(5, "in");
log_vec2.add(6,
"从POS中心数据库删除门店(" + storecode + ")从 " + startime + " 到 " +
endtime +
" 的盘点数据成功!");
log_vec2.add(7, "getDate()");
log_vec2.add(8, "1");
log_vec2.add(9, "1");
log_vec2.add(10, "0");
try {
// 把解析数据插入中间数据库表
flag = query.doAffair(vec);
if (flag == false) {
throw new Throwable("error");
}
// 写日志
log.WriteLog(log_vec2);
}
catch (Throwable e) {
flag = false;
// 写日志
log_vec2.setElementAt("从POS中心数据库删除门店(" + storecode + ")从 " + startime +
" 到 " + endtime + " 的盘点数据失败!", 6);
log_vec2.setElementAt("0", 9);
log.WriteLog(log_vec2);
System.out.println("UpDataDispose's delDatainventory is Error!");
e.printStackTrace();
}
finally {
query.close();
return flag;
}
}
//调sapFunction
/**
* @param String ---storecode,门店代码
* @param String ---startime,开始时间戳
* @param String ---endtime,结束时间戳
* @return boolean ---flag,成功标志
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -