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

📄 affairacceptimpl.java

📁 电信的网厅的整站代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.doone.fj1w.fjmgr.rpt;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import com.doone.data.DacClient;
import com.doone.data.DataRow;
import com.doone.data.DataTable;
import com.doone.util.ExtString;
import com.doone.util.FileLogger;

public class AffairAcceptImpl extends ReportImpl {
	
	protected DataTable getRptList(Map _map) {
		DacClient db = new DacClient();
		try {
			List oParam = new ArrayList();

			int pageSize = Integer.parseInt((String) _map.get("pageSize"));
			int currentPage = Integer.parseInt((String) _map.get("currentPage"));

			int startrecord = currentPage * pageSize;
			int endrecord = pageSize;
			if (startrecord < 0)
				startrecord = 0;
			if (endrecord > 0 && startrecord > 0)
				endrecord = startrecord + pageSize;
		
			StringBuffer _sb = new StringBuffer();
			_sb.append("SELECT * FROM ( SELECT row_.*, rownum rownum_ FROM(");
			
			StringBuffer sql = new StringBuffer();
			buildSQL(_map, sql, oParam);
			_sb.append(sql);

			_sb.append(") row_ WHERE rownum < ?");
			_sb.append(") WHERE rownum_ > ?");

			oParam.add(new Integer(endrecord));
			oParam.add(new Integer(startrecord));

			Object ap[] = new Object[oParam.size()];
			for (int i = 0; i < ap.length; i++) {
				ap[i] = oParam.get(i);
			}

			return db.executeQuery(_sb.toString(), ap);
		} catch (Exception e) {
			FileLogger.getLogger().warn(e.getMessage(), e);
		}

		return null;
	}

	private void buildSQL(Map _map, StringBuffer Sql, List oParam) {
		int iCount = getLogCount(_map);
		
		if(iCount<=0) iCount=1;
		
		String sFields = null;
		if ( hasChildList(_map) ) {
			sFields = getOutFields(_map);
		}
		else {
			sFields = getLastOutFields(_map);
		}
	
		Sql.append("select ");
		Sql.append(sFields);
		Sql.append(" , count(1) cnt, ");
		Sql.append(" round(count(1)/").append(iCount).append(" * 100, 2) || '%' cnt2");
		Sql.append(" from (");

		StringBuffer sb = new StringBuffer();
		buildSelectSQL(_map, sb, oParam);
		
		Sql.append(sb);
		Sql.append(" ) f,td_area g,td_city h where f.areacode = g.areacode and f.citycode = h.citycode ");
		Sql.append(" group by ");
		Sql.append(sFields);
	}
	
	private boolean hasChildList(Map _map) {
		String sIndexCode = (String) _map.get("INDEXCODE");
		boolean bResult = false;
		if (! ExtString.isEmpty(sIndexCode)) {
			try {
				String sql = "select count(1) from td_report_tree where indexcode <> ? and indexcode like ? || '%'";
				Object ap[] = new Object[2];
				ap[0] = sIndexCode;
				ap[1] = sIndexCode;
				DacClient db = new DacClient();
				String str = db.getStringFromSqlQuery(sql,ap);
				
				if ( Integer.parseInt(str) > 0 ) {
					bResult = true;
				}
			}
			catch(Exception ex) {
			}
		}
		else {
			bResult = true;
		}
		
		return bResult;
	}
	
	private String getOutFields(Map _map) {
		StringBuffer fields = new StringBuffer();
		
		String sCityCode   =  (String) _map.get("CITYCODE");
		String sAreaCode   =  (String) _map.get("AREA");

		if ( ExtString.isEmpty(sCityCode) || "-1".equals(sCityCode) ) {
			// 显示全省内容。
			fields.append(" '0590' citycode, ");
			fields.append(" '全省' cityname, ");
		}
		else if ( ExtString.isEmpty(sAreaCode) ) { 
			fields.append(" f.citycode, ");
			fields.append(" h.cityname, ");
		}else {
			fields.append(" g.areacode, ");
			fields.append(" f.areaname, ");
		}
		
		fields.append(" f.indexcode, ");
		fields.append(" f.purviewname ");
		
		return fields.toString();
	}
	
	private String getLastOutFields(Map _map) {
		StringBuffer fields = new StringBuffer();
		
		String sCityCode   =  (String) _map.get("CITYCODE");
		String sAreaCode   =  (String) _map.get("AREA");

		if ( ExtString.isEmpty(sCityCode) || "-1".equals(sCityCode) ) {
			// 显示全省内容。
			fields.append(" '0590' citycode, ");
			fields.append(" '全省' cityname, ");
		}
		else if ( ExtString.isEmpty(sAreaCode) ) { 
			fields.append(" f.citycode, ");
			fields.append(" h.cityname, ");
		}else {
			fields.append(" f.areacode, ");
			fields.append(" g.areaname, ");
		}
		
		//fields.append(" f.affaircode, ");
		fields.append(" f.affairname, ");
		fields.append(" f.acceptstate ");	
		
		return fields.toString();
	}
	
