李琳
(大慶油田儲(chǔ)運(yùn)銷售分公司資產(chǎn)設(shè)備管理部,黑龍江 大慶 163453)
隨著信息化的高速發(fā)展,各油田企業(yè)都將提高工作效率、提升企業(yè)競爭力作為新的追求目標(biāo)。油庫輸油調(diào)度令的下達(dá)體系主要有如下問題需要改善:一方面,隨著能源消耗的不斷增長,儲(chǔ)運(yùn)銷售部門每月都會(huì)產(chǎn)生大量的輸油調(diào)度信息,而企業(yè)目前缺乏對這些信息的規(guī)范化管理,導(dǎo)致這些重要信息無法妥善保存,容易丟失。另一方面,人工電話聯(lián)系進(jìn)行輸油調(diào)度令下達(dá)的方式已不能夠滿足企業(yè)信息化的要求,在一定程度上阻礙著企業(yè)競爭力的提升。本文根據(jù)油田儲(chǔ)運(yùn)銷售部門的實(shí)際應(yīng)用需要,建立了輸油調(diào)度命令管理數(shù)據(jù)庫,實(shí)現(xiàn)了大量調(diào)度令的規(guī)范化保存和管理。同時(shí),設(shè)計(jì)了一套基于B/S模式的輸油調(diào)度管理系統(tǒng)。通過本系統(tǒng),輸油調(diào)度命令的下達(dá)、簽發(fā)以及接收都可以在網(wǎng)絡(luò)環(huán)境下完成,并且實(shí)現(xiàn)了Word文檔在網(wǎng)絡(luò)環(huán)境下的動(dòng)態(tài)生成與下載,大大減少了時(shí)間和人力的耗費(fèi),提升了企業(yè)的工作效率。
根據(jù)輸油調(diào)度命令實(shí)際下達(dá)的基本流程(如圖1),以及命令下達(dá)方、簽發(fā)方和接收方之間的交互關(guān)系,對本系統(tǒng)做如下需求分析[1]:
第一,作為服務(wù)器端的管理員必須能夠?qū)eb內(nèi)容進(jìn)行創(chuàng)建和修改,能夠?qū)蛻舳说恼埱笞黾皶r(shí)的處理。對于客戶端來講,系統(tǒng)應(yīng)該具備與客戶進(jìn)行實(shí)時(shí)交互的功能,客戶通過瀏覽器查看命令內(nèi)容后,做出相應(yīng)反應(yīng)并且實(shí)時(shí)反饋給服務(wù)器端。這一功能就要求本系統(tǒng)具有動(dòng)態(tài)網(wǎng)頁特點(diǎn),能夠?qū)崿F(xiàn)復(fù)雜的Web應(yīng)用。
第二,該系統(tǒng)必須有后臺(tái)數(shù)據(jù)庫支持。對于企業(yè)來講,輸油調(diào)度命令作為一項(xiàng)商業(yè)秘密,必須利用數(shù)據(jù)庫進(jìn)行妥善的保存和管理。另外,在服務(wù)器端和客戶端進(jìn)行交互的過程中,大量數(shù)據(jù)信息的調(diào)用和存儲(chǔ),需要利用數(shù)據(jù)庫來實(shí)現(xiàn)。在系統(tǒng)的安全性方面,要求對客戶端的訪問進(jìn)行控制,防止系統(tǒng)資源被非法竊取以及外部對服務(wù)器的惡意損耗和攻擊。
第三,作為核心技術(shù)之一,該系統(tǒng)應(yīng)具備動(dòng)態(tài)生成Word文檔及提供下載的功能。
圖1 命令下達(dá)流程圖
依據(jù)輸油調(diào)度令下達(dá)的實(shí)際流程,綜合考慮命令下達(dá)、簽發(fā)、接收這三方的交互關(guān)系,為本數(shù)據(jù)庫設(shè)計(jì)了如下幾個(gè)數(shù)據(jù)表[2]:
表1 輸油調(diào)度命令數(shù)據(jù)庫各個(gè)數(shù)據(jù)表
本系統(tǒng)采用的是B/S模式的三層體系結(jié)構(gòu),客戶端采用Web瀏覽器顯示服務(wù)器端的運(yùn)行結(jié)果,并利用數(shù)據(jù)庫操作技術(shù)進(jìn)行一些事務(wù)處理。服務(wù)器端則負(fù)責(zé)接收遠(yuǎn)程或本地的頁面請求,借助于ADO中間部件將數(shù)據(jù)請求發(fā)送到數(shù)據(jù)庫服務(wù)器上以獲取相關(guān)數(shù)據(jù),再把結(jié)果數(shù)據(jù)轉(zhuǎn)化成Html及各種腳本傳回客戶端的Web瀏覽器上。數(shù)據(jù)庫服務(wù)器負(fù)責(zé)管理數(shù)據(jù)庫,處理數(shù)據(jù)的存儲(chǔ)、更新、查詢及修改等要求。結(jié)構(gòu)示意圖如下:
圖2 系統(tǒng)結(jié)構(gòu)示意圖
各模塊的功能分別如下:
(1)調(diào)度令下達(dá)模塊:用于下達(dá)調(diào)度命令以及指定相應(yīng)的接收單位,命令下達(dá)成功之后,命令內(nèi)容將會(huì)傳遞給命令簽發(fā)人,等待簽發(fā)。同時(shí),下令人具有修改調(diào)度令的權(quán)限。
(2)調(diào)度令簽發(fā)模塊:本模塊主要是用于對調(diào)度令進(jìn)行確認(rèn)和核實(shí),如果發(fā)現(xiàn)調(diào)度令有誤,則可以將錯(cuò)誤信息反饋給下令人,由下令人對命令進(jìn)行修改。如果命令準(zhǔn)確無誤,則確認(rèn)簽發(fā)。命令簽發(fā)之后將傳遞給指定的命令接收方,等待接收。在調(diào)度令簽發(fā)之前,系統(tǒng)將禁止接收方接收命令。
(3)調(diào)度令接收模塊:調(diào)度令下達(dá)之后,指定的接收單位將在該模塊完成調(diào)度令的接收,而且接收完成的信息將會(huì)反饋到命令下達(dá)方。
(4)調(diào)度令查詢和文檔生成模塊:該模塊提供了調(diào)度令查詢功能,用戶可以根據(jù)自己的需求查詢數(shù)據(jù)庫中的每一條記錄,并且可以根據(jù)查詢的結(jié)果動(dòng)態(tài)生成Word文檔。
客戶端主要完成輸油調(diào)度命令的瀏覽、查詢以及與服務(wù)器端進(jìn)行交互。本系統(tǒng)客戶端的用戶主要就是三類:命令下達(dá)人、簽發(fā)人以及接收人,這三者一方面通過瀏覽器接收來自服務(wù)器端的信息,另一方面又要向服務(wù)器發(fā)出數(shù)據(jù)請求。當(dāng)用戶通過瀏覽器進(jìn)入到主頁之后,系統(tǒng)就會(huì)根據(jù)用戶的權(quán)限和狀態(tài),從數(shù)據(jù)庫中查找相關(guān)的信息發(fā)送到客戶端,客戶端的用戶收到信息之后,做出反應(yīng)將數(shù)據(jù)請求反饋給服務(wù)器端,這樣就完成了客戶端與服務(wù)器端的交互。以命令接收者為例說明,當(dāng)它進(jìn)入主頁時(shí),系統(tǒng)將相應(yīng)的命令信息發(fā)送到該用戶的頁面上,用戶對命令進(jìn)行瀏覽、查詢之后,進(jìn)行簽名確認(rèn),即將反饋信息又發(fā)送到服務(wù)器上[3]。
服務(wù)器端的功能主要是處理來自客戶端的數(shù)據(jù)請求,實(shí)現(xiàn)與客戶端的實(shí)時(shí)交互。在本系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)當(dāng)中,針對客戶端的每一個(gè)用戶,都建立了與之對應(yīng)的數(shù)據(jù)表,負(fù)責(zé)存儲(chǔ)和管理該用戶的數(shù)據(jù)。當(dāng)服務(wù)器端接收到來自客戶端的數(shù)據(jù)請求之后,系統(tǒng)就會(huì)執(zhí)行相應(yīng)的數(shù)據(jù)庫操作,比如,數(shù)據(jù)查詢、插入、修改、更新、刪除等,以期實(shí)現(xiàn)客戶端的請求,完成對數(shù)據(jù)庫的操作之后,再將信息發(fā)送到客戶端,這樣就實(shí)現(xiàn)了二者的實(shí)時(shí)交互。
根據(jù)實(shí)際情況的需要,為方便用戶對輸油調(diào)度命令的利用與存檔,系統(tǒng)設(shè)計(jì)了此功能。要實(shí)現(xiàn)此功能,我們首先要設(shè)計(jì)一個(gè)Word模板(dot格式)放在網(wǎng)站的根目錄下,然后編程對該模板進(jìn)行一系列的操作。主要過程就是,讀取該模板,然后從數(shù)據(jù)庫中提取數(shù)據(jù),填充到Word模板相應(yīng)的位置,最后將模板另存為一個(gè)Word文檔(doc格式)。要在Visual C#.Net中操作Word,我們還需要在命名空間中進(jìn)行如下引用:using Microsoft.Office.Interop.Word。
操作Word的基本操作如下:
①讀取想添加的模板
object strfile Name=this.Map Path("App_Data/輸油調(diào)度命令記錄.dot");
②定義新的Word.Application Class對象
Word.Application Class WordApp = new Word.Application Class();
③定義新的Word.Document對象
Word.Document WordDoc=new Word.DocumentClass();
實(shí)例化WordDoc
WordDoc= WordApp.Documents.Open(ref strfile Name,refmissing…)
④操作Word模板中的書簽,向模板指定位置填充數(shù)據(jù)。
⑤設(shè)置另存對話框源地址
object strsave = this.MapPath("App_Data/temp/輸油調(diào)度命令記錄.doc");
⑥保存WordDoc文檔對象內(nèi)容:WordDoc.SaveAs(ref strsave,ref missing…)
關(guān)閉WordDoc文檔對象:WordDoc.Close(ref missing,ref missing…)
關(guān)閉WordApp組件對象:WordApp.Quit(ref missing,ref missing…)
⑦將上述源地址中的Word文檔另存。
基于B/S模式的輸油調(diào)度網(wǎng)絡(luò)管理平臺(tái)很好地滿足了油田儲(chǔ)運(yùn)銷售部門的實(shí)際需求,實(shí)現(xiàn)了油田企業(yè)的網(wǎng)絡(luò)化、便捷化辦公,大大提高了辦公效率,該系統(tǒng)可以在油田企業(yè)中廣泛推廣。
[1]張海藩.軟件工程導(dǎo)論[M].清華大學(xué)出版社,2007:45-62.
[2]王珊.薩師煊.數(shù)據(jù)庫系統(tǒng)概論[M].高等教育出版社,2006:198-234.