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

📄 gzdacurrencysaveblh.java

📁 以前做的一个j2ee的项目
💻 JAVA
字号:
package gov.gdlt.ssgly.taxcore.taxblh.gzda.service;


import java.util.*;
import java.sql.*;
import java.io.*;
import java.util.Iterator;
import java.text.*;

import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.sqlmap.client.*;
import com.ibatis.sqlmap.engine.builder.xml.*;
import com.ibatis.common.resources.*;
import com.ibatis.dao.client.*;

import gov.gdlt.ssgly.taxcore.taxdao.gzda.persistence.*;
import gov.gdlt.ssgly.taxcore.taxdao.gzda.persistence.blob.*;
import gov.gdlt.ssgly.taxcore.taxdao.gzda.persistence.iface.*;
import gov.gdlt.ssgly.taxcore.taxdao.gzda.persistence.sqlmapdao.*;
import gov.gdlt.ssgly.taxcore.taxblh.gzda.service.xmlinterface.impl.*;
import gov.gdlt.ssgly.taxcore.taxblh.gzda.service.xmlinterface.*;
import gov.gdlt.ssgly.taxcore.taxevent.gzda.persistence.entity.GZDAfileAbstrVO;
import gov.gdlt.ssgly.taxcore.comm.exception.TaxBaseBizException;
import gov.gdlt.ssgly.taxcore.comm.exception.TaxBaseSystemException;
import gov.gdlt.ssgly.taxcore.comm.event.ResponseEvent;
import gov.gdlt.ssgly.taxcore.comm.event.RequestEvent;
import gov.gdlt.ssgly.taxcore.comm.blh.BaseBizLogicHandler;
import gov.gdlt.ssgly.taxcore.comm.servicelocator.SqlMapLocator;
import gov.gdlt.ssgly.taxcore.comm.servicelocator.JDBCLocator;

public class GZDAcurrencySaveBLH extends BaseBizLogicHandler implements Command{
    protected DaoManager daoManager;
    protected PopularDao popularDao;
    public GZDAcurrencySaveBLH() {
        daoManager = DaoConfig.getDaomanager();

        popularDao = (PopularDao) daoManager.getDao(gov.gdlt.ssgly.taxcore.taxdao.gzda.persistence.iface.PopularDao.class);

    }
    private int insertPopular(String name,Map parameter){
       return popularDao.popularInsert(name,parameter);
    }

    protected int updatePopular(String name,Map parameter){
      return popularDao.popularUpdate(name,parameter);
    }

