javaEcharts报表管理器

原创
2015/09/24 09:42
阅读数 414

javaEcharts报表管理器是基于Echarts开发,通过配置数据源映射相应的Echarts报表

JavaEcharts报表管理器主要特点:

  •  支持一维报表、二维报表

  •  支持报表的图文并茂

  •  支持报表导出Excel

  •  支持报表汇总、明细、报表明细

  • 架构图如下所示:

表设计如下所示:

数据源表:主要配置数据取数源头、明细、表头等信息

-- Create table
create table T_REPORT_STATIS_SOURCE
(
  source_id            NUMBER,
  header_sql_count     VARCHAR2(3000),
  header_desc          VARCHAR2(512),
  header_type          VARCHAR2(512),
  header_sql_list      VARCHAR2(3000),
  header_key           VARCHAR2(512),
  header_name          VARCHAR2(512),
  source_name          VARCHAR2(512),
  source_pid           NUMBER,
  dimension_field      VARCHAR2(100),
  status               NUMBER default 0,
  source_mode          NUMBER,
  isdimension          NUMBER default 0,
  dimension_field_type VARCHAR2(50),
  date_format          VARCHAR2(50)
);
-- Add comments to the table 
comment on table T_REPORT_STATIS_SOURCE
  is '报表数据源表(统计类报表)';
-- Add comments to the columns 
comment on column T_REPORT_STATIS_SOURCE.source_id
  is '数据源ID(取数ID)';
comment on column T_REPORT_STATIS_SOURCE.header_sql_count
  is 'SQL取数汇总';
comment on column T_REPORT_STATIS_SOURCE.header_desc
  is '取数描述';
comment on column T_REPORT_STATIS_SOURCE.header_type
  is '取数类型 1.账号授权 2认证访问 3.业务操作 4.系统操作 5.敏感数据 6.金库 7合作伙伴';
comment on column T_REPORT_STATIS_SOURCE.header_sql_list
  is 'SQL取数明细';
comment on column T_REPORT_STATIS_SOURCE.header_key
  is '表头KEY 字段名称与REPORT_HEADER_SQL_COUNT字段对应 多个以,分割';
comment on column T_REPORT_STATIS_SOURCE.header_name
  is '表头名称 表头名称与表头KEY对象 多个以,分割';
comment on column T_REPORT_STATIS_SOURCE.source_name
  is '数据源名称';
comment on column T_REPORT_STATIS_SOURCE.source_pid
  is '数据源PID (父ID)';
comment on column T_REPORT_STATIS_SOURCE.dimension_field
  is '维度依据,即 作为维度数据源的结果集中,以哪个字段作为其它数据源的查询条件';
comment on column T_REPORT_STATIS_SOURCE.status
  is '状态,0 -- 正常 ,9 -- 删除';
comment on column T_REPORT_STATIS_SOURCE.source_mode
  is '数据源模式 , 1 -- 单源模式 , 2 -- 多源模式';
comment on column T_REPORT_STATIS_SOURCE.isdimension
  is '是否作为维度的标识,0--不是,1--是';
comment on column T_REPORT_STATIS_SOURCE.dimension_field_type
  is '维度依据字段的类型,integer -- int数字类型 ,long -- 长整形类型 ,string -- 字符串类型 ,boolean -- 布尔型';
comment on column T_REPORT_STATIS_SOURCE.date_format
  is '日期格式,主要有:yyyy-MM-dd , yyyy/MM/dd , yyyyMMdd ,时间格式默认是 HH:mm:ss';

报表模板表:主要是组装表头、报表的维度、作业调度等等信息。

-- Create table
create table T_REPORT_TEMPLATE
(
  ID               NUMBER default 0,
  TEMPLATE_NAME    VARCHAR2(50),
  TEMPLATE_TYPE    VARCHAR2(50) default 0,
  CREATION_TIME    VARCHAR2(64),
  CREATER          VARCHAR2(50),
  CREATER_ID       NUMBER default 0,
  NATURALPERSON    VARCHAR2(50),
  DESCRITION       VARCHAR2(300),
  MODIFY_TIME      VARCHAR2(64),
  MODIFY_PERSON    VARCHAR2(50),
  MODIFY_ID        NUMBER default 0,
  DATASOURCE       VARCHAR2(50),
  REPORTPERIOD     VARCHAR2(10),
  SELSHOWFIELD     VARCHAR2(500),
  SELGROUPFIELD    VARCHAR2(500),
  ISSHOW           VARCHAR2(10),
  SELDETAILFIELD   VARCHAR2(500),
  BYTIME           VARCHAR2(50),
  TIMEFORM         VARCHAR2(50),
  PRODUCEFORM      VARCHAR2(50),
  STRATEGY         VARCHAR2(50),
  READOBJ          VARCHAR2(50),
  AUTHTIEMPERIOD   VARCHAR2(10),
  PRODPATTERN      VARCHAR2(50),
  ISALARM          VARCHAR2(20),
  POSITION         VARCHAR2(50),
  ISWATERMARK      VARCHAR2(10),
  SELSHOWFIELDCN   VARCHAR2(500),
  SELGROUPFIELDCN  VARCHAR2(500),
  SELDETAILFIELDCN VARCHAR2(500),
  REPORTPERIODCN   VARCHAR2(10),
  GROUPSHOW        VARCHAR2(50),
  GROUPSHOWCN      VARCHAR2(50),
  REPORTSTATUS     NUMBER default 0,
  SAVEWHITHER      NUMBER default 1,
  CONTENT_TYPE     NUMBER,
  SOURCE_MODE      NUMBER,
  DIMENSION_MODE   NUMBER
)
tablespace SMC_4A
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
-- Add comments to the table 
comment on table T_REPORT_TEMPLATE
  is '报表模板表';
-- Add comments to the columns 
comment on column T_REPORT_TEMPLATE.ID
  is '模板编号';
comment on column T_REPORT_TEMPLATE.TEMPLATE_NAME
  is '模板名称';
comment on column T_REPORT_TEMPLATE.TEMPLATE_TYPE
  is '模板类型:统计明细、策略分发';
comment on column T_REPORT_TEMPLATE.CREATION_TIME
  is '创建时间';
comment on column T_REPORT_TEMPLATE.CREATER
  is '创建人';
comment on column T_REPORT_TEMPLATE.CREATER_ID
  is '创建人编号';
comment on column T_REPORT_TEMPLATE.NATURALPERSON
  is '自然人名称';
comment on column T_REPORT_TEMPLATE.DESCRITION
  is '描述信息';
comment on column T_REPORT_TEMPLATE.MODIFY_TIME
  is '修改时间';
comment on column T_REPORT_TEMPLATE.MODIFY_PERSON
  is '修改人';
comment on column T_REPORT_TEMPLATE.MODIFY_ID
  is '修改人编号';
comment on column T_REPORT_TEMPLATE.DATASOURCE
  is '数据源';
comment on column T_REPORT_TEMPLATE.REPORTPERIOD
  is '报表周期';
comment on column T_REPORT_TEMPLATE.SELSHOWFIELD
  is '已选显示字段';
comment on column T_REPORT_TEMPLATE.SELGROUPFIELD
  is '已选分组条件字段';
comment on column T_REPORT_TEMPLATE.ISSHOW
  is '是否显示明细';
comment on column T_REPORT_TEMPLATE.SELDETAILFIELD
  is '已选显示明细字段';
comment on column T_REPORT_TEMPLATE.BYTIME
  is '时间条件控制字段';
comment on column T_REPORT_TEMPLATE.TIMEFORM
  is '时间格式';
comment on column T_REPORT_TEMPLATE.PRODUCEFORM
  is '生成报表格式';
comment on column T_REPORT_TEMPLATE.STRATEGY
  is '策略';
comment on column T_REPORT_TEMPLATE.READOBJ
  is '阅读对象';
comment on column T_REPORT_TEMPLATE.AUTHTIEMPERIOD
  is '审计时间周期';
comment on column T_REPORT_TEMPLATE.PRODPATTERN
  is '生成时间模式:forthwith立即,timing定时执行';
comment on column T_REPORT_TEMPLATE.ISALARM
  is '是否包含告警';
comment on column T_REPORT_TEMPLATE.POSITION
  is '产生位置';
comment on column T_REPORT_TEMPLATE.ISWATERMARK
  is '是否水印';
comment on column T_REPORT_TEMPLATE.SELSHOWFIELDCN
  is '已选显示字段中文';
comment on column T_REPORT_TEMPLATE.SELGROUPFIELDCN
  is '已选分组条件字段中文';
comment on column T_REPORT_TEMPLATE.SELDETAILFIELDCN
  is '已选显示明细字段中文';
comment on column T_REPORT_TEMPLATE.REPORTPERIODCN
  is '报表周期中文';
comment on column T_REPORT_TEMPLATE.GROUPSHOW
  is '分组显示字段:例如 从帐号数量';
