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

📄 updatadispose.java

📁 SAP这个系统的一个转换器
💻 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 + -