fundao.java

来自「电信的网厅的整站代码」· Java 代码 · 共 648 行 · 第 1/2 页

JAVA
648
字号
package com.doone.fj1w.fjmgr.order;

import java.util.LinkedList;
import java.util.Map;
import com.doone.data.DataRow;
import com.doone.data.DataTable;
import com.doone.util.FileLogger;

public class FunDAO extends DAO {

	static private FileLogger _logger = new FileLogger();
	private static DataTable _dataTable = null;

	public FunDAO() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	/**
	 * wull 2006-6-14 增加 程控列表在后台管理的显示列表。主要在后台显示。目前主要用来查看。
	 * 
	 * @param _map
	 * @param startrecord
	 * @param recordnum
	 * @return
	 * @throws java.sql.SQLException
	 * @throws RuntimeException
	 */
	static public DataTable getFunOrderList(java.util.Map _map,
			int startrecord, int recordnum) throws java.sql.SQLException,
			RuntimeException {
		int endrecord = recordnum;
		if (startrecord < 0)
			startrecord = 0;
		if (endrecord > 0 && startrecord > 0)
			endrecord = startrecord + recordnum;

		try {
			String starttime = (String) _map.get("STARTTIME");
			String endtime = (String) _map.get("ENDTIME");
			String citycode = (String) _map.get("CITY");
			String statu = (String) _map.get("ACTION");// 传进来的当前分页状态方式
			String orderid = (String) _map.get("ORDERID");
			String staffID = (String) _map.get("USERID");
			String sort = CommonMethod.formatString((String)_map.get("SORT"));

			// 增加计费号码
			String phonenum = (String) _map.get("PHONENUM");
			String FUNAUTO = (String) _map.get("FUNAUTO");
			String FUNTYPE = (String) _map.get("FUNTYPE");
			String PRODUCTID = (String) _map.get("PRODUCTID");

			citycode = citycode == null || citycode.equals("") ? "0590"
					: citycode;

			StringBuffer sql = new StringBuffer();
			LinkedList _linkList = new LinkedList();
			// 基本条件funname_bss varchar2(50) y bss系统提供的程控功能名称

			sql.append(" select t.FUNORDERID,t.WEBORDER,to_char(t.ACCEPTTIME,'YYYY-MM-DD HH24:MI') ACCEPTTIME,");
			sql.append(" decode(t.ACTION,'1','开','2','关','3','设置',4,'取消',5,'变更','其它') ACTION,");
			// ACTION
			sql.append(" t.PROGRESSSTATE,staff.name,");
			sql.append(" decode(t.PROGRESSSTATE,'1','待处理','2','处理中','3','处理完成',4,'处理失败','其它') PROGRESSSTATENAME,");
			sql.append(" t.OTHERORDER,t.ORDERNBRTYPE,t.TEMPORDER,t.CONTENT,");
			sql.append(" t.PHONENUM,to_char(t.FINISHTIME,'YYYY-MM-DD HH24:MI') FINISHTIME,");
			sql.append(" decode(f.PRODUCTID,'1','固定电话','2','小灵通','其它') PRODUCTIDNAME,");
			sql.append(" f.CITYCODE,f.PRODUCTID,f.FUNCODE,f.FUNNAME,f.FUNAUTO,f.FUNTYPE,f.FUNNAME_BSS,");
			sql.append(" decode(t.FUNORDERAUTO,'0','自助','1','人工','其它') FUNAUTONAME,");
			sql.append(" decode(f.FUNTYPE,'C','程控','N','新业务','T','套餐','其它') FUNTYPENAME,");// C-程控
																								// N-新业务
																								// T-套餐
			sql.append(" c.PARADESC");
			sql.append(" from tf_funorder t ,td_prodfun f,ts_configsub c,tf_staff staff");

			sql.append(" where t.PRODFUNID=f.PRODFUNID and c.PARANAME='FunFailureStateLogDsec' ");
			sql.append(" and t.PROGRESSSTATE=c.PARAVALUE(+) ");
			sql.append(" and t.lockstaffid=staff.staffid(+) ");
			// 权限值
			if (!citycode.equals("0590")) {
				sql.append(" and t.citycode=?");
				_linkList.add(citycode);
				sql.append(" and c.citycode=?");
				_linkList.add(citycode);

			}
			
			// 是否人工或自助
			if (FUNAUTO != null && !"null".equals(FUNAUTO)
					&& !"".equals(FUNAUTO)) {
				sql.append(" and t.FUNORDERAUTO=?");
				_linkList.add(FUNAUTO);
			}

			// 程控类型:fun tao
			if (FUNTYPE != null && !FUNTYPE.equals("")) {
				sql.append(" and f.FUNTYPE=?");
				_linkList.add(FUNTYPE);
			}

			// STATE 受理状态。如果BSS返回全部为0
			
			if (statu != null && !statu.equals("")) {
				if (statu.equals("L")) {
					sql.append(" and t.lockstaffid=? ");
					_linkList.add(staffID);
				}
				else {
					if(statu.equals("4")){
						//处理失败与异常单并归.
						sql.append(" and t.PROGRESSSTATE not in('1','2','3','911')");
					}else{
						sql.append(" and t.PROGRESSSTATE=?");
						_linkList.add(statu);
					}
				}
			}

			// 产品类型
			if (PRODUCTID != null && !PRODUCTID.equals("")) {
				sql.append(" and f.PRODUCTID=?");
				_linkList.add(PRODUCTID);
			}

			// 流水号
			if (orderid != null && !orderid.equals("")) {
				sql.append(" and t.WEBORDER like ?");
				_linkList.add("%" + orderid.trim() + "%");
			}

			// 客户名称 wull改为计费号码
			if (phonenum != null && !phonenum.equals("")) {
				sql.append(" and t.PHONENUM like ?");
				_linkList.add("%" + phonenum.trim() + "%");
			}

			// 开始时间
			if (starttime != null && !starttime.equals("")) {
				sql.append(" and t.accepttime >= to_date(?,'YYYY-MM-DD HH24:MI:SS')");
				_linkList.add(starttime);
			}
			// 结束时间
			if (endtime != null && !endtime.equals("")) {
				sql.append(" and t.accepttime <= to_date(?,'YYYY-MM-DD HH24:MI:SS')");
				_linkList.add(endtime);
			}

			// 对结果排序
			if(sort.equals("")){
				if (isCompositor(statu)) {
					sql.append(" order by t.accepttime asc");
				}
				else {
					sql.append(" order by t.accepttime desc");
				}
			}else{
				sql.append(" order by t.accepttime ");
				sql.append(sort);
			}

			return executePageList(startrecord, endrecord, sql.toString(),
					_linkList.toArray());

		} catch (java.sql.SQLException sqlx) {
			throw sqlx;
		} catch (RuntimeException rux) {
			_logger.warn(rux.getMessage(), rux);
			throw rux;
		}

	}