	private void buildSelectSQL(Map _map, StringBuffer sql, List oParam) {
		String sClientType =  (String) _map.get("CLIENTTYPE");
		String sApplyType  =  (String) _map.get("APPLYTYPE");
		String sStartTime  =  (String) _map.get("STARTTIME");
		String sEndTime    =  (String) _map.get("ENDTIME");		
		String sCityCode   =  (String) _map.get("CITYCODE");
		String sAreaCode   =  (String) _map.get("AREA");
		String sIndexCode  =  (String) _map.get("INDEXCODE");
		String sOrderType  =  (String) _map.get("ORDERTYPE");

		int iCodeCount = 3;
		if (! ExtString.isEmpty(sIndexCode)) {
			iCodeCount = sIndexCode.length() + 3;
		}
		else if (!ExtString.isEmpty(sOrderType) && ! sOrderType.equals("A")){
			iCodeCount = sOrderType.length() + 3;
		}

		sStartTime = sStartTime!=null?sStartTime.trim():"";
		sEndTime = sEndTime!=null?sEndTime.trim():"";
		
		sStartTime = sStartTime.length()>0 && sStartTime.length()<11?sStartTime+" 00:00:00":sStartTime;
		sEndTime = sEndTime.length()>0 && sEndTime.length()<11?sEndTime+" 23:59:59":sEndTime;
		
		sql.append("select l.acceptlog_id,");
		sql.append("l.purviewid,");
		sql.append("l.purviewcode,");
		sql.append("l.recordtime,");
		sql.append("l.usertype,");
		sql.append("l.userid,");
		sql.append("l.useraccount,");
		sql.append("l.citycode,");
		sql.append("l.cityname,");
		sql.append("decode(Length(l.areacode),4,areacode||'00',areacode) areacode,");
		sql.append("l.areaname,");
		//sql.append("l.affaircode,");
		sql.append("l.affairname,");
		sql.append("l.actioncode,");
		sql.append("l.acceptorder, ");
		sql.append("l.acceptstate,");
		sql.append("l.ulcount,");
		sql.append("t2.purviewname,");
		sql.append("t1.indexcode");
		sql.append(" from tl_acceptlog l,");
		sql.append(" (select t.purviewid,");
		sql.append(" t.purviewname,");
		sql.append(" substr(t.indexcode, 1, ").append(iCodeCount).append(") indexcode");
		sql.append(" from td_report_tree t");
		sql.append(" where t.state = 'E') t1,");
		sql.append(" td_report_tree t2 ");
		sql.append(" where l.purviewid = t1.purviewid");
		sql.append(" and t1.indexcode = t2.indexcode");
		sql.append(" and l.recordtype = '2'");
		
		if ( iCodeCount > 3) {
			if (! ExtString.isEmpty(sIndexCode)) {
				String sTmp = sIndexCode.substring(0, iCodeCount - 3);
				if ( sTmp.length() == iCodeCount - 3) {
					sql.append(" and t1.indexcode like ? || '%' ");
					oParam.add(sTmp);
				}
			}
			else if (!ExtString.isEmpty(sOrderType) && ! sOrderType.equals("A")){
				String sTmp = sOrderType.substring(0, iCodeCount - 3);
				if ( sTmp.length() == iCodeCount - 3) {
					sql.append(" and t1.indexcode like ? || '%' ");
					oParam.add(sTmp);
				}
			}
			
		}
		
		if (!ExtString.isEmpty(sStartTime)) {
			sql.append(" and ");	
			sql.append(" l.recordtime  > to_date(?,'yyyy-mm-dd hh24:mi:ss')");
			oParam.add(sStartTime);
		}

		if (!ExtString.isEmpty(sEndTime)) {
			sql.append(" and ");
			sql.append(" l.recordtime < to_date(?,'yyyy-mm-dd hh24:mi:ss')");
			oParam.add(sEndTime);
		}

		if (!ExtString.isEmpty(sClientType) && !sClientType.equalsIgnoreCase("A")) {
			sql.append(" and ");
			sql.append(" l.usertype = ?");
			oParam.add(sClientType);
		}
		
		if (!ExtString.isEmpty(sApplyType) && !sApplyType.equals("6")) {
			sql.append(" and ");
			sql.append(" l.actioncode = ?");
			oParam.add(sApplyType);
		}

		if (!ExtString.isEmpty(sAreaCode) && ! "-1".equals(sAreaCode)) {
			sql.append(" and ");				
			sql.append(" l.areacode=?  ");
			oParam.add(sAreaCode);
		}		
		
		if (!ExtString.isEmpty(sCityCode) && ! sCityCode.equals("0590")) {
			sql.append(" and ");				
			sql.append(" l.citycode=? ");
			oParam.add(sCityCode);
		}
	}
	
	public String getStateName(String sCityCode,String sIndexCode, String sStateCode) {
		String sResult = "其它";

		// 程控状态
		Map funState = new HashMap();
		funState.put("1", "待处理");
		funState.put("2", "处理中");
		funState.put("3", "处理结束");
		funState.put("4", "处理失败");
		
		// 受理状态
		Map orderState = new HashMap();
		orderState.put("1", "待处理");
		orderState.put("2", "转派");
		orderState.put("3", "暂存");
		orderState.put("4", "回退");
		orderState.put("8", "作废");
		orderState.put("9", "完成");

		String funStateCode = "{005002001},{006001001},{006001002},{006001003}";
		if ( funStateCode.indexOf("{" + sIndexCode + "}") != -1 ) {
			sResult = (String) funState.get(sStateCode);
		}
		else {
			sResult = (String) orderState.get(sStateCode);
		}
		

⌨️ 快捷键说明

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