    private int deletePopular(String name,Map parameter){
      return popularDao.popularUpdate(name,parameter);
    }
    private List selectFileAbstrcol(String name,String pare){

      return popularDao.fileAbstrSelect(name,pare);
    }
    protected int insertFileAbstrt(String name,GZDAfileAbstrVO parameter){

       return popularDao.fileAbstrInsert(name,parameter);
    }
    private java.util.Date parseDate(String yyyymmdd, String format)
    {
      try{
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        java.util.Date date;
        ParsePosition pos = new ParsePosition(0);
        date = formatter.parse(yyyymmdd, pos);
        return date;
      }
       catch(Exception e){
           throw new IllegalArgumentException("错误的日期:"+yyyymmdd+e);
       }
    }
    private Hashtable getColumeType(String tablename){
      Hashtable vc=new Hashtable();
      String sql="select * from "+tablename;
      Connection con=null;

     // System.out.println("con:"+con);
      ResultSet res = null;
      Statement stmt = null;
      ResultSetMetaData data = null;
      int col=0;
      String cName;
      int    ctName;
      //SqlMapClient sqlMap=null;
      try{
         //con=ConFactor.getConnectFromT3();
         //con=ConFactor.getConnJdbc();
         //sqlMap=SqlMapLocator.getInstance().getSqlMapClient();
         //sqlMap.startTransaction();
         //con = sqlMap.getCurrentConnection();
         con=JDBCLocator.getInstance().getJDBCConnection();
         stmt=con.createStatement();
         res=stmt.executeQuery(sql);
         data=res.getMetaData();
         col=data.getColumnCount();
         for(int i=1;i<=col ;i++){
           cName=data.getColumnName(i);
           ctName=data.getColumnType(i);
           //System.out.println(cName+":"+ctName);
          vc.put(cName,new Integer(ctName));
         }
      }
      catch(SQLException se) {
          System.out.println(se.toString());
      }
      finally{
       try
       {   if(con!=null)
          // sqlMap.endTransaction();
           con.close();
       }
        catch(SQLException se) {
          }
       }



      return vc;
    }
    private Map getParameter(String[] name,String[] value,Hashtable ctype ){
      Map m=new HashMap();

      for(int i=0;i < name.length;i++){
         String key=name[i];
         String kvalue=value[i];
         //System.out.println(key+"--"+kvalue);
         Integer IType=(Integer)ctype.get(key);
         //System.out.println("----:"+IType);
         int iType=Integer.parseInt(IType.toString());
         switch(iType){
           case Types.BIT:case Types.TINYINT:case Types.BIGINT:case Types.LONGVARBINARY:
             if((kvalue==null)||(kvalue.trim()=="")) kvalue="0";
             m.put(key,Double.valueOf(kvalue));
             break;
           case Types.VARBINARY:case Types.BINARY:case Types.LONGVARCHAR:

             break;
           case Types.NULL:
             break;
           case Types.NUMERIC: case Types.DECIMAL:case Types.INTEGER:case Types.SMALLINT:
             if((kvalue==null)||(kvalue.trim()=="")) kvalue="0";
             //System.out.println(key+"---------------"+Double.valueOf(kvalue));
             m.put(key,Double.valueOf(kvalue));
             break;

          case Types.FLOAT:case Types.REAL: case Types.DOUBLE:
            if((kvalue==null)||(kvalue.trim()=="")) kvalue="0";
             m.put(key,Double.valueOf(kvalue));
             break;
          case Types.DATE: case Types.TIME: case Types.TIMESTAMP:
            if((kvalue==null)||(kvalue.trim()=="")) kvalue="1900-01-01";
            m.put(key,DateEx.parseDate(kvalue,"yyyy-MM-dd"));
            break;

         default:
           if((kvalue==null)||(kvalue.trim()=="")) kvalue=" ";
          //System.out.println(key+"-------------"+kvalue);
            m.put(key,new String(kvalue));
             break;
         }
      }
      return m;
    }

    private Param xmlParse(String xml,String enc){

      String lowxml=xml;//xml.toLowerCase();            //转换成小写
      StringReader SR = new StringReader(lowxml);
      String names[]=null;
      String values[]=null;
      Map map=null;
      Vector lab=new Vector();
      Vector val=new Vector();
      //ignore the DTD parse.
      try{
        SAXBuilder builder = new SAXBuilder();
        Document document = builder.build(SR);
        XMLOutputter out = new XMLOutputter();
        out.setEncoding(enc);

        // Get the root element
        Element root = document.getRootElement();

        Element action=root.getChild("action");
        //Element sql=params.getChild("ITEM");                          //只取一个item
        List actions=action.getChildren();
        Iterator i = actions.iterator();
        while (i.hasNext()) {                                           //对每个action
           Element siu = (Element) i.next();                            //取具体的有insert,update
           String tableName=siu.getAttributeValue("tablename");         //操作的表名

           Hashtable tType = getColumeType(tableName) ;

           String label=siu.getAttributeValue("label");                 //xml配置标签-调 用方法的ID
           //System.out.println(label);
           List rows=siu.getChildren() ;
           Iterator j = rows.iterator();
           while(j.hasNext()){                         //对每个action的每同行
              Element row=(Element)j.next();
              int rowlen =  row.getChildren().size();  //每行的长度度,即字段数
              //System.out.println(rowlen);
              names=new String[rowlen];
              values=new String[rowlen];
              List fields=row.getChildren();
              Iterator f=fields.iterator();
              int k=0;
              while(f.hasNext()){
                 Element field=(Element)f.next();
                 names[k]=field.getName().toUpperCase();
                 values[k]=field.getText()==null?" ":field.getText();
                 k++;
              }
              map=getParameter(names,values,tType);
              val.add(map);
              lab.add(label);
           }
           //vector 多个map返回

         }

      }catch(JDOMException je){
        System.out.println("传入的XML造型错误:"+je.toString());
      }
      Param param=new Param();
      param.setLabel(lab);
      param.setValue(val);
      return param;

    }