	/**
	 * ***************程控工单***************** wull
	 * 增加。2006-6-14********************** 取条数。程控记录
	 * 
	 * @param _map
	 * @param statu
	 * @return
	 * @throws java.sql.SQLException
	 * @throws RuntimeException
	 */
	static public int getFunOrderListCount(java.util.Map _map, String statu)
			throws java.sql.SQLException, RuntimeException {

		try {
			_dataTable = getFunOrderMethod(_map, statu);
			if (_dataTable == null)
				throw new RuntimeException("获取程控记录数据总数异常!");

			return _dataTable.getRow(0).getInt("count");

		} catch (java.sql.SQLException sqlx) {
			throw sqlx;
		} catch (RuntimeException rux) {
			_logger.warn(rux.getMessage(), rux);
			throw rux;
		}
	}

	/**
	 * ****************程控工单********************** wull
	 * 2006-6-14******************************
	 * 
	 * @param _map
	 * @param statu
	 * @return
	 * @throws java.sql.SQLException
	 * @throws RuntimeException
	 */
	static public DataTable getFunOrderMethod(java.util.Map _map, String statu)
			throws java.sql.SQLException, RuntimeException {

		try {
			String citycode = (String) _map.get("CITY");
			String orderid = (String) _map.get("ORDERID");
			String starttime = (String) _map.get("STARTTIME");
			String endtime = (String) _map.get("ENDTIME");
			String staffID = (String) _map.get("USERID");
			// 增加计费号码
			String phonenum = (String) _map.get("PHONENUM");
			String FUNAUTO = (String) _map.get("FUNAUTO");
			String FUNTYPE = (String) _map.get("FUNTYPE");
			String PRODUCTID = (String) _map.get("PRODUCTID");
			// PRODUCTID

			citycode = citycode == null || citycode.equals("") ? "0590"
					: citycode;

			StringBuffer sql = new StringBuffer();
			// 当前所存在的所有条件
			LinkedList _linkList = new LinkedList();

			// 基本条件
			sql.append(" select count(t.FUNORDERID) as count");
			sql.append(" from tf_funorder t ,td_prodfun f,ts_configsub c");
			sql.append(" where t.PRODFUNID=f.PRODFUNID and c.PARANAME='FunFailureStateLogDsec' ");
			sql.append(" and t.PROGRESSSTATE=c.PARAVALUE(+) ");
			// 权限值
			if (!citycode.equals("0590")) {
				sql.append(" and t.citycode=?");
				_linkList.add(citycode);
				sql.append(" and c.citycode=?");
				_linkList.add(citycode);
				
			}
			
			// 是否人工或自助
			if (FUNAUTO != null && !"null".equals(FUNAUTO)
					&& !"".equals(FUNAUTO)) {
				sql.append(" and t.FUNORDERAUTO=?");
				_linkList.add(FUNAUTO);
			}

			// 程控类型:fun tao
			if (FUNTYPE != null && !FUNTYPE.equals("")) {
				sql.append(" and f.FUNTYPE=?");
				_linkList.add(FUNTYPE);
			}

			// STATE 受理状态。如果BSS返回全部为0
//			 STATE 受理状态。如果BSS返回全部为0
			
			if (statu != null && !statu.equals("")) {
				if (statu.equals("L")) {
					sql.append(" and t.lockstaffid=? ");
					_linkList.add(staffID);
				}
				else {
					if(statu.equals("4")){
						//处理失败与异常单并归.
						sql.append(" and t.PROGRESSSTATE not in('1','2','3','911')");
					}else{
						sql.append(" and t.PROGRESSSTATE=?");
						_linkList.add(statu);
					}
				}
			}
			// 产品类型
			if (PRODUCTID != null && !PRODUCTID.equals("")) {
				sql.append(" and f.PRODUCTID=?");
				_linkList.add(PRODUCTID);
			}

			// 流水号
			if (orderid != null && !orderid.equals("")) {
				sql.append(" and t.WEBORDER like ?");
				_linkList.add("%" + orderid.trim() + "%");
			}

			// 客户名称 wull改为计费号码
			if (phonenum != null && !phonenum.equals("")) {
				sql.append(" and t.PHONENUM like ?");
				_linkList.add("%" + phonenum.trim() + "%");
			}

			// 开始时间
			if (starttime != null && !starttime.equals("")) {
				sql
						.append(" and t.accepttime >= to_date(?,'YYYY-MM-DD HH24:MI:SS')");
				_linkList.add(starttime);
			}
			// 结束时间
			if (endtime != null && !endtime.equals("")) {
				sql
						.append(" and t.accepttime <= to_date(?,'YYYY-MM-DD HH24:MI:SS')");
				_linkList.add(endtime);
			}
			if (_linkList.size() > 0) {
				return _dac.executeQuery(sql.toString(), _linkList.toArray());
			}
			else {

				return _dac.executeQuery(sql.toString());
			}

		} catch (java.sql.SQLException sqlx) {
			throw sqlx;
		} catch (RuntimeException rux) {
			_logger.warn(rux.getMessage(), rux);
			throw rux;
		}
	}

⌨️ 快捷键说明

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