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

📄 contractstatisticdal.java

📁 sso呵呵
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.mdcl.mocha.jlcmcc.contract.dao;

import java.sql.*;
import java.util.*;

import com.mdcl.mocha.jlcmcc.DBconnection.DBConnectionManager;
import com.mdcl.mocha.jlcmcc.contract.bean.ContractQueryBean;
import com.mdcl.mocha.jlcmcc.contract.bean.ContractStatisticBean;
import com.mdcl.mocha.jlcmcc.contract.bean.QueryCondition;
/**
 * <strong>Title : ContractStatisticDAL<br></strong>
 * <strong>Description : 实现合同统计的相关数据访问</strong><br>
 * <strong>Create on : 2007-10-11<br></strong>
 * <p>
 * <strong>Copyright (C) Mocha Software Co.,Ltd.<br></strong>
 * <p>
 * @author wangchl wangchl@mochasoft.com.cn<br>
 * @version <strong>吉林移动BPM一期</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人		修改日期		修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public class ContractStatisticDAL {

	private String conName = "idb";
	//合同查询的 结果结构
	private static String querySqlMain = new StringBuffer().append("SELECT ins.bo_instance_id as INSTANCE, ")
											.append("item1.HETONGBIANHAO, item2.HETONGMINGCHENG, item3.CHENGBANBUMEN, item4.HETONGJINE, item5.SHIYINSHIJIAN ")
											.append("from mocha_bo_instance ins ")
											.append("inner join mocha_document_body doc on doc.document_id = ins.document_id ")
											.append("inner join (")
											.append("SELECT item_value AS \"HETONGBIANHAO\", document_id ")
											.append("FROM mocha_document_content WHERE item_name = 'hetongbianhao') item1 on item1.document_id = doc.document_id ")
											.append("LEFT OUTER JOIN (")
											.append("SELECT item_value AS \"HETONGMINGCHENG\", document_id ")
											.append("FROM mocha_document_content WHERE item_name = 'hetongmingcheng') item2 ON item1.document_id = item2.document_id ")
											.append("LEFT OUTER JOIN (")
											.append("SELECT item_value AS \"CHENGBANBUMEN\", document_id ")
											.append("FROM mocha_document_content WHERE item_name = 'chengbanbumen') item3 ON item1.document_id = item3.document_id " )
											.append("LEFT OUTER JOIN (")
											.append("SELECT item_value AS \"HETONGJINE\", document_id ")
											.append("FROM mocha_document_content WHERE item_name = 'hetongjine') item4 ON item1.document_id = item4.document_id ")
											.append("LEFT OUTER JOIN (")
											.append("SELECT item_value AS \"SHIYINSHIJIAN\", document_id ")
											.append("FROM mocha_document_content WHERE item_name = 'shiyinshijian') item5 ON item1.document_id = item5.document_id ")
											.append("inner join mocha_bo_instance bo on item1.document_id=bo.document_id ")
											.append("inner join mocha_fe_doc_log_0 log on bo.process_id=log.doc_id ")
											.toString();
	//合同统计查询 结构
	private static String statisticSqlMain = new StringBuffer().append("SELECT item1.huobileixing AS \"HETONGLEIXING\", SUM(TO_NUMBER(item2.hetongjine)) AS \"HETONGJINE\", COUNT(*) AS \"HETONGSHULIANG\" ")
										.append("FROM (SELECT item_value AS \"HUOBILEIXING\", document_id ")
										.append("FROM mocha_document_content WHERE item_name = 'huobileixing') item1 ")
										.append("LEFT OUTER JOIN (")
										.append("SELECT item_value AS \"HETONGJINE\", document_id ")
										.append("FROM mocha_document_content WHERE item_name = 'hetongjine') item2 ")
										.append("ON item1.document_id = item2.document_id ")
										.append("inner join mocha_bo_instance bo on item1.document_id=bo.document_id ")
										.append("inner join mocha_fe_doc_log_0 log on bo.process_id=log.doc_id ")
										.toString();

	/**
	 * 方法描述 返回合同统计列表 实现结果集到Object的映射
	 * @param QueryCondition 查询条件 bean
	 * @return List:(ContractStatisticBean)
	 */
	public List retrieveStatisticList(QueryCondition cond){
		if(cond == null ) return null;
//		System.out.println(">>>> ContractStatisticDAL.retrieveStatisticList()");
		List resList = null;
		Connection con = null;
		Statement statement = null;
		ResultSet result;
		try {
			con = this.getConnection();
			statement = con.createStatement();
			//查询字符串
			String sql = statisticSqlMain;
			//扩展条件
			String extSql = buildExtendCondition(cond);
//			System.out.println(">><< MainSQL:" + statisticSqlMain);
//			System.out.println(">><< extSQL:" + extSql);
			if(extSql != null && !"".equals(extSql)){
				sql += extSql +"GROUP BY ITEM1.HUOBILEIXING";
			}
//			System.out.println(">><< SQL:" + sql);

			result = statement.executeQuery(sql);
			int i = 0;
			while(result.next()){
				i++;
				//如果有记录 有第条数据获得时创建 结果集
				if(i>0 && i==1){
//					System.out.println(">>查询数据<< ");
//					System.out.println("|    货币类型    |      合同金额      |      合同数据      |");
					resList = new ArrayList();
				}
				ContractStatisticBean statisticBean = new ContractStatisticBean();
				//设置 Bean 的值
				statisticBean.setMoneyType(result.getString("HETONGLEIXING"));
//				System.out.print("|" + result.getString("HETONGLEIXING"));
				statisticBean.setMoneySum(result.getString("HETONGJINE"));
//				System.out.print("|" + statisticBean.getMoneySum());
				statisticBean.setDocSum(result.getString("HETONGSHULIANG"));
//				System.out.println("|" + statisticBean.getDocSum() + "|");

				//将 Bean 添加到返回的 结果集中
				resList.add(statisticBean);
			}
//			if(resList != null)
//				System.out.println(">><< size " + resList.size());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			//解放资源
			try {
				statement.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			statement = null;
			result = null;
			freeConnection(con);
		}

//		System.out.println("<<<< ContractStatisticDAL.retrieveStatisticList()");
		return resList;
	}

	/**
	 * 方法描述 按印花税类型对合同进行统计
	 * @param QueryCondition 查询条件 bean
	 * @return List:(ContractStatisticBean)
	 */
	public List retrieveStatisticByStamp(String[] stamps, QueryCondition cond){
		if(stamps == null || cond == null) return null;
//		System.out.println(">>>> ContractStatisticDAL.retrieveStatisticList()");
		List resList = null;
		Connection con = null;
		Statement statement = null;
		ResultSet result;
		String sql, extSql;
		try {
			con = this.getConnection();
			statement = con.createStatement();
			//list() itme String 和  ContractStatisticBean
			resList = new ArrayList();
			for(int index=0; index<stamps.length; index++){
				//将印花税类型添加到返回结果
				resList.add(stamps[index]);

				cond.stampType = stamps[index];
				//查询字符串
				sql = statisticSqlMain;
				//扩展条件
				extSql = buildExtendCondition(cond);

				if(extSql != null && !"".equals(extSql)){
					sql += extSql +"GROUP BY ITEM1.HUOBILEIXING";
				}

//				System.out.println(">><< SQL:" + sql);

				result = statement.executeQuery(sql);

				while(result.next()){
					ContractStatisticBean statisticBean = new ContractStatisticBean();
					//设置 Bean 的值
					statisticBean.setMoneyType(result.getString("HETONGLEIXING"));
//					System.out.print("|" + result.getString("HETONGLEIXING"));
					statisticBean.setMoneySum(result.getString("HETONGJINE"));
//					System.out.print("|" + statisticBean.getMoneySum());
					statisticBean.setDocSum(result.getString("HETONGSHULIANG"));
//					System.out.println("|" + statisticBean.getDocSum() + "|");

					//将 Bean 添加到返回的 结果集中
					resList.add(statisticBean);
				}
			}

//			if(resList != null)
//				System.out.println(">><< size " + resList.size());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}finally{
			//解放资源
			try {
				statement.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			statement = null;
			result = null;
			freeConnection(con);
		}

//		System.out.println("<<<< ContractStatisticDAL.retrieveStatisticList()");
		return resList;
	}

	/**
	 * 方法描述 返回合同统计列表 实现结果集到Object的映射
	 * @param QueryCondition 查询条件 bean
	 * @return List:(ContractQueryBean)
	 */
	public List retrieveContractQueryList(QueryCondition cond){
		if(cond == null) return null;
//		System.out.println(">>>> ContractStatisticDAL.retrieveContractQueryList()");
		List resList = null;
		Connection con = null;
		Statement statement = null;
		ResultSet result;
		try {
			con = this.getConnection();
			statement = con.createStatement();
			//查询字符串
			String sql = querySqlMain;
			//扩展条件
			String extSql = buildExtendCondition(cond);
//			System.out.println(">><< MainSQL:" + statisticSqlMain);
//			System.out.println(">><< extSQL:" + extSql);
			if(extSql != null && !"".equals(extSql)){
				sql += extSql;

			}

//			System.out.println(">><< SQL:" + sql);

			result = statement.executeQuery(sql);
			int i = 0;
			while(result.next()){
				i++;
				//如果有记录 有第条数据获得时创建 结果集
				if(i>0 && i==1){
//					System.out.println(">>查询数据<< ");
//					System.out.println("|    业务流程社实例ID    |       合同编号       |       合同名称       |       承办部门       |       合同金额       |       施印时间");
					resList = new ArrayList();
				}
				ContractQueryBean CQBean = new ContractQueryBean();
				//设置 Bean 的值
				CQBean.setBoInsId(result.getString("INSTANCE"));
//				System.out.print("|" + CQBean.getBoInsId());
				CQBean.setContNumber(result.getString("HETONGBIANHAO"));
//				System.out.print("|" + CQBean.getContNumber());
				CQBean.setContName(result.getString("HETONGMINGCHENG"));
//				System.out.print("|" + CQBean.getContName());
				CQBean.setUndertakeDept(result.getString("CHENGBANBUMEN"));
//				System.out.print("|" + CQBean.getUndertakeDept());
				CQBean.setContMoney(result.getString("HETONGJINE"));
//				System.out.print("|" + CQBean.getContMoney());
				CQBean.setShiyinTime(result.getString("SHIYINSHIJIAN"));
//				System.out.println("|" + CQBean.getShiyinTime() + "|");

				//将 Bean 添加到返回的 结果集中
				resList.add(CQBean);
			}
//			if(resList != null)
//				System.out.println(">><< size " + resList.size());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}finally{
			//解放资源
			try {
				statement.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			statement = null;
			result = null;
			freeConnection(con);
		}

//		System.out.println("<<<< ContractStatisticDAL.retrieveContractQueryList()");
		return resList;

		}

	/**
	 *
	 * 方法描述 对查询条件拼串
	 * @param QueryCondition 查询条件的主数据
	 * @return	扩展的查询条件
	 */
	private String buildExtendCondition(QueryCondition cond){
		//连接个数
		int i = 0;
		String firstTable = "cond";
		StringBuffer bufsql = new StringBuffer("item1.document_id IN( SELECT cond.document_id FROM ( ");

		//根据 承办部门 连接个数
		if(cond.chbumen != null ){
			if(i>0)
				bufsql.append("INNER JOIN ( ");

			bufsql.append("SELECT document_id FROM mocha_document_content ")
				  .append("WHERE item_name = 'chengbanbumen' AND item_value like '%"+ cond.chbumen +"%' ) ");
			//添加连接列
			if(i==0)
				bufsql.append(firstTable+" ");
			else
				bufsql.append(firstTable).append(i).append(" ")
					  .append("ON ")

⌨️ 快捷键说明

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