   public String execute( RequestHelper helper ){
          String xml=helper.getParaXml();

      int oRnt=0;
      //System.out.println(xml);
      Param p=xmlParse(xml,"GBK");
      Vector label=p.getLabel();
      Vector value=p.getValue();
      daoManager.startTransaction();
      try{
        for (int i = 0; i < label.size(); i++) {
          String tag = (String) label.elementAt(i);
          Map para = (Map) value.elementAt(i);
          if (tag.indexOf("nsert") > 0) {
            oRnt = insertPopular(tag, para);

          }
          else {if(tag.indexOf("elete")>0){
              oRnt=deletePopular(tag, para);
            }else{
              oRnt = updatePopular(tag, para);
            }
          }
        }

           daoManager.commitTransaction();
      }catch(Exception e){
        daoManager.endTransaction();
        String error=e.toString();
        //error=error.substring(error.indexOf("ORA"),error.length());
        System.out.println(error);

      }finally{
        //daoManager.commitTransaction();
      }
      return String.valueOf("<root>"+oRnt+"</root>");

    }
   protected String getCode(String code){
      String res="";
      List li=selectFileAbstrcol("selectfileabstrcode",code);
      if(li.size()>0){
          HashMap ha=(HashMap)li.get(0);
          res=(String)ha.get("CODE");
      }
      return res;
   }

   protected String getTranno(){
       String res="";
      List li=selectFileAbstrcol("selectno","f");

      if(li.size()>0){
          HashMap ha=(HashMap)li.get(0);


          res=ha.get("ID").toString();
      }
      return res;


   }
   protected double getLeve(String code){
      double res=-1;
      List li=selectFileAbstrcol("selectfileabstrmaxleve",code);
      if(li.size()>0){
          HashMap ha=(HashMap)li.get(0);

          //System.out.println();
          res=Double.parseDouble(ha.get("LEVE").toString());

      }
      return res;
   }

/*
   public int currencySaveFile(String type,String id,String cname,String author,String operid,String tpayerid,String title,
                               String doc,String abstr,String describe, FileInputStream filedoc){
     int ret=0;
     int leve=0;
     String no="";
     daoManager.startTransaction();
     String c=getCode(id);
     if(c.trim().equalsIgnoreCase("")){
        throw new RuntimeException("分类ID还没有建立,请维护ID!");

     }

     leve=getLeve(id);
     HashMap m=new HashMap();
     m.put("LEVE",new Integer(leve));
     no=getTranno();


     GZDAfileAbstrVO gzdavo=new GZDAfileAbstrVO();
     gzdavo.setABSTR(abstr);
     gzdavo.setAUTHOR(author);
     gzdavo.setCODE(id+"X");
     gzdavo.setDESCTIBE(describe);
     gzdavo.setDOC(doc);
     gzdavo.setFILESTATUE("0");    //0---自己
     gzdavo.setFILETYPE("1");      //1---是否叶子?
     gzdavo.setLEVE(leve);
     gzdavo.setNAME(cname);
     gzdavo.setOPERID(operid);
     gzdavo.setTITLE(title);
     gzdavo.setTPAYERID(tpayerid);
     gzdavo.setTRANNO(no);
     gzdavo.setTYPE(type);
     gzdavo.setURL(no);

     try{

         daoManager.commitTransaction();
         int st=updatePopular("updatefdnext",m);
         st=insertFileAbstrt("insertfileabstri",gzdavo);
         OracleBlobParseBLH oc=new OracleBlobParseBLH();
         oc.saveblob(no,filedoc);
     }catch(Exception e){
       System.out.println(e.toString());
       daoManager.endTransaction();
     }
     return ret ;
   }
   */
   public int save( String xml ){
      int oRnt=0;
      //System.out.println(xml);
      Param p=xmlParse(xml,"GBK");
      Vector label=p.getLabel();
      Vector value=p.getValue();
      daoManager.startTransaction();
      try{
        for (int i = 0; i < label.size(); i++) {
          String tag = (String) label.elementAt(i);
          Map para = (Map) value.elementAt(i);
          if (tag.indexOf("nsert") > 0) {
            oRnt = insertPopular(tag, para);

          }
          else {if(tag.indexOf("elete")>0){
              oRnt=deletePopular(tag, para);
            }else{
              oRnt = updatePopular(tag, para);
            }
          }
        }

           daoManager.commitTransaction();
      }catch(Exception e){
        daoManager.endTransaction();
        String error=e.toString();
        //error=error.substring(error.indexOf("ORA"),error.length());
        System.out.println(error);

      }finally{
        //daoManager.commitTransaction();
      }
      return oRnt;

   }

