馬 云 劉福剛 李紅旗 晁 陽(yáng) 楊程華
(中國(guó)石油吐哈油田公司物資保障中心)
中國(guó)石油吐哈油田公司物資保障中心被定為油田公司HSE 標(biāo)準(zhǔn)化站隊(duì)建設(shè)示范單位之一,按照集團(tuán)公司《基層站隊(duì)HSE 標(biāo)準(zhǔn)化建設(shè)工作實(shí)施意見(jiàn)》和《油田公司基層站隊(duì)HSE 標(biāo)準(zhǔn)化建設(shè)指導(dǎo)意見(jiàn)》的要求,開(kāi)始了HSE 標(biāo)準(zhǔn)化站隊(duì)建設(shè)示范和推廣工作。 為了提升合規(guī)管理水平,車(chē)間和廠部加大了管理力度,對(duì)生產(chǎn)、安全及培訓(xùn)等每一處環(huán)節(jié)建立了資料信息庫(kù),但各車(chē)間的HSE站隊(duì)信息數(shù)據(jù)量大,管理組織困難。 如果外部委托開(kāi)發(fā)管理軟件,不但價(jià)格高、開(kāi)發(fā)周期長(zhǎng),而且需求分析很難全部滿足。為了實(shí)現(xiàn)各車(chē)間HSE 標(biāo)準(zhǔn)化站隊(duì)信息的統(tǒng)一平臺(tái)管理,進(jìn)一步提高HSE標(biāo)準(zhǔn)化站隊(duì)的數(shù)字化管理水平,自行設(shè)計(jì)開(kāi)發(fā)一款平臺(tái)軟件,實(shí)現(xiàn)各車(chē)間HSE 標(biāo)準(zhǔn)化站隊(duì)信息的統(tǒng)一平臺(tái)和結(jié)構(gòu)有序管理軟件迫在眉睫。
經(jīng)過(guò)前期調(diào)研,基于網(wǎng)絡(luò)化的HSE 標(biāo)準(zhǔn)化站隊(duì)建設(shè)信息管理軟件應(yīng)具備以下功能:
a. 各車(chē)間和部門(mén)的HSE 標(biāo)準(zhǔn)化站隊(duì)建設(shè)信息應(yīng)實(shí)現(xiàn)統(tǒng)一平臺(tái)管理和共享;
b. 軟件應(yīng)實(shí)現(xiàn)三塘湖、哈密和鄯善的網(wǎng)絡(luò)分布式辦公;
c. 各車(chē)間和部門(mén)管理員可以維護(hù)本單位HSE 標(biāo)準(zhǔn)化站隊(duì)建設(shè)的信息資料。
將以上需求進(jìn)一步抽象化,概括出該軟件系統(tǒng)應(yīng)包括三大方面:一是HSE 標(biāo)準(zhǔn)化站隊(duì)信息的分權(quán)化維護(hù)管理業(yè)務(wù),二是HSE 標(biāo)準(zhǔn)化站隊(duì)信息的使用業(yè)務(wù),三是網(wǎng)絡(luò)化數(shù)據(jù)庫(kù)訪問(wèn)管理業(yè)務(wù)。
HSE 標(biāo)準(zhǔn)化站隊(duì)信息的參與角色由系統(tǒng)維護(hù)員、車(chē)間管理員和普通用戶構(gòu)成。 其中系統(tǒng)維護(hù)員負(fù)責(zé)軟件系統(tǒng)改造、軟件升級(jí)、軟件發(fā)布及車(chē)間管理員注冊(cè)等業(yè)務(wù)。 車(chē)間管理員負(fù)責(zé)所在車(chē)間HSE 標(biāo)準(zhǔn)化站隊(duì)信息的維護(hù)管理工作。維護(hù)管理業(yè)務(wù)包括文件體系的管理、各文件夾的資料上傳、在線閱覽、快速下載及刪除等。
HSE 標(biāo)準(zhǔn)化站隊(duì)建設(shè)信息資料的使用業(yè)務(wù)由用戶完成,用戶通過(guò)結(jié)構(gòu)樹(shù)快速訪問(wèn)結(jié)構(gòu)化的各車(chē)間和部門(mén)站隊(duì)建設(shè)信息資料,使用業(yè)務(wù)包括文件的在線閱覽、快速下載及文件定位等。
數(shù)據(jù)庫(kù)在管理系統(tǒng)中有著非常重要的地位[1],建立合理的多用戶共享數(shù)據(jù)庫(kù)是開(kāi)發(fā)本系統(tǒng)的關(guān)鍵。 通過(guò)E-R 方法(圖1)設(shè)計(jì)關(guān)系型數(shù)據(jù)庫(kù)模型。
從圖1 可以看出,HSE 標(biāo)準(zhǔn)化站隊(duì)建設(shè)信息的文件資料在數(shù)據(jù)庫(kù)中占有核心地位,文件資料與其他實(shí)體基本上都是多對(duì)多和一對(duì)多的關(guān)系,根據(jù)這種關(guān)系可以在數(shù)據(jù)庫(kù)中建立相應(yīng)的表,涉及的表有:文件信息表、文件表及用戶表等。 文件信息表用于記錄各基層單位考評(píng)細(xì)則目錄,并與文件表通過(guò)關(guān)鍵字一對(duì)多關(guān)聯(lián)。 文件表存在二進(jìn)制的基層站隊(duì)文件。 用戶表用于記錄員工編號(hào)、部門(mén)及角色等信息。
圖1 軟件E-R 關(guān)系流程
由于數(shù)據(jù)庫(kù)為關(guān)系型的數(shù)據(jù)庫(kù),為了加速檢索和滿足前臺(tái)需求, 使用了虛擬的視圖功能,對(duì)重構(gòu)數(shù)據(jù)進(jìn)行組合和快速檢索。
考慮到信息數(shù)據(jù)安全、 軟件開(kāi)發(fā)周期等因素,軟件開(kāi)發(fā)采用Client/Server 結(jié)構(gòu)。 通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到客戶端和服務(wù)端來(lái)實(shí)現(xiàn),降低系統(tǒng)的通信開(kāi)銷(xiāo)。 這樣既減輕了服務(wù)器負(fù)擔(dān)又提高了系統(tǒng)的處理效率[2]。 服務(wù)器端由數(shù)據(jù)庫(kù)服務(wù)器和項(xiàng)目服務(wù)器構(gòu)成。 數(shù)據(jù)庫(kù)服務(wù)器軟件(后端)主要用于處理數(shù)據(jù)查詢或數(shù)據(jù)操作的請(qǐng)求。 項(xiàng)目服務(wù)器用于瀏覽器安裝項(xiàng)目和軟件自動(dòng)升級(jí)。 軟件框架如圖2 所示。
圖2 軟件框架
本系統(tǒng)采用Microsoft VS2015 作為前臺(tái)開(kāi)發(fā)環(huán)境平臺(tái),Microsoft SQL Server 2008 作為后臺(tái)數(shù)據(jù)庫(kù)服務(wù)器。 主界面采用結(jié)構(gòu)樹(shù)瀏覽的布局,如圖3 所示。
圖3 主界面結(jié)構(gòu)樹(shù)布局
按照需求設(shè)計(jì)HSE 標(biāo)準(zhǔn)化站隊(duì)建設(shè)的信息資料應(yīng)統(tǒng)一平臺(tái)管理和閱覽,因此左側(cè)結(jié)構(gòu)樹(shù)根目錄名稱為4 個(gè)車(chē)間和部門(mén),分別為:機(jī)泵保運(yùn)中心、油管車(chē)間、抽油機(jī)保運(yùn)中心和壓縮機(jī)維修中心。 結(jié)構(gòu)樹(shù)一級(jí)目錄為各車(chē)間名稱,二級(jí)以上目錄為各部門(mén)的HSE 考評(píng)細(xì)則目錄。通過(guò)單擊目錄及其子目錄,在主界面右側(cè)顯示該文件夾下面的標(biāo)準(zhǔn)化站隊(duì)建設(shè)信息資料。
在線閱覽功能為用戶提供了快捷方便的車(chē)間站隊(duì)建設(shè)資料的在線閱覽功能。 資料以字節(jié)形式存儲(chǔ)于數(shù)據(jù)庫(kù)文件表中, 為實(shí)現(xiàn)在線閱覽功能,首先在電腦指定目錄創(chuàng)建文件夾,其次調(diào)用select 指令查詢用戶所需文件, 并以文件數(shù)據(jù)流FileStream 寫(xiě)入創(chuàng)建文件夾中, 最后執(zhí)行shell()指令使用辦公軟件將存在指定位置的文件打開(kāi)。
用戶根據(jù)文件名可以實(shí)現(xiàn)基層站隊(duì)建設(shè)的資料下載功能,資料數(shù)據(jù)庫(kù)存儲(chǔ)策略為編號(hào)列遞增策略,因此將編號(hào)列設(shè)計(jì)為主鍵,文件顯示時(shí),在表格的最后一列隱藏了編號(hào)列,單擊下載功能時(shí),根據(jù)主鍵定位、查詢和下載用戶需求文件。
各車(chē)間和部門(mén)的基層站隊(duì)建設(shè)資料成百上千,如果用戶不知道資料在結(jié)構(gòu)樹(shù)的位置,可以使用文件定位功能快速找到, 為了提高檢索效率, 文件定位功能提供模糊和精確查詢兩種模式,select 語(yǔ)句中使用 “=” 執(zhí)行精確查詢, 使用“l(fā)ike”執(zhí)行模糊查詢。
精確查詢程序如下:
模糊查詢程序如下:
查詢后的結(jié)果顯示在DataGridView 表格中。文件查詢界面如圖4 所示。
圖4 文件查詢界面
上傳文件功能由ContextMenuStrip 控件實(shí)現(xiàn),通過(guò)右擊ContextMenuStrip 控件,彈出上傳界面并添加上傳文件實(shí)現(xiàn)上傳文件功能。 上傳文件分為普通上傳和批量上傳,普通上傳單次只能上傳一個(gè)文件, 批量上傳單次可以上傳多個(gè)文件。上傳文件功能為車(chē)間管理員的專有權(quán)限,普通用戶無(wú)法上傳文件。 程序通過(guò)select 語(yǔ)句查詢數(shù)據(jù)庫(kù)用戶信息表Privilge_Level 權(quán)限字段的數(shù)值確定用戶級(jí)別,Privilge_Level 權(quán)限字段大于1 時(shí),ContextMenuStrip 控件可顯示并允許操作。當(dāng)上傳界面啟動(dòng)時(shí),界面Load 事件會(huì)將結(jié)構(gòu)樹(shù)選擇的文件夾級(jí)數(shù)、各級(jí)文件夾名稱、文件類型寫(xiě)入上傳界面變量中,批量上傳文件提供指定文件夾的查重過(guò)濾功能,防止空文件和同文件夾下的重復(fù)文件錄入。 批量上傳程序流程如圖5 所示。
文件刪除功能為車(chē)間管理員特有的權(quán)限,各車(chē)間的管理員只能刪除本車(chē)間的信息資料。 登錄軟件后,當(dāng)程序檢測(cè)到用戶是車(chē)間管理員且查詢的是本車(chē)間文件時(shí),本車(chē)間的文件表格第3 列顯示文件刪除鏈接。 DataGridView 表格第0 列隱藏有文件在數(shù)據(jù)庫(kù)的主鍵號(hào)ID,用戶執(zhí)行刪除命令后, 根據(jù)主鍵號(hào)刪除文件表中的二進(jìn)制文件,程序指令如下:
圖5 批量上傳程序流程
文件夾管理功能由ContextMenuStrip 控件右擊實(shí)現(xiàn)。 文件夾管理包含創(chuàng)建子目錄和刪除目錄,刪除目錄將刪除該目錄下的所有文件和考評(píng)細(xì)則文件夾。 軟件通過(guò)前臺(tái)攔截技術(shù)防止空文件夾和同目錄重復(fù)文件夾的創(chuàng)建。
考評(píng)細(xì)則為各車(chē)間和部門(mén)站隊(duì)建設(shè)資料的總目錄,目錄信息量較大,軟件創(chuàng)建方法繁瑣,通過(guò)Excel 批量導(dǎo)入技術(shù), 實(shí)現(xiàn)考評(píng)的快速導(dǎo)入目錄功能。 程序具體步驟如下:
a. 創(chuàng)建OpenFileDialog 對(duì)象,通過(guò)ShowDialog 指令獲取打開(kāi)的Excel 考評(píng)細(xì)則目錄文件名。
b. 創(chuàng)建Excel.Application 和Workbook 對(duì)象,將考評(píng)細(xì)則目錄文件名和Workbook 關(guān)聯(lián), 使用sxlBook.Worksheets 對(duì)象獲取考評(píng)細(xì)則目錄文件的文件, 文件指定a 行和b 列內(nèi)容使用屬性sxl-Sheet.Cells(a,b).value 獲取。
c. 通過(guò)for 循環(huán), 將每行的目錄信息數(shù)據(jù)通過(guò)SQLinsert 插入指令錄入至數(shù)據(jù)庫(kù)中。
如圖6 所示,通過(guò)應(yīng)用數(shù)據(jù)庫(kù)服務(wù)器遠(yuǎn)程訪問(wèn)技術(shù)和網(wǎng)絡(luò)技術(shù),三塘湖、哈密和鄯善片區(qū)各基層站隊(duì)的用戶可以完成分布式網(wǎng)絡(luò)辦公。
圖6 數(shù)據(jù)庫(kù)服務(wù)器和網(wǎng)絡(luò)布局
為了實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)SQL 數(shù)據(jù)庫(kù)數(shù)據(jù)的功能,SQL Server 管理器配置成遠(yuǎn)程連接服務(wù)器模式,并且SQL 登錄用戶賬號(hào)應(yīng)與程序賬號(hào)信息一致。最后啟用SQL 配置管理器的TCP/IP 和端口功能, 并將IP 地址設(shè)置為SQL Server 服務(wù)器的內(nèi)網(wǎng)地址,端口默認(rèn)1433。
軟件用戶定義了3 種角色(圖7),不同角色設(shè)有不同權(quán)限,通過(guò)權(quán)限分配劃分用戶職責(zé)。
以往各車(chē)間和部門(mén)的HSE 標(biāo)準(zhǔn)化站隊(duì)建設(shè)信息資料版本多,并且存儲(chǔ)在不同電腦中,容易造成管理混亂和丟失。 通過(guò)資料的集中化和統(tǒng)一平臺(tái)管理, 實(shí)現(xiàn)了全廠HSE 標(biāo)準(zhǔn)化資料的共享、借鑒和考核。
圖7 軟件角色分配
Client/Server 框架的缺點(diǎn)之一是維護(hù)繁瑣,通過(guò)使用異步更新技術(shù),可以實(shí)現(xiàn)軟件客戶端的自動(dòng)更新。 具體步驟如下:
a. 首先將最新版軟件安裝文件存放在IIS 項(xiàng)目服務(wù)器端的指定文件中,并將文件夾關(guān)聯(lián)和聯(lián)機(jī)至設(shè)置的URL 和端口上。 VS2015 軟件設(shè)置更新后的軟件版本號(hào)和修訂號(hào),并配置啟動(dòng)網(wǎng)頁(yè)和端口,軟件程序更新和最新版發(fā)布后,安裝文件將自動(dòng)保存在指定文件中。
b. 在IIS 管理器中新建網(wǎng)址項(xiàng)目, 將物理地址映射至安裝文件夾上,并設(shè)置項(xiàng)目服務(wù)器IP 地址。
c. 最后啟動(dòng)網(wǎng)站。 當(dāng)客戶端啟動(dòng)軟件后,用戶就可以在網(wǎng)頁(yè)中一鍵更新和升級(jí)至最新版的應(yīng)用程序。
HSE 標(biāo)準(zhǔn)化站隊(duì)信息資料內(nèi)容多而雜,通過(guò)軟件平臺(tái)在全廠和車(chē)間部門(mén)的推廣,有效實(shí)現(xiàn)了各基層站隊(duì)資料的科學(xué)有序管理。 軟件自上線以來(lái),經(jīng)過(guò)不斷的測(cè)試,軟件功能、布局和美觀度不斷提升,滿足了用戶的所有需求,應(yīng)用效果良好。