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("<!-- 存放标识组织类别的小图 --> ");
_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("")?" ":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 + -
显示快捷键?