首頁->技術文檔->統計信息領導決策服務系統

博和利統計信息領導決策服務系統

來源: 作者: 日期: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期等;自定義列,可以對不同報告期的指標進行運算;條件設計,對明細內容填加統一的條件限制,例如只統計某一地區的數據;保存報表,對設計好的明細報表,進行保存。

 

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複雜表

 

 


 

英文版|員工門戶|聯系博和利|法律條款|網站地圖津ICP備05011245號