ITPub博客

首页 > Linux操作系统 > Linux操作系统 > jsp中调用存储过程

jsp中调用存储过程

原创 Linux操作系统 作者:zhouwf0726 时间:2019-07-13 09:21:06 0 删除 编辑

<%@ page import="oracle.jdbc.driver.OracleTypes" %>
<%@ page import="oracle.jdbc.driver.OracleConnection" %>
<%@ page import="java.sql.*,
java.sql.Connection,
java.sql.Statement,
java.sql.ResultSet,
java.util.Properties,
java.util.*,
java.io.*,
weblogic.common.*,
java.lang.*;"
%>
<%
....

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn =DriverManager.getConnection("jdbc:oracle:thin:@server","user","password");
call=conn.prepareCall("{ call p_test(?) }");
call.registerOutParameter(1, OracleTypes.CURSOR);
call.execute();
rs=(ResultSet)call.getObject(1);
ResultSetMetaData rmeta = rs.getMetaData();//
numColumns=rmeta.getColumnCount();
for(int i=1;i<=numColumns;i++)
{
if(i< numColumns)
out.print(rmeta.getColumnName(i)+" | ");
else
out.println(rmeta.getColumnName(i));
}

while(rs.next())
{
for(int i=1;i<=numColumns;i++)
{
out.print(" " + rs.getString(1)+ " |
");
}
}
}
catch(Exception e)
{
e.printStackTrace();
}

....
%>

/*
*

Title:地税核心征管系统--税费管理


*

Copyright: (C) 2003-2004 地方税务局,科技股份有限公司,版权所有.


*

Company: 科技股份有限公司


*/
package com.ttsoft.bjtax.sfgl.sydj.fdcdj.fdcsycx.processor;

import com.ttsoft.framework.processor.Processor;
import com.ttsoft.framework.util.VOPackage;
import com.ttsoft.bjtax.sfgl.sydj.fdcdj.fdcsycx.web.WebConstantKey;
import com.ttsoft.framework.exception.BaseException;
import java.util.List;
import java.util.ArrayList;
import com.ttsoft.bjtax.sfgl.sydj.fdcdj.fdcsycx.web.FdcsycxActionForm;
import java.sql.Connection;
import com.ttsoft.bjtax.sfgl.common.db.util.SfDBUtils;
import com.ttsoft.bjtax.sfgl.common.db.util.SfDBResource;
import com.ttsoft.bjtax.sfgl.sydj.fdcdj.util.FdcDao;
import com.ttsoft.framework.exception.ApplicationException;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.ttsoft.bjtax.sfgl.sydj.fdcdj.fdcsycx.processor.helper.ProcessHelper;
import java.sql.CallableStatement;
import oracle.jdbc.OracleTypes;
import com.ttsoft.bjtax.sfgl.sydj.fdcdj.fdcsycx.util.FdcsycxUtil;
import com.ttsoft.bjtax.sfgl.sydj.fdcdj.fdcsycx.processor.helper.GlebeInfo;
import com.ttsoft.bjtax.sfgl.sydj.fdcdj.util.CodeTableUtil;

