📄 wdscyhsxxdao.java
字号:
public String getM_mbbm() {
return m_mbbm;
}
public String getM_swjg() {
return m_swjg;
}
public String getM_wdsm() {
return m_wdsm;
}
public Connection getM_conn() {
return m_conn;
}
public void setM_czybm(String m_czybm) {
this.m_czybm = m_czybm;
}
public void setM_mbbm(String m_mbbm) {
this.m_mbbm = m_mbbm;
}
public void setM_swjg(String m_swjg) {
this.m_swjg = m_swjg;
}
public void setM_wdsm(String m_wdsm) {
this.m_wdsm = m_wdsm;
}
public void setM_conn(Connection m_conn) {
this.m_conn = m_conn;
}
/*
//取出数据后直接加工,取一条加工一条
public Vector getYhsxxByList(int begin, int end, String t) throws Exception {
Vector vector = new Vector();
Connection conn = null;
try {
conn = JDBCLocator.getInstance().getJDBCConnection();
PreparedStatement preStmt = conn.prepareStatement("");
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 ";
//PreparedStatement preStmt = conn.prepareStatement();
//从表t_wdsc_wd中删除选中数据
//sql = " DELETE T_WDSC_WD WHERE NSRNBM LIKE '";
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;
while (rs.next()) {
t_ss = Calendar.getInstance().getTimeInMillis();
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(" ");
}
vZbMsg.add(sZbz.equals("") ? " " : 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(" ");
}
vZbMsg.add(sZbz.equals("") ? " " : 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(" ");
}
vZbMsg.add(sZbz.equals("") ? " " : sZbz);
oldZb = sZb;
}
}
t_ee = Calendar.getInstance().getTimeInMillis();
total += t_ee - t_ss;
}
//增加最后数据到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();
}
return vector;
}*/
//取出数据后直接加工,取一条加工一条
public Vector getYhsxxByList_test(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;
} else {
//成批取数据
sql =
//"SELECT A.NSRNBM, A.ZB_DM, A.ZBZ, " +/* A.LR_SJ,A.LRRY_DM, A.SJLY,*/ " A.HH " +
"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 >= ? " +
" AND B.BROWNUM <= ? " +
" AND A.ZB_DM IS NOT NULL AND HH>0 " +
" ORDER BY B.NSRNBM, A.ZB_DM, A.HH ";
preStmt = conn.prepareStatement(sql);
preStmt.setInt(1, begin);
preStmt.setInt(2, end);
System.out.println(sql);
long t_s = Calendar.getInstance().getTimeInMillis();
ResultSet rs = preStmt.executeQuery();
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;
while (rs.next()) {
t_ss = Calendar.getInstance().getTimeInMillis();
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(" ");
}
vZbMsg.add(sZbz.equals("") ? " " : 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(" ");
}
vZbMsg.add(sZbz.equals("") ? " " : 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(" ");
}
vZbMsg.add(sZbz.equals("") ? " " : sZbz);
oldZb = sZb;
}
}
t_ee = Calendar.getInstance().getTimeInMillis();
total += t_ee - t_ss;
}
//增加最后数据到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();
preStmt.close();
}
} catch (Exception e) {
e.printStackTrace();
throw new Exception("YCWDSC21013"); //获取纳税人指标信息(通过列表)失败e.getMessage());
} finally {
if (conn != null) conn.close();
}
return vector;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -