• 首页
  • 关于必威体育app下载地址
  • 必威体育app 下载咨询
  • 必威体育app 下载服务
  • 必威体育app 下载产品
  • 大数据应用
  • 技术文档
  • 典型案例
  • 人才战略
  • 技术文档

  • 首页->技术文档->必威体育app 下载信息领导决策服务系统

    必威体育app下载地址必威体育app 下载信息领导决策服务系统

    来源: 作者: 日期:2011-07-21 20:18:52 【字号

    1 文档管理

    1.1. 文档管理概述

    信息文档管理是企业业务安全和成功的关键因素。通过您的组织有效的管理业务文档是非常必要的。无论是纸质文档还是电子文档,都是管理的重要根据。

    这是一套通用的在线文档管理系统,协助企业更高效地管理企业信息的整个生命周期:从上传、修改、权限控制、快速搜索、下载等。它可以轻松管理这些业务文件。

    1.2. 权限概述

    管理员可以给其他用户分配权限来更安全的管理文档信息。

    (1)角色:文档管理员 代码:ROLE_DOC

    权限范围:可以查看全部文档和文档目录,并可以对目录进行所有操作包括:增、删、改、拖动目录、分配权限,对文件同样也有所有操作权限包括:查询、上传、批量上传、删除、修改、权限分配等操作。

    (2)角色:文档二级管理员 代码:ROLE_DOC_T

    权限范围:没有查看权限,只有把文档和文档目录的查看权限分给使用者时才能看到,文档二级管理员拥有着和文档管理员一样的除了查看权限以外的所有操作权限。

    (3)角色:文档查询管理员 代码:ROLE_DOC_Q

    权限范围:没有操作权限,只有下载文件的权限。可以查看所有文档和文档目录。

    1.3. 初始化文档管理页面

    配置页面菜单路径:

    /docManage/docManageController.html? method=findDocName&rootId=根目录ID&childId=默认查询目录ID(child此属性可以不加)

    rootId为左侧目录树的根节点。

    childId为进入页面首次查询内容为哪个目录下的文档,如果不加此属性默认为查询rootId目录下内容。

    1.4. 目录的增、删、改及权限分配

    右键单击目录可以对目录进行增删改及权限分配操作如下图所示:

    可以按照用户所在部门、所属角色、用户名来给目录分配查看权限。

    1.5. 文档的上传、下载、删除、修改及权限分配

    只有文档管理员和文档二级管理员才可以对文件进行这些操作如下图所示:

     

     

    2 网上填报模块概述

    网上填报模块提供绘制表结构、发布表结构、定时发布表单给各个组织机构、填报和审核已发布表单等功能。

    JSP页面位置

    /jsp/solutions/metaData/目录

    Controller

    com.berheley.bi.web.controller.TimerController

    Job

    org.quartz.jobs.TimerDataJob

    BO

    com.berheley.bi.service.impl.TimerServiceImpl

    com.berheley.bi.service.def.TimerService

    DAO

    com.berheley.bi.dao.impl.TimerDaoImpl

    com.berheley.bi.dao.TimerDao

    TABLE

    dic_table_diction  表结构

    qrtz_job_details   定时任务

    qrtz_triggers      任务时间

    qrtz_simple_triggers  任务时间(立即发布)

    qrtz_cron_triggers 任务时间(cron表达式)

    t_table_inf        已发布表单记录

    其他

    表格 2 1 公用文件

    字段

    说明

    输入格式

    是否必填

    JOB_NAME

    定时任务名称(必须唯一)

    VARCHAR(200)

    JOB_GROUP

    定时任务组

    VARCHAR(200) 

    DESCRIPTION

    描述

    VARCHAR(250)

    JOB_CLASS_NAME

    定时执行目标类名

    VARCHAR(250) 

    IS_DURABLE

    保存

    VARCHAR(1)

    IS_VOLATILE

    VARCHAR(1)

    IS_STATEFUL

    VARCHAR(1)

    REQUESTS_RECOVERY

    可恢复

    VARCHAR(1)

    JOB_DATA

    执行任务需要的参数

    BLOB

    表格 2 2 数据库表qrtz_job_details

    字段

    说明

    输入格式

    是否必填

    TRIGGER_NAME

    定时名称(必须唯一)

    VARCHAR(200)

    TRIGGER_GROUP

    定时组(必须唯一)

    VARCHAR(200) 

    JOB_NAME

    定时任务名称(必须唯一)

    VARCHAR(200)

    JOB_GROUP

    定时任务组

    VARCHAR(200) 

    IS_VOLATILE

    VARCHAR(1)

    DESCRIPTION

    描述

    VARCHAR(250)

    NEXT_FIRE_TIME

    下次执行时间

    BIGINT(13)

    PREV_FIRE_TIME

    上次执行时间

    BIGINT(13)

    PRIORITY

    INTEGER

    TRIGGER_STATE

    运行状态

    VARCHAR(16)

    TRIGGER_TYPE

    时间类型

    VARCHAR(8)

    START_TIME

    开始时间

    BIGINT(13)

    END_TIME

    结束时间

    BIGINT(13)

    CALENDAR_NAME

    VARCHAR(200)

    MISFIRE_INSTR

    SMALLINT(2)

    JOB_DATA

    执行任务需要的参数

    BLOB

    表格 2 3 数据库表qrtz_triggers

    字段

    说明

    输入格式

    是否必填

    TRIGGER_NAME

    定时名称(必须唯一)

    VARCHAR(200)

    TRIGGER_GROUP

    定时组(必须唯一)

    VARCHAR(200) 

    CRON_EXPRESSION

    Cron格式的时间表达式

    VARCHAR(200)

    TIME_ZONE_ID

    时区

    VARCHAR(80)

    表格 2 4 数据库表qrtz_cron_triggers

    字段

    说明

    输入格式

    是否必填

    TRIGGER_NAME

    定时名称(必须唯一)

    VARCHAR(200)

    TRIGGER_GROUP

    定时组(必须唯一)

    VARCHAR(200) 

    REPEAT_COUNT

    执行次数

    BIGINT(7)

    REPEAT_INTERVAL

    间隔时间

    BIGINT(12)

    TIMES_TRIGGERED

    时间

    BIGINT(7)

    表格 2 5 数据库表qrtz_cron_triggers

    字段

    说明

    输入格式

    是否必填

    orgid_

    组织机构id

    VARCHAR(32)

    tablename_

    表名称

    VARCHAR(200) 

    statu_

    是否填写

    VARCHAR(1)

    resmessage_

    回执信息

    VARCHAR(1000)

    lookover_time_

    查看时间

    VARCHAR(45)

    infid_

    定时发布的表单id

    VARCHAR(32)

    starttime_

    催报开始时间

    VARCHAR(45)

    endtime_

    催报结束时间

    VARCHAR(45)

    create_time_

    发布时间

    VARCHAR(45)

    tablename_ch_

    表中文名称

    VARCHAR(200)

    check_status_

    是否审核

    VARCHAR(1)

    表格 2 6 数据库表t_table_inf

     

    2.1. 功能描述

    该功能主要用于将已发布的表结构根据设定的时间,定时的发布给各个组织机构,通过它来实现网上填报。

    访问路径

    jsp/solutions/metaData/tableAssign.jsp

    JSP名称

    tableAssign.jsp

    备注

    表格 2 3 涉及文件

    2.2. 设计约束

    图 2.1定时发布页面

    输出:

    提示“操作成功”“ 操作失败”,或报告相应错误。页面必填项未填时不允许提交表单。

    2.3. 业务流程描述(设计思路、主要环节)

    在分配表单页面中查询出已发布的表结构,给表结构分配相应的组织机构,选择要发布的表结构设置定时发布时间,是否审核,催报时间等。保存后定时功能启动,到设定的时间就会自动发布到相应的组织机构中。在表结构列表中可以看到定时状态,可暂停和恢复定时任务。

    2.4. 技术实现

    1.保存定时发布时间:

    调用TimerService中的addTimer方法,在这个方法中又调用了deleteTimer,saveTimer,saveCron方法。

    调用TimerService中的deleteTimer方法,清空已存在的定时任务。

    调用TimerService中的saveTimer方法,保存新的定时任务。

    调用TimerService中的saveCron方法,保存设定的定时时间。

    2.查询表结构定时状态

    通过在tableAssign.jsp中写入grid查询的JS代码,查询出表结构列表,点击记录上的暂停按钮,调用TimerService中的pauseTrigger方法,暂停已经运行的定时任务,点击恢复按钮,调用TimerService中的resumeTrigger方法,恢复暂停的定时任务,使它急需运行。

    2.5. 使用说明

    点击填报管理 在下拉菜单中点击表单分配,进入表结构列表

    图 2.1 表结构列表

    选择要定时发布的表单 点击右上角图标 为表单分配角色。

     

    图 2.2 组织机构列表

     

    点击右上角图标 为表单设置定时任务,注意:执行定时任务之前,必须选择同类型表单,并且为这些表单分配好角色,才可以执行定时设定。

     

    图 2.3 定时发布

    1.点击右上角图标 为已设定定时发布的表单,执行立即发布。

    2.在查询列表中点击暂停可以暂停正在运行的定时任务,点击恢复可恢复暂停中的定时任务。

    2.6. 填报模块jsp页面说明

    指标库页面 jsp/formTb/zhibiao.jsp

    表单设计器主页面   WebContent/formdesinger/ppdesinger.jsp

    表单设计预览页面     WebContent/formdesinger/ ppdesinger_redisplay.jsp

    表单设计修改页面 jsp/formTb/ ppdesinger_modify.jsp

     

    表单维护主页面 jsp/formTb/formMaintain.jsp

    表单审核页面 jsp/formTb/auditError.jsp

    参数

    id_=c1817c1a1f234a1fb474a734dc79d691表示审核那个表单

    type=season 表示审核类别  

    value=03  表示值

    表单分配页面 jsp/formTb/formAssign.jsp

    单表填报页面 jsp/formTb/formOneTb.jsp

    设置审核关系页面 jsp/formTb/ppdesinger_setAudit.jsp

    审核错误表单回显 jsp/formTb/ppdesinger_shenheredisplay.jsp

    填报人页面 jsp/formTb/tableList.jsp

    审核人页面 jsp/fromTb/tableListsh.jsp

    填报审核 详细页 jsp/formTb/tableDetail.jsp

     

    2.7. 后台controller说明

    FormAuditController

    数据审核controller

    FormLogoShowController

    表单设计器图片回显controller

    FormPreSaveController

    设计表单 保存之前的controller 跳到 formPresave.jsp  页面

    FormReDisplayController

    回显修改表单 controller

    FormTbController

    单表提交用的controller  (目前没用上)

    GetFormDateController

    表单数据会先controller

    PublishFormController

    发布表单controller

    TableAssignController

    分配表单controller

    TableFillController

    表单填报审核controller

     

    3 页面设计器

    3.1. 使用说明

    访问路径

    http://localhost:8989/main/plcDesinger/maintainMenu.bi?curlnk=8

    1、功能入口,点击工具栏上的

    2、主页面,左测是目录结构,右边具体的页面。

    3、目录结构右键有添加、修改、删除等功能。

    目录结构对应项目中的目录如下图,当发布页面时会在相应的目录下,建立相应的jsp页面。

    4、创建页面

    在创建页面时候,页面代码后面要相应输入.jsp。

    然后点击创建页面即可。

     

    5、还有设计页面,属性修改,页面删除,预览页面(只有在发布页面后才能预览)

    6、设计页面

    具体页面设计功能,可以点击工具栏中的 查看。

    3.2. 目录结构

    1、前台js代码。

    Css:样式文件夹

    Help:所有设计器的帮助文件

    Js,jsMb,newjs:所有有关设计器的js代码

    xmlmb:

    /all 暂时不用 ,记录的是所用EXT元素的xml文件

    /allConfig 所有元素的属性,监听事件,方法等配置文件

    /item 所有元素

    plcdesinger.jsp 设计主页面

    plchelp_left.jsp,plchelp.jsp:帮助文档

    2、后台java代码

    位于plcdesinger源文件夹包里面

     

    3.3. 设计思路

    图1-组件图

     

    1、所有的组件都是一个xml文件,位于webContent/plcDesinger/ xmlmb/ item

    格式如下,

     

    其中ctype = Button是这个这个组件名称

    ptype="extdeitor" 表示所属类别

    即上图(组件图)中html控件,ext控件,html容器,ext容器

    对应关系

    Htmleditor html控件

    Extdeitor ext控件

    htmlcont html容器

    extcont ext容器

    这些代码的解析在plc_AllItem.js中

    text="Button"是显示名称

    表示new对象的json参数, 有值的会默认传入

    24

    ……

    所有监听事件

    'render(o)'

    ……

    <:method>所有可用的方法

    'setWidth(o)'

     

    Ext.Button 初始化方法(new对象所使用的方法)

     

    2、后台java代码动态解析这些xml文件,形成相应的js代码。

    相应的js代码位于webContent/plcDesinger/js/ plcImpl.js,

    第七行

    Ext.Ajax.request({

    url: getRootPath()+"/PlcDesinger.table?method=changeXmlToJson",

    ……………………

    )};

     

    相应的java代码  在 PlcDesingerController,PlcItemServiceImpl中

    主要是PlcItemServiceImpl类中的getJsBuilder方法,返回的就是最后的js代码

     

     

    其中产生的js代码包括所有组件代码,所有组件的属性代码,所有监听事件代码,所有页面设计可调用的代码,fushionchart对应的模板文件。对应关系如下。

     

    组件的属性代码:PlcItemServiceImpl中的 getAllItemConfig方法。

    读取的是 这个xml文件。

    所有监听事件代码:PlcItemServiceImpl中的 getAllItemListen方法。

    读取的是 这个文件。

     

    所有页面设计可调用的代码:PlcItemServiceImpl中的 getAllExtendMethod方法。

    读取的是 这个文件。

    在前台的展示相应的在页面方法设计窗口工具栏中(F9),如图

    在menuToolbar.xml文件配置如下

     

    fushionchart对应的模板文件:PlcItemServiceImpl中的 getAllfushionChart方法。

    读取的是fushionChart.xml

    前台展示在数据源配置窗口中(F8),如图

    注意事项:当自定义一个组件,并且添加属性时候,要在allItemConfig.xml添加相应的属性信息。

    例如:

    Grid.xml中有 这个属性,但是由于grid.js是自己封装的,原先的Ext的grid。当new对象时候并没有这个参数,所以在allItemConfig.xml中添加自己属性的说明,如图。(在3773行)

    其中type表示类型string(有string,number,boolean,object)。

    为string类型时候,你在前台配置属性时候得加”或者’,

    例如

    Displaytype表示前台配置属性时展现形式,

    比如grid的isPage属性是boolean属性,在前台选择框中可以下拉选择,所以xml文件为

     

    前台展示为

     

    (展现形式共有combox,textfield,numberfield,window,keySelect)

    (解析代码在plc_object.js中221行,

    for(var abc in this.proGridName.ch_type)

    {……………………}

     

    3、设计器主代码是plc_object.js这个js文件。

    Js文件中的PigLoveCat 是主要类。

    在主页面中只要new一个这个对象即可(见plcImpl.js中第十三行代码

    new PigLoveCat({})……)

     

    3.4. 关键代码解析

    1、拖动创建组件实例:

    工具栏上的树位于plc_object.js中(id为toolTree_cfz)。

    拖动后执行代码位于68行this.toolTree.on("enddrag",…………

    接着调用crtExt()这个方法

    方法中主要先往页面中添加一个div

     

    然后调用对象的 initialMethod方法,这个方法在后台java代码解析xml文件中产生。

    就是动态的new 对象 ,比如new Grid(json);json就是配置属性。

     

     

    2、记录当前页面所有创建的元素:

    拖动创建的元素,都记录在allItemTree这个对象tree中,在 这个js文件中。

    这个tree可以通过点击工具栏上的元素选择窗口点出。

     

     

     

     

    3、拖拽功能的实现:

    拖拽功能的实现主要是drag.js和dragImpl.js这两个js文件,

    这个js方法记录了                    

    obj.mouseDown(e)

    obj.mouseMove(e)

    obj.mouseUp(e)

    obj.keyDown(e);

    这几个事件,并apply到document标签中。在代码中通过判断class是否等于plc_absolute_div来判断这个组件是否拖动,所以在每个创建元素的外层div中都有class等于plc_absolute_div 的值。

     

    4、页面方法窗口

    主要代码在functionWin.js

    中的PigLoveCat.prototype.itemFunWindow这个window    

     

     

    5、数据来源窗口

    主要代码在plc_sql.js中

     

     

    3.5. 功能入口点

    1、

    执行toolbar.js中的myObject.createXmlSave()。

    myObject.createXmlSave()位于toolbar.js 中

    2、

    执行toolbar.js中的myObject.createFabuJsp();

    myObject.createFabuJsp()位于toolbar.js中

    3、

    执行toolbar.js中的myObject.createTempFabuJsp();

    myObject.createTempFabuJsp()位于toolbar.js中

    4、

    执行toolbar.js中的myObject.AjaxRequestXml('xml_');

    myObject.AjaxRequestXml('xml_')位于toolbar.js中

     

    5、

    执行toolbar.js中的myObject.AjaxRequestXml('xml_copy');;

    myObject.AjaxRequestXml('xml_copy')位于toolbar.js中

     

    6、

    执行toolbar.js中的myObject.historyWindow.show()

    myObject.historyWindow在showAllItem.js定义

    7、

    执行toolbar.js中

    Ext.getCmp("loadSaveByLocalXml")的window在plc_object.js中定义

     

    8、

    执行toolbar.js中

     

    Ext.getCmp("loadSaveByLocalXml")的window在plc_object.js中定义

    8、

    执行toolbar.js中

    Ext.getCmp("toolBarWin_cfz").show();

    Ext.getCmp("toolTree_cfz").getRootNode().expand();代码

    toolBarWin_cfz 和toolTree_cfz 都在plc_object.js中定义

     

    9、

    执行toolbar.js中

    myObject.showFunctionWindow("");代码

    showFunctionWindow 方法在functionWin.js中定义

     

    10、

    执行toolbar.js中

     

    其主要代码在plc_sql.js定义

    11、

    执行toolbar.js中

     

    showallItemWindow主要在showAllItem.js中定义

    12、

    执行toolbar.js中

     

    主要是myObject.buJuFlag这个标志位

    13、右键菜单

    执行plc_object.js中的

    删除:

    {

    text:'删除(delete)',

    id:'delete',

    handler:function(){myObject.deleteItem();}

    }

    代码。

    14、 这些功能同上(见13)

    3.6. 数据库字段

    1、表t_plcdesinger记录所有目录结构和页面。

     

     

    t_plcdesinger

     

     

    ID_

    主键id

    CODE_

    目录英文名称/或者jsp页面的名称

    NAME_

    目录别名/或者jsp页面别名

    XML_

    页面设计的xml文件

    XML_COPY

    备份xml文件

    PID_

    目录pid

    TYPE_

    类型1是目录,2是文件

    SORT_

    排序

    URL_

    页面的url地址。(发布生成jsp页面的地址)

    GRID_XML_

    Comboxgridchart的相应配置sql语句

    2、表t_plcdesinger_old设计页面的历史记录。

    t_plcdesinger_old

     

     

    ID_

    主键di

    XML_COPY

    备份的xml文件

    TIME_

    备份的记录时间

    GRID_XML_

    Comboxgridchart的相应配置sql语句

    PLC_ID

    对应t_plcdesinger表中的id

     

    4 自定义明细报表

    以拖拽的人性化方式,选择明细报表的列,并选择报表数据的时间,进行预览;选择报告期,根据需要固定报告期或者相对报告期,包括当前期、上一期、去年同期、前n期等;自定义列,可以对不同报告期的指标进行运算;条件设计,对明细内容填加统一的条件限制,例如只必威体育app 下载某一地区的数据;保存报表,对设计好的明细报表,进行保存。

     

    JSP页面位置

    jsp/solutions/analystic目录

    detail-report.jsp 报表设计

    defaultDetailReportView.jsp 报表回显

    Controller

    com.berheley.bi.report.web.controller. DetailReportController

    报表查询相关操作

    com.berheley.bi.report.web.controller.OperateDetailReportController 报表保存回显相关操作

    BO

    com.berheley.bi.report.service.def.DetailReportService

    com.berheley.bi.report.service.impl.DetailReportServiceImpl

    DAO

    com.berheley.bi.dao.impl.JdbcOpDaoImpl

    TABLE

    t_reportdetail 明细报表保存表

    表格 4 1 公用文件

     

    表名

    t_reportdetail

    日期

    作者

    版本

    描述

    字段

    说明

    输入格式

    是否必填

    ID_

    主键

    VARCHAR(32)

    NAME_

    报表名称

    VARCHAR(255)

    AUTHOR_

    创建人

    VARCHAR(32)

    DESCRIPTION_

    报表描述

    VARCHAR(500)

    REPORT_DATASOURCE_

    报表数据源名称

    VARCHAR(100)

    HEAD_

    报表表头配置

    TEXT

    REPORT_DATE_

    报表创建日期

    DATETIME

    REPOSITORY_ID_

    资源管理目录

    VARCHAR(32)

    XML_ID_

    Report模型id

    VARCHAR(32)

    COL_LIST_HTML_

    宾栏html代码

    TEXT

    TYPE_

    报表类型

    VARCHAR(1)

    QUERY_CONDITIONS_

    报表查询条件

    TEXT

    JSON_ATTR_

    条件设计区的属性

    LONGTEXT

    SQL_CONDITION_

    条件设计区的条件

    LONGTEXT

    表格 4 2 数据库表t_reportdetail

    4.1. 功能描述

     

    访问路径

    /detailReport.report?method=getRoot

    JSP名称

    /jsp/solutions/analystic/detail-report.jsp

    后台方法

    getRoot

    备注

    表格 4 3加载指标分类根目录

      

    访问路径

    /detailReport.report?method=getChilds

    JSP名称

    /jsp/solutions/analystic/detail-report.jsp

    后台方法

    getChilds

    备注

    表格 4 4加载指标分类子目录

      

    访问路径

    /detailReport.report?method=query

    JSP名称

    /jsp/solutions/analystic/detail-report.jsp

    后台方法

    query

    备注

     

     

    表格 4 5报表查询

     

    访问路径

    operateDetailReport.report?method=saveOrUpdate

    JSP名称

    /jsp/solutions/analystic/detail-report.jsp

    后台方法

    saveOrUpdate

    备注

    表格 4 6报表保存和修改

     

    访问路径

    operateDetailReport.report?method=view

    JSP名称

    /jsp/solutions/analystic/defaultDetailReportView.jsp

    后台方法

    View

    备注

    表格 4 7报表回显

     

    访问路径

    operateDetailReport.report?method=edit

    JSP名称

    /jsp/solutions/analystic/detail-report.jsp

    后台方法

    Edit

    备注

    表格 4 8报表设计回显

     

    访问路径

    operateDetailReport.report?method=delete

    JSP名称

    jsp/solutions/repository/repositoryManage.jsp

    后台方法

    delete

    备注

    表格 4 9报表删除

     

    4.2. 业务流程描述(设计思路、主要环节)

    首先通过四步组表创建出报表模型,报表模型中保存了所有事实表和维表的表信息与表的连接关系(请参考四步组表开发文档)。进入明细报表设计器,选择要设计的报表,这时会看到报表模型中的事实表,客户可以展开树结点,选择需要的报告期下的指标,可以将事实表指标拖拽到宾栏。单击预览后会将宾栏主栏的信息传到后台。后台分析宾栏所有涉及到的表的信息和报告期的信息,根据报表模型加以分析,最后生成报表查询sql,执行sql后将查询结果根据宾栏的顺序位置依次排列处理成json,前台grid组件接收到json展示出最终的明细结果。客户可以进一步对表头进行设计

     

     

     

    4.3. 使用说明

    1.选择行业套表

     

    图 3.1 选择行业套表

    2.选择指标

     

    图 3.2 选择指标

    3.更换报告期

     

    图 3.3更换报告期

    4.拖拽指标到宾栏和主栏,并预览

     

     

    图 3.4查询结果

     

     

    5.自定义宾栏

     

     

    图 3.5自定义宾栏

     

     

    6.自定义查询条件

     

    图 3.6自定义查询条件

    7.复杂表头

     

    图 3.7复杂表

     

     


     

    英文版|员工门户|联系必威体育app下载地址|法律条款|网站地图津ICP备05011245号