   protected ResponseEvent validateData(RequestEvent req) throws
           Exception {
       return null;
   }

   protected ResponseEvent performTask(RequestEvent req) throws
       TaxBaseBizException, TaxBaseSystemException {

   String dealMethod = req.getDealMethod();
   ResponseEvent resEvn = new ResponseEvent();
    return resEvn;
   }

  public static void main(String[] args) {
          String xml="<?xml version='1.0' encoding='GBK'?>"+
  "<root>"+
  "<action>"+
  //"<update tablename='T_GZDA_FILEMANAGERABSTR' label='updatefdnext'>"+
  //"<rows>"+
  //  "<leve>4</leve>"+
  // "</rows>"+
 // "</update>"+
   "<insert tablename='T_GZDA_FILEMANAGERABSTR' label='insertfileabstr'>"+
     "<rows>"+
     "<CODE>12</CODE>"+
     "<NAME>nn</NAME>"+
     "<OPERID>123</OPERID>"+
     "<FILETYPE>1</FILETYPE>"+
     "<TYPE>doc</TYPE>"+
     "<URL>2344</URL>"+
     "<FILESTATUE>0</FILESTATUE>"+
     "<CREATEDATE>2002-02-02</CREATEDATE>"+
     "<AUTHOR>贺启欧</AUTHOR>"+
     "<TITLE>aaaaa</TITLE>"+
     "<ABSTR>sssss</ABSTR>"+
     "<DOC>ddd</DOC>"+
     "<DESCTIBE>ffff</DESCTIBE>"+
     "<LEVE>4</LEVE>"+
     "<TRANNO>12347</TRANNO>"+
     "<TPAYERID>1234EE</TPAYERID>"+
             "</rows>"+

   "</insert>"+

  "</action>"+
"</root>";
          GZDAcurrencySaveBLH save=new GZDAcurrencySaveBLH();
          int rt=0;
          //rt=save.save(xml);
          //List la=save.selectFileAbstrcol("selectfileabstrmaxleve","gh");
          //HashMap ha=(HashMap)la.get(0);
          System.out.println(save.getTranno());
  }



   class Param{
      private Vector rowLabel;
      private Vector valueMap;
      public void setLabel(Vector rowLabel){
        this.rowLabel=rowLabel;
      }
      public void setValue(Vector valueMap){
        this.valueMap=valueMap;
      }
      public Vector getLabel(){
        return this.rowLabel;
      }

      public Vector getValue(){
       return this.valueMap;
      }
   }
}

⌨️ 快捷键说明

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