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

📄 wdscyhsxxdao.java

📁 以前做的一个j2ee的项目
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package gov.gdlt.ssgly.taxcore.taxdao.wdsc;

//import gov.gdlt.ssgly.taxcore.comm.servicelocator.SqlMapLocator;
import java.math.*;
import java.sql.*;
import java.util.*;
import java.util.Date;

import gov.gdlt.ssgly.taxcore.comm.dao.*;
import gov.gdlt.ssgly.taxcore.comm.servicelocator.*;
import gov.gdlt.ssgly.taxcore.taxblh.wdsc.*;
import gov.gdlt.ssgly.taxcore.taxblh.wdsc.yhswdsc.*;

/**
 * <p>Title: </p>
 *
 * <p>Description: 广东地税税收管理员工作平台</p>
 *
 * <p>Copyright: Copyright (c) 2005 广东省地方税务局,广州市地方税务局</p>
 *
 * <p>Company: 广州地税</p>
 * 一户式信息
 * @author 张承华
 * @version 1.0
 */
public class WDSCyhsxxDAO extends BaseDataAccessObject {
    public WDSCyhsxxDAO() {
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    //String STR_NSRNBM = "nsrnbm"; //纳税人内部码关键字
    private double ZBSJ_XH;
    private double NSRNBM;
    private String ZB_DM;
    private String ZBZ;
    private Date LR_SJ;
    private String LRRY_DM;
    private String SJLY;
    private double HH;

    private String m_mbbm;
    private String m_czybm;
    private String m_swjg;
    private String m_wdsm;
    private Connection m_conn;
    public void setZBSJ_XH(double n) {
        ZBSJ_XH = n;
    }

    private double getZBSJ_XH() {
        return ZBSJ_XH;
    }

    public void setNSRNBM(double n) {
        NSRNBM = n;
    }

    public double getNSRNBM() {
        return NSRNBM;
    }

    public void setZB_DM(String s) {
        ZB_DM = s;
    }

    public String getZB_DM() {
        return ZB_DM;
    }

    public void setZBZ(String s) {
        ZBZ = s;
    }

    public String getZBZ() {
        return ZBZ;
    }

    public void setLR_SJ(Date d) {
        LR_SJ = d;
    }

    public Date getLR_SJ() {
        return LR_SJ;
    }

    public void setLRRY_DM(String s) {
        LRRY_DM = s;
    }

    public String getLRRY_DM() {
        return LRRY_DM;
    }

    public void setSJLY(String s) {
        SJLY = s;
    }

    public String getSJLY() {
        return SJLY;
    }

    public void setHH(double n) {
        HH = n;
    }

    public double getHH() {
        return HH;
    }

    public List getYhsxxByAll() throws Exception {
        List list = new Vector();
        Connection conn = null;
        try {
            conn = JDBCLocator.getInstance().getJDBCConnection();
            Statement stmt = conn.createStatement();
            String sql = "SELECT NSRNBM, ZB_DM, ZBZ, LR_SJ, LRRY_DM, SJLY, HH " +
                         " FROM T_ZBGL_ZBSJ " +
                         " WHERE HH>0 ORDER BY NSRNBM, ZB_DM, HH ";
            System.out.println(sql);
            ResultSet rs = stmt.executeQuery(sql);
            WDSCyhsxxDAO yhsxx = null;
            while (rs.next()) {
                yhsxx = new WDSCyhsxxDAO();

                yhsxx.setNSRNBM(rs.getDouble("NSRNBM"));
                yhsxx.setZB_DM(rs.getString("ZB_DM"));
                yhsxx.setZBZ(rs.getString("ZBZ"));
                yhsxx.setLR_SJ(rs.getDate("LR_SJ"));
                yhsxx.setLRRY_DM(rs.getString("LRRY_DM"));
                yhsxx.setSJLY(rs.getString("SJLY"));
                yhsxx.setHH(rs.getDouble("HH"));

                list.add(yhsxx);
            }
            rs.close();
            stmt.close();

        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception("YCWDSC21012"); //获取纳税人指标信息(所有)失败e.getMessage());
        } finally {
            conn.close();
        }

        return list;
    }


    //取出所有数据返回(不加工)
    public List getYhsxxByList(int begin, int end) throws Exception {
        Vector vector = new Vector();
        boolean B = true;
        List list = new Vector();//new ArrayList();

        Connection conn = null;
        try {
            conn = JDBCLocator.getInstance().getJDBCConnection();
            Statement stmt = conn.createStatement();
            String sql =
                    "SELECT A.NSRNBM, A.ZB_DM, A.ZBZ, A.LR_SJ,A.LRRY_DM, A.SJLY, A.HH " +
                    " FROM T_ZBGL_ZBSJ A, T_WDSC_ETL_LST B " + //T_ZBGL_ETL_LST B " +
                    " WHERE A.NSRNBM = B.NSRNBM " + //and rownum<30000
                    " ORDER BY B.NSRNBM, A.ZB_DM, A.HH ";

            sql =
                    "SELECT A.NSRNBM, A.ZB_DM, A.ZBZ, A.LR_SJ,A.LRRY_DM, A.SJLY, A.HH " +
                    " FROM (SELECT ROWNUM BROWNUM,NSRNBM FROM db_ssgly.T_WDSC_ETL_LST ORDER BY NSRNBM) B, db_ssgly.T_ZBGL_ZBSJ A " + //--_ZBGL_ETL_LST B
                    " WHERE B.NSRNBM = A.NSRNBM AND B.BROWNUM >= " +
                    String.valueOf(begin) + " AND B.BROWNUM <= " +
                    String.valueOf(end) +
                    " AND A.ZB_DM IS NOT NULL AND HH>0 " +
                    " ORDER BY B.NSRNBM, A.ZB_DM, A.HH ";

            System.out.println(sql);
            long t_s = Calendar.getInstance().getTimeInMillis();
            ResultSet rs = stmt.executeQuery(sql);
            long t_e = Calendar.getInstance().getTimeInMillis();
            System.out.println("取数耗时:"+String.valueOf(t_e - t_s));
            ////////////////////////////
            //数据库取数
            double yhsxxNsrnbm = 0, yhsxxHh = 0;//纳税人内部码,行号
            String yhsxxZbdm = "";//指标代码
            String yhsxxZbz = "";//指标值

            //临时变量
            Hashtable map = null;//存放纳税人 内部码 和 指标信息
            int hh = 0, iTemp = 0, iMsg = 0;//计数器
            double dNsrnbm = 0, oldNsrnbm = 0, dHh = 0;
            String sZb = "", sZbz = "", oldZb = "";//指标代码指标值
            Vector vZbMsg = null;//指标值存放
            BigDecimal bg = null;
            ////////////////////////////
            t_s = Calendar.getInstance().getTimeInMillis();

            long total = 0, t_ss = 0, t_ee = 0;
            WDSCyhsxxDAO yhsxx = null;
            while (rs.next()) {
                t_ss = Calendar.getInstance().getTimeInMillis();
                if (B) {
                    yhsxx = new WDSCyhsxxDAO();
                    yhsxx.setNSRNBM(rs.getDouble("NSRNBM"));
                    yhsxx.setZB_DM(rs.getString("ZB_DM"));
                    yhsxx.setZBZ(rs.getString("ZBZ"));
                    yhsxx.setHH(rs.getDouble("HH"));
                    list.add(yhsxx);
                } else {
                    yhsxxNsrnbm = rs.getDouble("NSRNBM");
                    yhsxxZbdm = rs.getString("ZB_DM");
                    yhsxxZbz = rs.getString("ZBZ");
                    yhsxxHh = rs.getDouble("HH");

                    dNsrnbm = yhsxxNsrnbm;

                    sZb = yhsxxZbdm;
                    sZbz = yhsxxZbz;
                    sZbz = ((sZbz == null) ? "" : sZbz.trim());
                    if (dNsrnbm != oldNsrnbm) { //下一个纳税人一户式信息
                        if (map != null) {
                            map.put(oldZb, vZbMsg);
                            vector.add(map);
                        }
                        oldNsrnbm = dNsrnbm;
                        map = new Hashtable();
                        oldZb = sZb;
                        bg = new BigDecimal(dNsrnbm);
                        map.put(WDSCconstant.NSRNBM, bg.toString());

                        vZbMsg = new Vector();
                        dHh = yhsxxHh;
                        iTemp = new Double(dHh).intValue() - 1;
                        for (hh = 0; hh < iTemp; hh++) {
                            vZbMsg.add("&nbsp;");
                        }
                        vZbMsg.add(sZbz.equals("") ? "&nbsp;" : sZbz);
                    } else {
                        if (sZb.equals(oldZb)) { //同一个纳税人信息的同一个指标信息
                            dHh = yhsxxHh;
                            iTemp = new Double(dHh).intValue() - 1;
                            iMsg = vZbMsg.size();
                            for (hh = iMsg; hh < iTemp; hh++) {
                                vZbMsg.add("&nbsp;");
                            }
                            vZbMsg.add(sZbz.equals("") ? "&nbsp;" : sZbz);
                        } else { //同一个纳税人信息的不同指标信息
                            map.put(oldZb, vZbMsg);

                            vZbMsg = new Vector();
                            dHh = yhsxxHh;
                            iTemp = new Double(dHh).intValue() - 1;
                            for (hh = 0; hh < iTemp; hh++) {
                                vZbMsg.add("&nbsp;");
                            }
                            vZbMsg.add(sZbz.equals("") ? "&nbsp;" : sZbz);
                            oldZb = sZb;
                        }
                    }
                }
                t_ee = Calendar.getInstance().getTimeInMillis();
                total += t_ee - t_ss;
            }
            if (!B) {
                //增加最后数据到v中
                if (map != null) {
                    map.put(sZb, vZbMsg);
                    vector.add(map);
                }
            }
            t_e = Calendar.getInstance().getTimeInMillis();
            System.out.println("加工数据耗时:"+String.valueOf(t_e - t_s) + ", 其中:" + String.valueOf(total));


            rs.close();
            stmt.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception("YCWDSC21013"); //获取纳税人指标信息(通过列表)失败e.getMessage());
        } finally {
            conn.close();
        }
        if (B) {
            return list;
        } else {
            return vector;
        }
    }

    //取出数据后直接加工,取一条加工一条
    public Vector getYhsxxByList(int begin, int end, String nyr) throws Exception {
        Vector vector = new Vector(), vThread = null;//new Vector();
        Connection conn = null;
        int part = 100, everyPart = 1, count = 0;
        String threadName[] = null;

        try {
            try {
                conn = JDBCLocator.getInstance().getJDBCConnection();
                if (conn == null) conn = m_conn;
            } catch (Exception e) {
                conn = m_conn;
            }
            PreparedStatement preStmt = null;
            String sql =
                    "SELECT A.NSRNBM, A.ZB_DM, A.ZBZ, A.LR_SJ,A.LRRY_DM, A.SJLY, A.HH " +
                    " FROM T_ZBGL_ZBSJ A, T_WDSC_ETL_LST B " + //T_ZBGL_ETL_LST B " +
                    " WHERE A.NSRNBM = B.NSRNBM " + //and rownum<30000
                    " ORDER BY B.NSRNBM, A.ZB_DM, A.HH ";
            if (WDSCconstant.boolBatchProcess) {
                try {
                    deleteSomeWd(conn, begin, end);
                    count = insertSomeWd(conn, begin, end, nyr);
                } catch (SQLException e) {
                    System.out.println("删除或插入数据失败!" + e.getMessage());
                    throw new SQLException(e.getMessage());
                }
            } else {
                if (WDSCconstant.boolMultiThread) {
                    sql = " SELECT count(*) FROM (SELECT ROWNUM BROWNUM,NSRNBM FROM db_ssgly.T_WDSC_ETL_LST ORDER BY NSRNBM) B " +
                          " WHERE B.BROWNUM >=? AND B.BROWNUM <=? ";
                    preStmt = conn.prepareStatement(sql);
                    preStmt.setInt(1, begin);
                    preStmt.setInt(2, end);
                    ResultSet rs = preStmt.executeQuery();
                    if (rs.next()) {
                        count = rs.getInt(1);
                    }
                    rs.close();
                    preStmt.close();
                }
            }


            if (WDSCconstant.boolMultiThread) {
                long thread_b = 0;
                //通过线程取数,等分成part(10)
                thread_b = Calendar.getInstance().getTimeInMillis();
                //everyPart = (end - begin + 1) / part;
                everyPart = (count) / part;
                if ((count % part) > 0) everyPart = everyPart + 1;
                //threadBeginEnd = new int[everyPart][2];
                threadName = new String[everyPart];
                WDSCyhsxxThread yhsxxThread = null; //new WDSCyhsxxThread[everyPart];
                vThread = new Vector(everyPart);
                for (int i = 0; i < everyPart; i++) {
                    threadName[i] = "getYhsxxThread" + String.valueOf(i);
                    yhsxxThread = new WDSCyhsxxThread();
                    yhsxxThread.setBegin(begin + part * i);
                    yhsxxThread.setM_conn(conn);
                    yhsxxThread.setEnd(begin + part * (i + 1) - 1);
                    yhsxxThread.setSTR_NSRNBM(WDSCconstant.NSRNBM);
                    yhsxxThread.setThreadName("getYhsxxThread" +
                                              String.valueOf(i));
                    yhsxxThread.start();
                    vThread.add(yhsxxThread);
                }
                WDSCmonitorThread monitorThread = new WDSCmonitorThread(vThread);
                vector = monitorThread.getVectorData();
                long thread_e = Calendar.getInstance().getTimeInMillis();
                System.out.println("get data by thread spend time:" +
                                   String.valueOf(thread_e - thread_b) +
                                   " vector size=" +
                                   String.valueOf(vector.size()));
                if (true) return vector;

⌨️ 快捷键说明

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