潘永才 羅雪姣 溫小清 劉海龍 汪標(biāo)
摘 要:為了實(shí)現(xiàn)信息化管理,以Java EE和Oracle 11g數(shù)據(jù)庫為基礎(chǔ),開發(fā)了數(shù)據(jù)統(tǒng)計與指標(biāo)分析系統(tǒng)。該系統(tǒng)完成數(shù)據(jù)錄入以及各種分類形式的匯總,指標(biāo)計算分析和圖表展示等功能。實(shí)際應(yīng)用證明,該系統(tǒng)操作界面友好,數(shù)據(jù)匯總方式符合實(shí)際應(yīng)用標(biāo)準(zhǔn),數(shù)據(jù)處理安全,快速。
關(guān)鍵詞:數(shù)據(jù)統(tǒng)計;指標(biāo)分析;Java EE;Oracle 11g數(shù)據(jù)庫
中圖分類號:TP316 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2015)03-00-02
0 引 言
隨著采油廠的生產(chǎn)經(jīng)營由“行政管理”到“精細(xì)化”再到“精益化管理”的不斷升級,基礎(chǔ)資料統(tǒng)計所形成的各類統(tǒng)計報表日益增多,而在經(jīng)營管理過程中,經(jīng)營指標(biāo)是體現(xiàn)一個單位管理水平的重要標(biāo)志。傳統(tǒng)的方法是以手工來進(jìn)行計算,這使基層人員工作量繁重,而且也不能直觀的對指標(biāo)進(jìn)行分析對比,不利于企業(yè)的“精益化管理”。因此,設(shè)計信息化的數(shù)據(jù)統(tǒng)計和指標(biāo)分析系統(tǒng)在實(shí)際應(yīng)用中有重要意義。
生產(chǎn)經(jīng)營統(tǒng)計分析系統(tǒng)是從生產(chǎn)經(jīng)營管理的實(shí)際以及業(yè)務(wù)開展過程中的數(shù)據(jù)收集、存儲、訪問、應(yīng)用現(xiàn)狀與需求出發(fā),掌控生產(chǎn)過程中的各項(xiàng)經(jīng)營指標(biāo),實(shí)現(xiàn)實(shí)物消耗(投入)和產(chǎn)品量(產(chǎn)出)的最佳比值為目的,以單井、單臺設(shè)備為基本統(tǒng)計單元,逐級建立的統(tǒng)計分析信息化管理系統(tǒng),通過投入產(chǎn)出基礎(chǔ)數(shù)據(jù)的統(tǒng)計,計算和分析各項(xiàng)生產(chǎn)經(jīng)營指標(biāo),為成本核算、控制、分析及標(biāo)桿管理提供準(zhǔn)確的基礎(chǔ)資料,為管理者決策提供科學(xué)依據(jù)。
1 系統(tǒng)框架設(shè)計
生產(chǎn)經(jīng)營統(tǒng)計分析系統(tǒng)采用MVC多層架構(gòu)技術(shù),運(yùn)用Eclipse,PowerBuilder多種開發(fā)工具,以O(shè)racle 11g數(shù)據(jù)庫為基礎(chǔ)進(jìn)行開發(fā)。
系統(tǒng)錄入部分采用C/S(Client/Server)結(jié)構(gòu),即客戶端和服務(wù)器結(jié)構(gòu)進(jìn)行開發(fā)??蛻舳丝砂粋€或多個在用戶的電腦上運(yùn)行的程序,而服務(wù)器端是數(shù)據(jù)庫服務(wù)器端,客戶端通過數(shù)據(jù)庫連接訪問服務(wù)器端的數(shù)據(jù)。
系統(tǒng)的客戶端采B/S(Browser/Server)結(jié)構(gòu),即瀏覽器和服務(wù)器結(jié)構(gòu)進(jìn)行開發(fā)。采用安全高效的Java EE開源框架Spring、Spring MVC 、JdbcTemplate組合,該框架組合具有高內(nèi)聚低耦合的特性,使業(yè)務(wù)代碼與頁面展示相互分離,確保系統(tǒng)數(shù)據(jù)的實(shí)時性、穩(wěn)定性、安全性,并創(chuàng)建豐富的窗體和可視化空間,達(dá)到界面美觀、友好的效果。
后臺數(shù)據(jù)庫服務(wù)器以O(shè)racle 11g數(shù)據(jù)庫為基礎(chǔ)進(jìn)行開發(fā),該數(shù)據(jù)庫具有快速故障切換、簡易管理和零數(shù)據(jù)丟失災(zāi)難保護(hù)功能,可以有效提高數(shù)據(jù)的可用性,最大限度地減小由于天災(zāi)、人為操作錯誤或正常維護(hù)等各種原因?qū)е峦C(jī)現(xiàn)象所帶來的風(fēng)險,滿足了油田生產(chǎn)管理過程中數(shù)據(jù)保存量大,存儲和讀取速度快的要求。
2 系統(tǒng)功能實(shí)現(xiàn)
該系統(tǒng)主要包括錄入系統(tǒng)和查詢系統(tǒng),錄入系統(tǒng)和查詢系統(tǒng)實(shí)現(xiàn)的主要功能如圖1所示。
圖1 生產(chǎn)經(jīng)營統(tǒng)計分析系統(tǒng)
錄入系統(tǒng)主要用于基層工作人員錄入基礎(chǔ)數(shù)據(jù),錄入完成后,數(shù)據(jù)進(jìn)入后臺數(shù)據(jù)庫保存?;A(chǔ)數(shù)據(jù)主要由工作人員通過錄入系統(tǒng)錄入,錄入的數(shù)據(jù)為月度查詢報表的主要數(shù)據(jù)來源,還有部分?jǐn)?shù)據(jù)通過本地數(shù)據(jù)庫與遠(yuǎn)程數(shù)據(jù)庫建立連接,從遠(yuǎn)程數(shù)據(jù)庫導(dǎo)入。在錄入系統(tǒng)添加了Excel導(dǎo)入導(dǎo)出功能,基層人員可以把已有的Excel報表直接導(dǎo)入錄入系統(tǒng),減少了工作人員的工作量,同時可以把錄入報表直接由數(shù)據(jù)庫導(dǎo)出,供其他的數(shù)據(jù)使用。
查詢系統(tǒng)報表將錄入系統(tǒng)的數(shù)據(jù)主要按分類、分區(qū)塊、分油田、分過程進(jìn)行單月和累計(多月)匯總,并可以對比分析每個月數(shù)據(jù)的變化曲線。上一級的查詢?nèi)藛T可以點(diǎn)擊某項(xiàng)數(shù)據(jù)追蹤到下一級別,找到數(shù)據(jù)來源。每個單位在每月數(shù)據(jù)匯總完成確定無誤后對數(shù)據(jù)進(jìn)審核后數(shù)據(jù)將鎖定不允許再更改。如果必須要更改,則必須由擁有更高系統(tǒng)權(quán)限的人員解除審核才能對數(shù)據(jù)進(jìn)行重新匯總,這樣確保數(shù)據(jù)的可靠性和安全性。生產(chǎn)經(jīng)營指標(biāo)查詢是對月度查詢報表中的部分重要數(shù)據(jù)進(jìn)行計算處理后得到的派生報表,在生產(chǎn)經(jīng)營指標(biāo)的分析結(jié)果以柱狀、餅狀、曲線等圖表的形式展現(xiàn)出來,能夠更直觀地反應(yīng)出相關(guān)的數(shù)據(jù)。并且在查詢界面有Excel導(dǎo)出功能,將匯總后的數(shù)據(jù)報表導(dǎo)出。
系統(tǒng)設(shè)有管理員,主要對系統(tǒng)進(jìn)行后臺維護(hù),主要包括用戶管理,用戶權(quán)限設(shè)置,下屬基層單位的維護(hù)(刪除,添加計量站/單井),網(wǎng)站新聞實(shí)時更新,文件管理和公告發(fā)布。
3 關(guān)鍵技術(shù)解決方案
3.1 數(shù)據(jù)連接池
由于數(shù)據(jù)庫訪問量比較大,故采用數(shù)據(jù)連接池+jdbcTemplate完成對數(shù)據(jù)庫的增刪改查操作。該連接池不僅具有具有dbcp連接池的所有功能,還可以監(jiān)控SQL語句的執(zhí)行以及session數(shù)量,監(jiān)控系統(tǒng)出現(xiàn)的錯誤,以便及時的進(jìn)行修改,可以監(jiān)控數(shù)據(jù)庫訪問性能,Druid內(nèi)置提供了一個功能強(qiáng)大的StatFilter插件,能夠詳細(xì)統(tǒng)計SQL的執(zhí)行性能,這對于線上分析數(shù)據(jù)庫訪問性能有幫助。druid連接池配置如下所示:
………連接數(shù)據(jù)庫………………
<!-- 初始化連接大小 -->
<!-- 連接池最大使用連接數(shù)量 -->
<!-- 連接池最小空閑 -->
<!-- 獲取連接最大等待時間 -->
<!-- 配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接-->
<!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
<!-- 打開removeAbandoned功能 ,自動回收超時連接-->
<!-- 超時時間1800秒-->
<!-- 關(guān)閉abanded連接時輸出錯誤日志 -->
由于需要大量執(zhí)行存儲過程,選擇Spring框架中的JdbcTemplate來操作數(shù)據(jù)庫中的數(shù)據(jù),jdbcTemplate封裝了jdbc的所有操作并且不用顯示關(guān)閉數(shù)據(jù)庫連接,當(dāng)用完連接后自動將連接釋放回連接池,提升了數(shù)據(jù)庫連接的時間,提高了系統(tǒng)的性能。
3.2 Jfreechart圖表生成
查詢端的圖表生成應(yīng)用了Jfreechart技術(shù),JFreeChart是Java平臺上的一個開放的圖表繪制類庫。它完全使用Java語言編寫,是為applications, applets, servlets 以及JSP等使用所設(shè)計。JFreeChart可生成餅圖、柱狀圖、散點(diǎn)圖、時序圖、甘特圖等多種圖表,并且可以產(chǎn)生PNG和JPEG格式的輸出,還可以與PDF和Excel關(guān)聯(lián),增強(qiáng)了系統(tǒng)數(shù)據(jù)分析對比能力。
例如生成一個柱狀圖:
//創(chuàng)建一個柱狀圖Bar3D bar=new Bar3D();
//給柱狀圖輸入數(shù)據(jù)
String axisX=" ";
//x軸名稱
String axisY="";
//y軸名稱
DefaultCategoryDataset dataset=bar.CreateDataset(數(shù)據(jù)集參數(shù));
title=DWMC+startdate+x[id]+”柱狀圖”;
//獲得生成的柱狀圖的文件名
String filename=bar.getchart(session,new PrintWriter(out),title,axisX,axisY,dataset,line);
//獲得生成的柱狀圖的路徑
String charturl=request.getContextPath() + “/servlet/DisplayChart?filename=" + filename;
然后在jsp中將這個地址嵌入img中,如下:
最后得到的柱狀分析圖表如圖2所示。
圖2 系統(tǒng)生成柱狀圖示例
4 結(jié) 語
生產(chǎn)經(jīng)營統(tǒng)計分析系統(tǒng)完成了班、站、崗位等各控制層面以單井、單機(jī)、單臺設(shè)備為基本統(tǒng)計單元的各類基礎(chǔ)數(shù)據(jù)錄入報表、月度查詢報表、累計查詢報表、生產(chǎn)經(jīng)營指標(biāo)以及各項(xiàng)指標(biāo)分析的設(shè)計編寫。用戶界面友好,數(shù)據(jù)存儲安全,讀取速度快,目前系統(tǒng)已穩(wěn)定運(yùn)行,為實(shí)際生產(chǎn)消耗,以及決策提供數(shù)據(jù)依據(jù)。
參考文獻(xiàn)
[1]趙大力,靳其兵,趙梅.Oracle 數(shù)據(jù)庫優(yōu)化解決方案[J].計算機(jī)應(yīng)用,2005(3):44-46.
[2]何月順,丁秋林.調(diào)整優(yōu)化Oracel9i 數(shù)據(jù)庫的性能[J].計算機(jī)應(yīng)用與軟件,2005,21(6):10-11.
[3]陸洲.Java EE核心模式研究[J].計算機(jī)與數(shù)字工程,2014,42(1):81-84.
[4]劉春穎.采用JAVA技術(shù)實(shí)現(xiàn)JAVA數(shù)據(jù)庫系統(tǒng)的應(yīng)用[J].計算機(jī)光盤軟件與應(yīng)用,2014(14):280-281.
[5]王蕓,陳漢章.社會經(jīng)濟(jì)統(tǒng)計學(xué)原理[M].成都: 西南財經(jīng)大學(xué)出版社,2001.
[6]易丹輝.數(shù)據(jù)分析與Eviews應(yīng)用[M].北京:中國統(tǒng)計出版社,2002.