package com.ycsoft.report.commons; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; /** * 报表常量配置 * @author new * */ public class ReportConstants { /** * 报表任务状态 */ public static final String TASK_STATUS_WAITEXEC="waitexec";//待执行 public static final String TASK_STATUS_INVALID="invalid";//失效 public static final String TASK_STATUS_EXEC="exec";//正在执行 public static final String TASK_STATUS_EXECSUCESS="execsucess";//执行成功 public static final String TASK_STATUS_EXECFFAILED="execfailed";//执行失败 /** * 报表任务执行类型 */ public static final String TASK_TYPE_DAY="day";//每日重复 public static final String TASK_TYPE_WEEK="week";//每周重复 public static final String TASK_TYPE_MONTH="month";//每月重复 public static final String TASK_TYPE_ONE="one";//一次性执行 /** * 快逸 数据集定义的参数 */ public static final String DIM_KEY="dim_key"; /** * 快逸 模板定义的参数 */ public static final String QUERY_ID="query_id"; public static final String REP_ID="rep_id"; public static final String TEST_QUERY_ID="test_query_id"; /** * 分区标志 */ public final static String PARTITION_KEY_CON="#countyid#"; /** * 15分钟清理一次非历史查询缓存 */ public static int CLEAR_REP_CACHE=15; /** * 系统数据库数据库,报表配置数据库 */ public final static String DATABASE_SYSTEM="system";//系统默认数据库 /** * 数据库类型 */ public final static String DATABASETYPE_REALTIME="realtime";//数据库类型=实时库 public final static String DATABASETYPE_HISTROY="histroy";//数据库类型=历史库 /** * 报表类型 */ public final static String REP_TYPE_COMMON="common";//普通报表 public final static String REP_TYPE_QUIEE="total";//快逸模板报表 public final static String REP_TYPE_OLAP="olap";//olap报表 public final static String REP_TYPE_OLAP_DETAIL="olap_detail";//olap明细报表 /** * 报表属性定义 */ public final static String REP_INFO_COMMON="common";//普通 public final static String REP_INFO_BUSINESS ="business";//停业报表 public final static String REP_INFO_FINANCE="finance";//财务报表 /** * 页面组件类型 */ public final static String htmlcode_checkboxgroup="checkboxgroup"; public final static String htmlcode_combo="combo"; public final static String htmlcode_datefield="datefield"; public final static String htmlcode_textarea="textarea"; public final static String htmlcode_textfield="textfield"; public final static String htmlcode_lovcombo="lovcombo"; public final static String htmlcode_datetimefield="datetimefield"; public final static String htmlcode_fileupload="fileupload";//文件上传框 public final static String htmlcode_itemselector="itemselector";//双栏选择框 /** * key_con条件定义类型 */ public final static String keytype_date="date";//日期型 public final static String keytype_like="like";//like public final static String keytype_common="common";//通用型 public final static String keytype_nunulldate="nunulldate";//非空日期 public final static String keytype_reform="reform";//组装 public final static String keytype_cascade="cascade";//级联类型条件,存在级联状况,如果启用则修改QueryKeyImpl.java 中关于子key的判断代码 /** * 有效无效 */ public final static String VALID_T = "T"; public final static String VALID_F = "F"; /** * 维度key类型 */ public final static String DIM_KEY_SUBSTR="SUBSTR"; public final static String DIM_KEY_DATATREE="DATATREE"; /** * OLAP类型 */ public final static String OLAP_TYPE_TOTAL="TOTAL";//对应列数据计算,合计 public final static String OLAP_TYPE_GROUP="GROUP";//分组项目 public final static String OLAP_TYPE_EXTEND="EXTEND";//列扩展 /** * 报表权限相关 */ public final static String SESSION_REP_ROLE="rep_role"; public final static String SESSION_SYSTEM_MAP="system_key_map"; public final static String SESSION_REP_ROLE_DATA="rep_role_data"; public final static String SESSION_DATA_ROLE="REP_DATA_ROLE"; public final static String SESSION_REP_ROLE_DATA_KEY="#datarighttype#"; /** * 内存值列转换类型 */ public final static String memory_vew_dict="vew_dict";//系统视图 public final static String memory_my_define="my_define";//自定义 /** * 列模板转换 */ public final static String template_type_fixed_sql="fixed_sql";//固定模板 public final static String template_type_translate_sql="translate_sql";//sql转换模板 /** * 工作目录 */ protected static final String FILE_SEPARATOR = System.getProperty("file.separator"); public static String CONTEXT_REAL_PATH = getLastPackageParentPath(ReportConstants.class); public static String REP_TEMP_TXT=CONTEXT_REAL_PATH+FILE_SEPARATOR+"TXT"+FILE_SEPARATOR; public static final String INDEX="_index"; public final static String CACHE_BASE="_base"; /** * 获取一个类的最外层包的上级目录 * @param cls * @return */ @SuppressWarnings({ "unchecked", "deprecation" }) public static String getLastPackageParentPath(final Class cls){ //类加载器 final ClassLoader clsLoader = cls.getClassLoader(); //类路径 final String clsAsResource = cls.getName().replace('.', '/').concat(".class"); URL result=clsLoader.getResource(clsAsResource); String path=result.getPath(); if ("jar".equalsIgnoreCase(result.getProtocol())) { //jar中的类处理 try { path = new URL(path).getPath(); } catch (MalformedURLException e) {} int location = path.indexOf("!/"); if (location != -1) { path = path.substring(0, location); } path=URLDecoder.decode(path); path=new File(path).getParentFile().getParent(); }else{ //非jar中类处理 int location = path.lastIndexOf(clsAsResource); if (location != -1) { path = path.substring(0, location); } path=URLDecoder.decode(path); path=new File(path).getParent(); } return path; } /** * Excel 导出参数 */ public static int WORKBOOKMAXROWS=100000;//excel最大行数 public static int WORKBOOKMINROWS=10000;//excel最小行数 public static int WHEETMAXROWS=10000;//分页最大行数 public static int WHEETMINROWS=1000;//分页最大行数 /** * 报表基础配置项 */ public final static String OPTRCONFIG_WORKBOOKMAXROWS="WORKBOOKMAXROWS"; public final static String OPTRCONFIG_WHEETMAXROWS="WHEETMAXROWS"; public final static String OPTRCONFIG_CLEAR_REP_CACHE="CLEAR_REP_CACHE"; public final static String OPTRCONFIG_OPTR="OPTR"; public static final String EXCELPOSTFIX=".xls"; public static final String ZIPPOSTFIX=".zip"; /** * SQL拆分基准长度 */ public static final Integer SQLBASELENGTH=2000; /** * 报表编辑备注和查看SQL数据权限 */ public static final String SDATARIGHTTYPE_ES="REPORTEDIT"; /** * redis缓存处理结果集时分页大小 */ public static final int cache_page_row_max=1000; /** * redis批量操作一次操作大小 */ public static final int cache_batch_size=200; /** * 多维计算CacheKey超过限额后,使用数据库排序的数据库提取键值 */ public static final String DATABASETYPE_CUBE_SORT="cube_query_cachekey_sort_db"; /** * 多维报表内存计算限额(超过该值,将使用redis辅助运算,并使用oracle排序) */ public static final int memory_row_max=1000; }