comment on column T_REPORT_TEMPLATE.GROUPSHOWCN
  is '分组显示字段中文';
comment on column T_REPORT_TEMPLATE.REPORTSTATUS
  is '导出标示    0:未导出    1:已导出';
comment on column T_REPORT_TEMPLATE.SAVEWHITHER
  is '保存目的地,将生成报表内容保存在指定的服务器上, 1:本地数据库(默认)、 2:FTP服务器 、3:大数据平台';
comment on column T_REPORT_TEMPLATE.CONTENT_TYPE
  is '报表内容展示方式,1:汇总 、 2:明细 、 3:汇总+明细';
comment on column T_REPORT_TEMPLATE.SOURCE_MODE
  is '数据源模式, 1:单源模式 (仅支持一维单个数据源) 、 2:多源模式 (支持一维多数据源,二维多数据源)';
comment on column T_REPORT_TEMPLATE.DIMENSION_MODE
  is '报表维度模式, 1: 一维模式 、 2:二维模式';

报表结果表:通过job调度生成报表的结果记录,以便查询该报表。

-- Create table
create table T_REPORT_STATIS_RESULT
(
  RESULT_ID      NUMBER,
  ROLE_ID        NUMBER,
  REPORT_ID      NUMBER,
  REPORT_NAME    VARCHAR2(500),
  EXEC_TIME      VARCHAR2(20),
  START_TIME     VARCHAR2(20),
  END_TIME       VARCHAR2(20),
  CYCLE          VARCHAR2(20),
  CONTENT_TYPE   NUMBER,
  EXEC_TIME_NUM  NUMBER,
  START_TIME_NUM NUMBER,
  END_TIME_NUM   NUMBER,
  SOURCE_MODE    NUMBER,
  DIMENSION_MODE NUMBER
);
-- Add comments to the table 
comment on table T_REPORT_STATIS_RESULT
  is '统计报表的结果表';
-- Add comments to the columns 
comment on column T_REPORT_STATIS_RESULT.RESULT_ID
  is '结果表ID';
comment on column T_REPORT_STATIS_RESULT.ROLE_ID
  is '角色ID 角色关联用户,用于用户的权限控制';
comment on column T_REPORT_STATIS_RESULT.REPORT_ID
  is '报表ID';
comment on column T_REPORT_STATIS_RESULT.REPORT_NAME
  is '报表名称';
comment on column T_REPORT_STATIS_RESULT.EXEC_TIME
  is '执行时间';
comment on column T_REPORT_STATIS_RESULT.START_TIME
  is '开始时间';
comment on column T_REPORT_STATIS_RESULT.END_TIME
  is '    结束时间';
comment on column T_REPORT_STATIS_RESULT.CYCLE
  is '周期 1.日 2.周 3.月';
comment on column T_REPORT_STATIS_RESULT.CONTENT_TYPE
  is '展现方式 1 汇总 2 明细 3 汇总+明细';
comment on column T_REPORT_STATIS_RESULT.EXEC_TIME_NUM
  is '执行时间 number类型存储';
comment on column T_REPORT_STATIS_RESULT.START_TIME_NUM
  is '开始时间 number类型存储';
comment on column T_REPORT_STATIS_RESULT.END_TIME_NUM
  is '    结束时间 number类型存储';
comment on column T_REPORT_STATIS_RESULT.SOURCE_MODE
  is '数据源模式, 1:单源模式 (仅支持一维单个数据源) 、 2:多源模式 (支持一维多数据源,二维多数据源)';
comment on column T_REPORT_STATIS_RESULT.DIMENSION_MODE
  is '报表维度模式, 1: 一维模式 、 2:二维模式';

报表结果行表:为报表结果表的子集,也称之为报表明细表,展示报表详细信息。

-- Create table
create table T_REPORT_STATIS_ROW
(
  result_id     NUMBER,
  content_count VARCHAR2(4000),
  content_list  VARCHAR2(2048),
  property      NUMBER
);
-- Add comments to the table 
comment on table T_REPORT_STATIS_ROW
  is '统计报表执行结果 行表';
-- Add comments to the columns 
comment on column T_REPORT_STATIS_ROW.result_id
  is '结果ID';
comment on column T_REPORT_STATIS_ROW.content_count
  is '汇总记录';
comment on column T_REPORT_STATIS_ROW.content_list
  is '当REPORT_CONTENT_TYPE=2该值有效';
comment on column T_REPORT_STATIS_ROW.property
  is '由于报表数据可能会出现超大现象,需要分行存储;1:代表主体部分 ,2:附属内容部分';



展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部