/**
*

Title:地税核心征管系统--税费管理


*

Description: 房地产税源登记情况查询 FdcsycxProcessor


* @author
* @version 1.0
*/
public class FdcsycxProcessor
implements Processor {

public FdcsycxProcessor() {
}
/**
* processor数据处理
* @param vo @see com.ttsoft.framework.util.VOPackage 数据操作参数
* @return Object 查询结果
* @throws BaseException 抛出应用异常
*/
public Object process(VOPackage vo) throws
BaseException {

if ( vo == null ) {
throw new NullPointerException();
}

switch (vo.getAction()) {

// 房地产税源登记情况查询
case WebConstantKey.QUERY_REG_STATE:
return doQueryDJQKCX(vo);

// 房地产税源变更登记-政策性减免情况查询
case WebConstantKey.QUERY_DERATE:
return doQueryJMQKCX(vo);

// 房地产税源登记情况统计查询
case WebConstantKey.QUERY_REG_STAT:
return doQueryDJQKTJCX(vo);

// 房地产税源变更登记-政策性减免情况统计查询
case WebConstantKey.QUERY_DERATE_STAT:
return doQueryJMQKTJCX(vo);

default:
throw new UnsupportedOperationException(
"Method process() not yet implemented.");
}
}
/**
* 执行房地产税源登记情况查询
* @param vo @see com.ttsoft.framework.util.VOPackage 数据操作参数
* @return Object 查询结果
* @throws BaseException 抛出应用异常
*/
public Object doQueryDJQKCX(VOPackage vo) throws
BaseException {

CallableStatement cstemt = null;
Fdcsycx fBean = (Fdcsycx) vo.getData();
Connection conn = null;
SfDBUtils sfDB = null;
ResultSet rs = null;
List dataList = new ArrayList();
// 总的记录数
int row = 0;

// 每页要显示的记录数
int pr = fBean.getPaginalRecord();

try {
conn = SfDBResource.getConnection();
cstemt = conn.prepareCall(
"{call SFDB.PRO_SFGL_FDCSYZCXDJMX(?,?,?,?,?,?,?,?,?,?,?)}");

// 纳税人的计算机代码
cstemt.setString(1, fBean.getJsjdm());
// 纳税人的纳税人名称
cstemt.setString(2, fBean.getNsrmc());
// 查询条件税务机关组织机构代码
if ( !FdcsycxUtil.isNull(fBean.getZgsws()) ) {
cstemt.setString(3, fBean.getZgsws());
} else {
cstemt.setString(3, fBean.getQxfj());
}
// 查询条件,表示登记或变更:1是登记,2是变更
cstemt.setString(4, fBean.getCxlx());
// 查询条件,变更类型
cstemt.setString(5, fBean.getBglx());
// 查询条件,查询开始日期
cstemt.setString(6, fBean.getSydjsjdq());
// 查询条件,查询结束日期
cstemt.setString(7, fBean.getSydjsjdz());
// 查询条件,税源登记状态
cstemt.setString(8, fBean.getSydjzt());
// 查询条件,查询开始的rownum
cstemt.setString(9, String.valueOf(fBean.getPageNum() * pr - (pr - 1)));
// 查询条件,查询结束的rownum
cstemt.setString(10, String.valueOf(fBean.getPageNum() * pr));

cstemt.registerOutParameter(11, OracleTypes.CURSOR);

//执行存储过程
cstemt.execute();
//获取查询结果
rs = (ResultSet) cstemt.getObject(11);

while ( rs.next() ) {
Sydjqkcx s = new Sydjqkcx();

// 总记录数
row = rs.getInt("ZJLS");
// 计算机代码
s.setJsjdm(rs.getString("JSJDM"));
// 区县分局
s.setQxfj(rs.getString("QXFJ"));
// 纳税人名称
s.setNsrmc(rs.getString("NSRMC"));
// 主管税务所
s.setZgsws(rs.getString("ZGSWS"));
// 应税房产原值总额
s.setYsfcyzze(rs.getString("FCYZ11"));
// 税务机关估值总额
s.setSwjggjze(rs.getString("FCGZ12"));
// 法定免税房产原值总额
s.setFdmsfcyzze(rs.getString("FCYZ21"));
// 年应纳房产税(城市房地产税)税额
s.setNynfcsze(rs.getString("NYNFCS"));
// 年应纳城镇土地使用税税额
s.setNyncztdsysse(rs.getString("NYNTDS"));
// 本年度应纳房产税(城市房地产税)税额
s.setBndynfcsse(rs.getString("BNDFCS"));
// 本年度应纳城镇土地使用税税额
s.setBndyncztdsysse(rs.getString("BNDTDS"));

// 一级土地应税面积
s.setTdysmj1(rs.getString("JG11"));
// 二级土地应税面积
s.setTdysmj2(rs.getString("JG12"));
// 三级土地应税面积
s.setTdysmj3(rs.getString("JG13"));
// 四级土地应税面积
s.setTdysmj4(rs.getString("JG14"));
// 五级土地应税面积
s.setTdysmj5(rs.getString("JG15"));
// 六级土地应税面积
s.setTdysmj6(rs.getString("JG16"));

// 一级土地法定减免面积
s.setTdfdjmmj1(rs.getString("JG21"));
// 二级土地法定减免面积
s.setTdfdjmmj2(rs.getString("JG22"));
// 三级土地法定减免面积
s.setTdfdjmmj3(rs.getString("JG23"));
// 四级土地法定减免面积
s.setTdfdjmmj4(rs.getString("JG24"));
// 五级土地法定减免面积
s.setTdfdjmmj5(rs.getString("JG25"));
// 六级土地法定减免面积
s.setTdfdjmmj6(rs.getString("JG26"));

// 一级土地面积合计
s.setTdhjmj1(rs.getString("JG31"));
// 二级土地面积合计
s.setTdhjmj2(rs.getString("JG32"));
// 三级土地面积合计
s.setTdhjmj3(rs.getString("JG33"));
// 四级土地面积合计
s.setTdhjmj4(rs.getString("JG34"));
// 五级土地面积合计
s.setTdhjmj5(rs.getString("JG35"));
// 六级土地面积合计
s.setTdhjmj6(rs.getString("JG36"));

// 计算应税土地面积合计
s.setTdysmjhj(
ProcessHelper.countTdmj(
s.getTdysmj1()
, s.getTdysmj2()
, s.getTdysmj3()
, s.getTdysmj4()
, s.getTdysmj5()
, s.getTdysmj6()));

// 计算法定减免土地面结合计
s.setTdjmmjhj(
ProcessHelper.countTdmj(
s.getTdfdjmmj1()
, s.getTdfdjmmj2()
, s.getTdfdjmmj3()
, s.getTdfdjmmj4()
, s.getTdfdjmmj5()
, s.getTdfdjmmj6()));

// 计算土地面积总计
s.setTdmjhj(
ProcessHelper.countTdmj(s.getTdysmjhj(), s.getTdjmmjhj()));

// 计算房产原值总额
s.setFcyzze(
ProcessHelper.countTdmj(s.getYsfcyzze(), s.getFdmsfcyzze()));

dataList.add(s);
}
}
catch (SQLException ex) {
ex.printStackTrace();
throw new ApplicationException("房地产税源登记情况查询错误!"
+ ex.getMessage());
}
catch (Exception ex) {
throw new ApplicationException("房地产税源登记情况查询错误!");
}
finally {
SfDBResource.freeConnection(conn);
try {
if (cstemt != null) {
cstemt.close();
}
if (rs != null) {
rs.close();
}
}
catch (Exception ex) {}
}

FdcscxBO fb = new FdcscxBO();
fb.setFdccxList(dataList);
fb.setRow(row);

return fb;
}
/**
* 房地产税源变更登记-政策性减免情况查询
* @param vo @see com.ttsoft.framework.util.VOPackage 数据操作参数
* @return Object 查询结果
* @throws BaseException 抛出应用异常
*/
public Object doQueryJMQKCX(VOPackage vo) throws
BaseException {

Fdcsycx fBean = (Fdcsycx) vo.getData();
Connection conn = null;
SfDBUtils sfDB = null;
// 查询结果集
List dataList = new ArrayList();
// 总的记录数
int row = 0;
try {
conn = SfDBResource.getConnection();
// 获取数据操作
FdcDao da = new FdcDao(conn);
ResultSet countRs = da.querySQL(ProcessHelper.getJmqkcxSql(fBean));
if (countRs.next()) {
row = countRs.getInt("COUNTROW");
ResultSet rs = da.querySQL(
ProcessHelper.getJmqkcxSql(
fBean
, fBean.getPageNum()));

while (rs.next()) {
Zcxjmqkcx s = new Zcxjmqkcx();

s.setJsjdm(rs.getString("JSJDM"));
s.setNsrmc(rs.getString("NSRMC"));
s.setQxfj(rs.getString("QXFJ"));
s.setZgsws(rs.getString("SWS"));
// 政策性减免房产原值
s.setJmyz(FdcsycxUtil.nullToZero(rs.getString("FCYZ")));
// 政策性减免房产税务机关估值
s.setJmgz(FdcsycxUtil.nullToZero(rs.getString("FCGZ")));

// 一级土地法定减免面积 ~ 六级土地法定减免面积
s.setTdjmmj1(FdcsycxUtil.nullToZero(rs.getString("TDONE")));
s.setTdjmmj2(FdcsycxUtil.nullToZero(rs.getString("TDTWO")));
s.setTdjmmj3(FdcsycxUtil.nullToZero(rs.getString("TDTHREE")));
s.setTdjmmj4(FdcsycxUtil.nullToZero(rs.getString("TDFOUR")));
s.setTdjmmj5(FdcsycxUtil.nullToZero(rs.getString("TDFIVE")));
s.setTdjmmj6(FdcsycxUtil.nullToZero(rs.getString("TDSIX")));

// 计算减免土地面积合计
s.setTotalize(
ProcessHelper.countTdmj(
s.getTdjmmj1()
, s.getTdjmmj2()
, s.getTdjmmj3()
, s.getTdjmmj4()
, s.getTdjmmj5()
, s.getTdjmmj6()));

dataList.add(s);
}
}
}
catch (BaseException ex) {
ex.printStackTrace();
throw new ApplicationException("房地产税源登记情况查询错误!");
}
catch (SQLException sqle) {
sqle.printStackTrace();
throw new ApplicationException("房地产税源登记情况查询错误!");
}
finally {
SfDBResource.freeConnection(conn);
}

FdcscxBO fb = new FdcscxBO();
fb.setFdccxList(dataList);
fb.setRow(row);

return fb;
}
/**
* 房地产税源登记情况统计查询
* @param vo @see com.ttsoft.framework.util.VOPackage 数据操作参数
* @return Object 查询结果
* @throws BaseException 抛出应用异常
*/
public Object doQueryDJQKTJCX(VOPackage vo) throws
BaseException {

Fdcsycx fBean = (Fdcsycx) vo.getData();
Connection conn = null;
SfDBUtils sfDB = null;
Sydjqkcx fdcQuery = ProcessHelper.initSydjqkcx(new Sydjqkcx());

try {
conn = SfDBResource.getConnection();
//获取数据操作
FdcDao da = new FdcDao(conn);

ResultSet zhsRs = da.querySQL(
ProcessHelper.getDjqktjcxZhs(fBean));

if ( zhsRs.next() ) {
// 总户数
fdcQuery.setZhs(zhsRs.getString("ZHS"));
}

// 当总户数为零时,不进行后续处理
if ( !fdcQuery.getZhs().equals("0") ) {
// 土地面积列表
List glebeList = new ArrayList();
ResultSet glebeRs = da.querySQL(ProcessHelper.getDjqktjcxTdmj(fBean));

// 取得土地面积
while ( glebeRs.next() ) {
GlebeInfo gi = new GlebeInfo();

gi.setGlebeValue(glebeRs.getString("VAL"));
gi.setGlebeGrade(glebeRs.getString("SZ"));
gi.setGlebeType(glebeRs.getString("BG"));

glebeList.add(gi);
}

// 取得土地面积
for ( int i = 0, n = glebeList.size(); i < n; i++ ) {
GlebeInfo gi = (GlebeInfo)glebeList.get(i);

if ( gi.getGlebeGrade().equals("120010") ) {
// 房产(应税/减免)原值
if ( gi.getGlebeType().equals("1") ) {
fdcQuery.setYsfcyzze(gi.getGlebeValue());
} else {
fdcQuery.setFdmsfcyzze(gi.getGlebeValue());
}
} else if ( gi.getGlebeGrade().equals("120020") ) {
// 税务机关估值总额
if ( gi.getGlebeType().equals("1") ) {
fdcQuery.setSwjggjze(gi.getGlebeValue());
}
} else if ( gi.getGlebeGrade().equals("150010") ) {
// 一级(应税/减免)土地面积
if ( gi.getGlebeType().equals("1") ) {
fdcQuery.setTdysmj1(gi.getGlebeValue());
} else {
fdcQuery.setTdfdjmmj1(gi.getGlebeValue());
}
} else if ( gi.getGlebeGrade().equals("150020") ) {
// 二级(应税/减免)土地面积
if ( gi.getGlebeType().equals("1") ) {
fdcQuery.setTdysmj2(gi.getGlebeValue());
} else {
fdcQuery.setTdfdjmmj2(gi.getGlebeValue());
}
} else if ( gi.getGlebeGrade().equals("150030") ) {
// 三级(应税/减免)土地面积
if ( gi.getGlebeType().equals("1") ) {
fdcQuery.setTdysmj3(gi.getGlebeValue());
} else {
fdcQuery.setTdfdjmmj3(gi.getGlebeValue());
}
} else if ( gi.getGlebeGrade().equals("150040") ) {
// 四级(应税/减免)土地面积
if ( gi.getGlebeType().equals("1") ) {
fdcQuery.setTdysmj4(gi.getGlebeValue());
} else {
fdcQuery.setTdfdjmmj4(gi.getGlebeValue());
}
} else if ( gi.getGlebeGrade().equals("150050") ) {
// 五级(应税/减免)土地面积
if ( gi.getGlebeType().equals("1") ) {
fdcQuery.setTdysmj5(gi.getGlebeValue());
} else {
fdcQuery.setTdfdjmmj5(gi.getGlebeValue());
}
} else if ( gi.getGlebeGrade().equals("150060") ) {
// 六级(应税/减免)土地面积
if ( gi.getGlebeType().equals("1") ) {
fdcQuery.setTdysmj6(gi.getGlebeValue());
} else {
fdcQuery.setTdfdjmmj6(gi.getGlebeValue());
}
}
}

// 应纳房产税税额
ResultSet fcsseRs = da.querySQL(
ProcessHelper.getFcsse(fBean));

if ( fcsseRs.next() ) {

// 年应纳房产税(城市房地产税)税额
fdcQuery.setNynfcsze(fcsseRs.getString("NYNFCSE"));
// 年应纳城镇土地使用税税额
fdcQuery.setNyncztdsysse(fcsseRs.getString("NYNTDSE"));
// 本年度应纳房产税(城市房地产税)税额
fdcQuery.setBndynfcsse(fcsseRs.getString("BNYNFCSE"));
// 本年度应纳城镇土地使用税税额
fdcQuery.setBndyncztdsysse(fcsseRs.getString("BNYNTDSE"));
}
}
}
catch (BaseException ex) {
ex.printStackTrace();
throw new ApplicationException("房地产税源登记情况统计查询!");
}
catch (SQLException sqle) {
sqle.printStackTrace();
throw new ApplicationException("房地产税源登记情况统计查询!");
}
finally {
SfDBResource.freeConnection(conn);
}

// 计算一级 ~ 六级土地面积小计
fdcQuery.setTdhjmj1(
ProcessHelper.countTdmj(fdcQuery.getTdysmj1(), fdcQuery.getTdfdjmmj1()));
fdcQuery.setTdhjmj2(
ProcessHelper.countTdmj(fdcQuery.getTdysmj2(), fdcQuery.getTdfdjmmj2()));
fdcQuery.setTdhjmj3(
ProcessHelper.countTdmj(fdcQuery.getTdysmj3(), fdcQuery.getTdfdjmmj3()));
fdcQuery.setTdhjmj4(
ProcessHelper.countTdmj(fdcQuery.getTdysmj4(), fdcQuery.getTdfdjmmj4()));
fdcQuery.setTdhjmj5(
ProcessHelper.countTdmj(fdcQuery.getTdysmj5(), fdcQuery.getTdfdjmmj5()));
fdcQuery.setTdhjmj6(
ProcessHelper.countTdmj(fdcQuery.getTdysmj6(), fdcQuery.getTdfdjmmj6()));

// 计算应税土地面积合计
fdcQuery.setTdysmjhj(
ProcessHelper.countTdmj(
fdcQuery.getTdysmj1()
, fdcQuery.getTdysmj2()
, fdcQuery.getTdysmj3()
, fdcQuery.getTdysmj4()
, fdcQuery.getTdysmj5()
, fdcQuery.getTdysmj6()));

// 计算法定减免土地面结合计
fdcQuery.setTdjmmjhj(
ProcessHelper.countTdmj(
fdcQuery.getTdfdjmmj1()
, fdcQuery.getTdfdjmmj2()
, fdcQuery.getTdfdjmmj3()
, fdcQuery.getTdfdjmmj4()
, fdcQuery.getTdfdjmmj5()
, fdcQuery.getTdfdjmmj6()));

// 计算土地面积总计
fdcQuery.setTdmjhj(
ProcessHelper.countTdmj(fdcQuery.getTdysmjhj(), fdcQuery.getTdjmmjhj()));

// 计算房产原值总额
fdcQuery.setFcyzze(
ProcessHelper.countTdmj(fdcQuery.getYsfcyzze(), fdcQuery.getFdmsfcyzze()));

fdcQuery.setQxfj(fBean.getQxfj());
fdcQuery.setZgsws(fBean.getZgsws());

return fdcQuery;
}
/**
* 房地产税源变更登记-政策性减免情况统计查询
* @param vo @see com.ttsoft.framework.util.VOPackage 数据操作参数
* @return Object 查询结果
* @throws BaseException 抛出应用异常
*/
public Object doQueryJMQKTJCX(VOPackage vo) throws
BaseException {

CallableStatement cstemt = null;
Fdcsycx fBean = (Fdcsycx) vo.getData();
Connection conn = null;
SfDBUtils sfDB = null;
ResultSet rs = null;
Fdcjmbgqktjcx fdcQuery = new Fdcjmbgqktjcx();

try {
conn = SfDBResource.getConnection();
cstemt = conn.prepareCall(
"{call SFDB.PRO_SFGL_FDCSYZCXJMTJ(?,?,?,?,?)}");

// 税务机关代码
cstemt.setString(1, fBean.getTaxCode());
// 变更开始日期
cstemt.setString(2, fBean.getSydjsjdq());
// 变更结束日期
cstemt.setString(3, fBean.getSydjsjdz());
// 变更类型
cstemt.setString(4, fBean.getBglx());

cstemt.registerOutParameter(5, OracleTypes.CURSOR);

//执行存储过程
cstemt.execute();
//获取查询结果
rs = (ResultSet) cstemt.getObject(5);

if (rs.next()) {
fdcQuery.setZhs(FdcsycxUtil.nullToZero(rs.getString("ZHS")));
fdcQuery.setTdjmmj1(FdcsycxUtil.nullToZero(rs.getString("ZCJMTD1")));
fdcQuery.setTdjmmj2(FdcsycxUtil.nullToZero(rs.getString("ZCJMTD2")));
fdcQuery.setTdjmmj3(FdcsycxUtil.nullToZero(rs.getString("ZCJMTD3")));
fdcQuery.setTdjmmj4(FdcsycxUtil.nullToZero(rs.getString("ZCJMTD4")));
fdcQuery.setTdjmmj5(FdcsycxUtil.nullToZero(rs.getString("ZCJMTD5")));
fdcQuery.setTdjmmj6(FdcsycxUtil.nullToZero(rs.getString("ZCJMTD6")));
fdcQuery.setJmyz(FdcsycxUtil.nullToZero(rs.getString("ZCJMFCYZ")));
fdcQuery.setJmgz(FdcsycxUtil.nullToZero(rs.getString("ZCJMFCGZ")));
fdcQuery.setTotalize(FdcsycxUtil.nullToZero(rs.getString("ZCJMTDHJ")));
}
}
catch (SQLException ex) {
throw new ApplicationException("房地产税源变更登记-政策性减免情况统计查询"
+ ex.getMessage());
}
catch (Exception ex) {
throw new ApplicationException("房地产税源变更登记-政策性减免情况统计查询");
}
finally {
SfDBResource.freeConnection(conn);
try {
if (cstemt != null) {
cstemt.close();
}
if (rs != null) {
rs.close();
}
}
catch (Exception ex) {}
}

fdcQuery.setQxfj(fBean.getQxfj());
fdcQuery.setZgsws(fBean.getZgsws());

return fdcQuery;
}
}


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/756652/viewspace-242146/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2006-02-22

  • 博文量
    458
  • 访问量
    343199