configtd_report_tree.java

来自「电信的网厅的整站代码」· Java 代码 · 共 326 行

JAVA
326
字号
package com.doone.fj1w.fjmgr.config;

import com.doone.fj1w.fjmgr.rpt.ReportImpl;
import java.util.ArrayList;
import java.util.Hashtable;
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 ConfigTd_report_tree extends ReportImpl {
	
	/**用于获取报表
	 * 
	 */
	public DataTable getRptList(Map _map) {
		DacClient db = new DacClient();
		try {
			StringBuffer sql = new StringBuffer();
			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;

			buildSQL(_map,sql,oParam);	
			
			StringBuffer _sb = new StringBuffer();
			_sb.append("SELECT * FROM ( SELECT row_.*, rownum rownum_ FROM(");
			_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;
	}
	
	/**用于分页
	 * 
	 */
	public int getRptCount(ServletRequest request,
			ServletResponse response,Map _map) {
		DacClient db = new DacClient();
		try {
			StringBuffer sql = new StringBuffer();
			StringBuffer sql1 = new StringBuffer();
			List oParam = new ArrayList();
			
			buildSQL(_map,sql,oParam);	
			
			sql1.append("select count(1) from(");
			sql1.append(sql).append(")");
			
			Object ap[] = new Object[oParam.size()];
			for (int i = 0; i < ap.length; i++) {
				ap[i] = oParam.get(i);
			}
			
			String count = db.getStringFromSqlQuery(sql1.toString(), ap);
			//System.out.println("记录数:" + count);
			return Integer.parseInt(count);
		} catch (Exception e) {
			FileLogger.getLogger().warn(e.getMessage(), e);
		}
		
		return 0;
	}
	
	private void buildSelectSQL(Map _map, StringBuffer selectSql, List oParam) {
		selectSql.append("select t1.purviewid \"模块编号\",t1.purviewcode \"权限编号\",t1.name \"模块名称\",");
		selectSql.append("t1.createtime \"创建时间\",decode(t1.state,'E','在用','D','禁用') \"状态\" ");
	}
	
	private void buildWhereSQL(Map _map, StringBuffer whereSql, List oParam) {
		String modalLevel = (String) _map.get("MODALLEVEL");
		String indexcode = (String) _map.get("MODAL"+modalLevel);
		String purviewid = "";
		
		try {
			DataTable dt = null;
			DacClient db = new DacClient();
			StringBuffer sql = new StringBuffer();
			
			sql.append("select t.purviewid from td_report_tree t where t.indexcode = ? ");
			Object ap[] = new Object[1];
			ap[0] = indexcode;
			
			dt = db.executeQuery(sql.toString(), ap);
			if(dt != null && dt.getRows().getCount() > 0) {
				purviewid = dt.getRow(0).getString("purviewid");
			}
		}
		catch (Exception e) {
			FileLogger.getLogger().warn(e.getMessage(), e);
		}
		
		whereSql.append("where t1.uppurviewid = ? ");
		oParam.add(purviewid);
		whereSql.append("and not exists(");
		whereSql.append("select 1 from td_report_tree t2 where t1.purviewid = t2.purviewid");
		whereSql.append(") ");
		
		
	}
	
	private void buildSQL(Map _map, StringBuffer sql, List oParam) {
		StringBuffer selectSql = new StringBuffer();
		buildSelectSQL(_map,selectSql,oParam);
		sql.append(selectSql);
		sql.append("from tf_purview t1 ");
		StringBuffer whereSql = new StringBuffer();
		buildWhereSQL(_map,whereSql,oParam);
		sql.append(whereSql);
	}
	
	public String genHtml(ServletRequest request,
			ServletResponse response,Map _map) {
		DataTable dt = getRptList(_map);
		StringBuffer _sb = new StringBuffer();
		if ( dt != null && dt.getRows().getCount() > 0) {
			_sb.append("<table>");
			try {
				com.doone.data.DataColumnCollection dcs = dt.getColumns();
				int colcount = dcs.getCount();
				_sb.append("<tr>");
				_sb.append("<td width=\"4%\" class=\"body_td\" align=\"center\" nowrap>");
				_sb.append("<!-- 存放标识组织类别的小图 -->&nbsp;");
				_sb.append("</TD>");
				for (int icol = 0;icol<colcount-1;icol++){
					com.doone.data.DataColumn dc = dcs.getDataColumn(icol);
					_sb.append("<td class=\"body_td\" align=\"center\" nowrap><b>");
					_sb.append(dc.getColumnName());
					_sb.append("</b></TD>");
				}
				_sb.append("</tr>");
				
				for(int iresult=0;iresult<dt.getRows().getCount(); iresult++){	
					_sb.append("<tr height=\"20\">");	
					DataRow drresult = dt.getRow(iresult);
					_sb.append("<td class=\"body_td\" width=\"4%\" align=\"center\" nowrap>");
					_sb.append("<input type=\"checkbox\" name=\"PURVIEWID\" value=\""+drresult.getString(0).trim()+"\" onclick=\"return fSelectOne(this);\" />");
					_sb.append("</TD>");
					for (int icol=0; icol<colcount-1;icol++){
						_sb.append("<td class=\"body_td\" align=\"left\" nowrap>");
						_sb.append(drresult.getString(icol).trim().equals("")?"&nbsp;":drresult.getString(icol).trim());
						_sb.append("</TD>");

					}
					_sb.append("</tr>");
				}
			} catch (Exception e) {
				FileLogger.getLogger().info(e.getMessage(),e);
			}
			_sb.append("</table>");
		}
		else if(dt == null || dt.getRows().getCount() == 0 ) {
			_sb.append("<table>");
			_sb.append("<tr key=\"-1\" type=\"\">");
			_sb.append("<td class=\"InnerHead\" style=\"cursor: default;\" onclick=\"\" colspan=\"6\">没有找到任何记录信息</td>");
			_sb.append("</tr>");
			_sb.append("</table>");
		}

		return _sb.toString();
	}

	/**判断模块是否有下一级
	 * 
	 * @param request
	 * @param response
	 * @param param
	 * @return
	 */
	public static String hasLevel(ServletRequest request,
			ServletResponse response,Map param) {
		String hasLevel = "false";
		try {
			String indexcode = (String)param.get("INDEXCODE");
			DataTable dt = null;
			List oParam = new ArrayList();
			DacClient db = new DacClient();
			
			StringBuffer sql = new StringBuffer();
			sql.append("select * from td_report_tree t where t.indexcode <> ? and t.indexcode like ? || '%'");
			oParam.add(indexcode);
			oParam.add(indexcode);
			Object ap[] = new Object[oParam.size()];
			for (int i = 0; i < ap.length; i++) {
				ap[i] = oParam.get(i);
			}
			dt = db.executeQuery(sql.toString(), ap);
			if(dt != null && dt.getRows().getCount() > 0) {
				hasLevel = "true";
			}
			
		}
		catch (Exception e) {
			FileLogger.getLogger().warn(e.getMessage(), e);
		}

		return hasLevel;
	}
	
	/**模块级别
	 * 
	 * @param param
	 * @return
	 */
	public static String getModalLevel(ServletRequest request,
			ServletResponse response,Map param) {
		String modalLevel = "0";
		try {
			String indexcode = (String)param.get("INDEXCODE");
			DataTable dt = null;
			List oParam = new ArrayList();
			DacClient db = new DacClient();
			StringBuffer sql = new StringBuffer();
			
			sql.append("select max(length(t.indexcode)) from td_report_tree t where t.indexcode like ? || '%' ");
			oParam.add(indexcode);
			Object ap[] = new Object[oParam.size()];
			for (int i = 0; i < ap.length; i++) {
				ap[i] = oParam.get(i);
			}
			dt = db.executeQuery(sql.toString(), ap);
			if(dt != null && dt.getRows().getCount() > 0) {
				modalLevel = String.valueOf(Integer.parseInt(dt.getRow(0).getString(0)) / 3);
			}
			
		}
		catch (Exception e) {
			FileLogger.getLogger().warn(e.getMessage(), e);
		}

		return modalLevel;
	}
	
	public String addModal(ServletRequest request,
			ServletResponse response, Map param) {
		String ss = "0";
		DacClient dbClient = new DacClient();
		try {
			String purviewId = "";
			String indexcode = (String)param.get("INDEXCODE");
			dbClient.beginTransaction(-1);
			Object[] keys = param.keySet().toArray();//获取MAP对象中的键名数组
			
			if(keys.length > 0) {
				for (int i = 0; i < keys.length; i++) {
					String key = (String)keys[i];
					if(key.substring(0, key.length() - 1).equals("PURVIEWID")) {
						purviewId = (String)param.get(key);
						StringBuffer sb = new StringBuffer();
						sb.append("select ? || substr(max(indexcode) + 1, 2, 6) \"indexCode\" from td_report_tree t5 ");
						sb.append("where t5.indexcode like ? || '%' and length(t5.indexcode) = (length(?) + 3)");
						Object[] aParam = new Object[3];
						aParam[0] = indexcode;
						aParam[1] = indexcode;
						aParam[2] = indexcode;
						DataTable dt = dbClient.executeQuery(sb.toString(),aParam);
						String reIndexCode = "";
						
						if(dt != null && dt.getRows().getCount() > 0) {
							reIndexCode = dt.getRow(0).getString("indexCode");
							if(reIndexCode.length() == indexcode.length())
								reIndexCode = reIndexCode + "001";
						}
						else
							reIndexCode = reIndexCode + "001";
						
						StringBuffer sql = new StringBuffer();
						sql.append("insert into td_report_tree t5 values(?,(select name from tf_purview where purviewid = ?),?,'E')  ");
						aParam = new Object[3];
						aParam[0] = purviewId;
						aParam[1] = purviewId;
						aParam[2] = reIndexCode;
						ss = String.valueOf(dbClient.executeUpdate(sql.toString(), 1000, aParam));
					}
				}
			}
			
			dbClient.endTransaction(true);
		}
		catch (Exception ex) {
			
			try{
				dbClient.endTransaction(false);
			}
			catch(Exception e){}
			
			FileLogger.getLogger().warn(ex);
			ex.printStackTrace();
			throw new RuntimeException(ex);
		}
		
		return ss;
	}
	
}

⌨️ 快捷键说明

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