李漣,易鐵祥,鄒毅輝
(湖南省火電建設(shè)公司,湖南株洲412000)
火電工程項(xiàng)目建設(shè)具有資金密集、技術(shù)密集、資源密集等特點(diǎn),隨著機(jī)組容量的增大,需要的物資材料的品種和數(shù)量也越來(lái)越多。對(duì)于火電建設(shè)企業(yè),目前火電建設(shè)項(xiàng)目普遍存在前期策劃時(shí)間少、工期緊、質(zhì)量要求高等特點(diǎn),要在有限的時(shí)間內(nèi)處理大量的物資管理信息,做到快速、準(zhǔn)確傳遞,單靠傳統(tǒng)的人力手工已無(wú)能為力,同時(shí),由于各工程項(xiàng)目部分散在各地,更增加了物資管理的難度,因此對(duì)企業(yè)的物資管理水平、效率及降低成本等,提出更高的要求。
近年來(lái),隨著計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的發(fā)展,基于計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的信息管理系統(tǒng)得到了各火電建設(shè)企業(yè)的重視,而物資管理系統(tǒng)是其重要的子系統(tǒng)之一,也具有特殊性,其相應(yīng)的系統(tǒng)開(kāi)發(fā)必須根據(jù)其特點(diǎn)進(jìn)行。文中結(jié)合湖南火電建設(shè)公司物資管理系統(tǒng)的開(kāi)發(fā),重點(diǎn)對(duì)系統(tǒng)的結(jié)構(gòu)與主要功能及具體的實(shí)現(xiàn)技術(shù)進(jìn)行研究與探討。
物資管理系統(tǒng)作為火電建設(shè)企業(yè)信息管理的一個(gè)模塊,它的主要功能包括:數(shù)據(jù)的錄入、修改、刪除,各種格式的附件上傳及下載,物資需用計(jì)劃、合同簽訂、合同付款等電子審批流程,輸出EXCEL等格式的報(bào)表,根據(jù)組合查詢(xún)方式對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、匯總、分析。本系統(tǒng)包括計(jì)劃管理,合同管理,帳務(wù)管理,憑證管理,物資報(bào)表,物資查詢(xún)、系統(tǒng)管理7個(gè)部分。
計(jì)劃管理是匯總各部門(mén)的物資需用計(jì)劃,確定需求總量,結(jié)合現(xiàn)有的庫(kù)存情況,生成相應(yīng)的物資采購(gòu)計(jì)劃或調(diào)撥計(jì)劃。計(jì)劃管理共分為物資需用計(jì)劃、物資采購(gòu)計(jì)劃及器材調(diào)撥計(jì)劃3種。物資需用計(jì)劃包括需用計(jì)劃編制、需用計(jì)劃修改及需用計(jì)劃查詢(xún);物資采購(gòu)計(jì)劃包括采購(gòu)計(jì)劃編制、采購(gòu)計(jì)劃維護(hù)、詢(xún)價(jià)清單編制及詢(xún)價(jià)清單維護(hù);調(diào)撥計(jì)劃包括物資的調(diào)出和物資的調(diào)入,器材調(diào)撥必須先由計(jì)劃員編制調(diào)撥計(jì)劃,然后再由計(jì)劃員將調(diào)撥計(jì)劃交給保管員發(fā)料或收料。
對(duì)各類(lèi)物資合同進(jìn)行管理,包括合同的錄入、修改、維護(hù)及合同的審批、付款審批等。合同管理包括合同列表、合同審批、合同付款、付款審批、合同詢(xún)價(jià)情況、合同收料情況。
對(duì)物資的領(lǐng)用、入庫(kù)、庫(kù)存進(jìn)行管理和統(tǒng)計(jì),同時(shí)根據(jù)架子管、跳板等周轉(zhuǎn)性材料與工程材料的管理差別,單獨(dú)設(shè)一個(gè)子項(xiàng)目進(jìn)行管理。帳務(wù)管理包括收料管理、發(fā)料管理、調(diào)撥管理、周轉(zhuǎn)材料管理4個(gè)部分。其中收料管理包括驗(yàn)收登記、物資收料、收料統(tǒng)計(jì)修改;發(fā)料管理包括預(yù)發(fā)登記、物資發(fā)料、按需用計(jì)劃發(fā)料、發(fā)料統(tǒng)計(jì)修改;調(diào)撥管理包括調(diào)撥計(jì)劃發(fā)料、調(diào)撥統(tǒng)計(jì)修改;周轉(zhuǎn)材料管理包括周轉(zhuǎn)材料維護(hù)、周轉(zhuǎn)材料租用、租用單據(jù)修改、周轉(zhuǎn)材料回收、回收單據(jù)修改、周轉(zhuǎn)材料取費(fèi)、周轉(zhuǎn)材料費(fèi)用統(tǒng)計(jì)、周轉(zhuǎn)材料數(shù)量統(tǒng)計(jì)。
憑證管理包括材質(zhì)證書(shū)、合格證以及收料、發(fā)料、調(diào)撥單據(jù)的稽核。對(duì)于材質(zhì)證書(shū)和合格證由于廠家一般只提供紙質(zhì)文件,為了查詢(xún)方便,可以將其掃描后再錄入其電子文本。在收料與發(fā)料時(shí)錄入材質(zhì)證書(shū)的編號(hào),就可以查詢(xún)出該材質(zhì)證書(shū)的收料發(fā)料情況。單據(jù)稽核時(shí)可以一條條的單據(jù)稽核,也可以將當(dāng)前表格中的單據(jù)一次稽核通過(guò)。
物資管理系統(tǒng)單據(jù)眾多,關(guān)系比較復(fù)雜,物資報(bào)表就顯得比較重要,物資報(bào)表分四大類(lèi),包括初始統(tǒng)計(jì),收料報(bào)表,消耗報(bào)表,綜合報(bào)表,共有14個(gè)子項(xiàng),且能根據(jù)不同的組合方式生成各種報(bào)表,以EXCEL等方式實(shí)現(xiàn)報(bào)表的輸出,統(tǒng)計(jì)結(jié)果實(shí)現(xiàn)“所見(jiàn)即所得”。
物資查詢(xún)具有多個(gè)字段組合查詢(xún)的功能,并且能夠進(jìn)行統(tǒng)計(jì)匯總,以EXCEL等方式輸出統(tǒng)計(jì)結(jié)果,包括部門(mén)統(tǒng)計(jì)查詢(xún)、供貨單位查詢(xún)、現(xiàn)有材料庫(kù)存、價(jià)格平臺(tái)信息。
主要為運(yùn)行物資材料管理系統(tǒng)前的初始參數(shù)設(shè)置,系統(tǒng)參數(shù)包括物資材料庫(kù)、物資編碼、統(tǒng)計(jì)碼維護(hù)、工程項(xiàng)目編碼維護(hù)等。為了實(shí)現(xiàn)全公司范圍內(nèi)物資管理,首先必須保證每條物資記錄的唯一性,即保證物資編碼、工程項(xiàng)目編碼等編碼的唯一性。
系統(tǒng)的開(kāi)發(fā)采用Visual Studio 2005語(yǔ)言、SQL Server2008數(shù)據(jù)庫(kù)。公司總部設(shè)置中央服務(wù)器,存放公用數(shù)據(jù)和各項(xiàng)目部上傳數(shù)據(jù),并對(duì)各項(xiàng)目部的數(shù)據(jù)進(jìn)行分析和匯總;各項(xiàng)目部設(shè)立局域網(wǎng)并安裝服務(wù)器,運(yùn)行本項(xiàng)目部的數(shù)據(jù),并通過(guò)Internet與公司總部進(jìn)行聯(lián)系和數(shù)據(jù)交換;員工外出或出差時(shí),可以通過(guò)遠(yuǎn)程終端訪問(wèn)總部或項(xiàng)目部服務(wù)器,系統(tǒng)結(jié)構(gòu)見(jiàn)圖1。
圖1 系統(tǒng)結(jié)構(gòu)圖
為了便于管理和維護(hù),本系統(tǒng)分為企業(yè)版和項(xiàng)目版,2個(gè)版本的應(yīng)用程序及數(shù)據(jù)庫(kù)結(jié)構(gòu)基本相同,公司總部和項(xiàng)目部服務(wù)器分別安裝數(shù)據(jù)庫(kù)和應(yīng)用程序,企業(yè)版和項(xiàng)目版功能的主要差異是,根據(jù)對(duì)登陸系統(tǒng)的人員是公司總部還是項(xiàng)目部人員的識(shí)別,實(shí)現(xiàn)自動(dòng)登陸企業(yè)版或?qū)?yīng)的項(xiàng)目版,并可選取不同的功能菜單。系統(tǒng)的開(kāi)發(fā)采用較多的新技術(shù),其主要特點(diǎn)及實(shí)現(xiàn)方式如下:
因此,知識(shí)可視化和網(wǎng)絡(luò)媒介素養(yǎng)教育的目的是一致的,都是為了知識(shí)的傳播和知識(shí)的創(chuàng)造。知識(shí)可視化是從知識(shí)呈現(xiàn)的形式上的視覺(jué)化來(lái)促進(jìn)知識(shí)的傳播;網(wǎng)絡(luò)媒介素養(yǎng)教育是從技術(shù)手段上促進(jìn)知識(shí)的傳播。如果把二者結(jié)合起來(lái),快速傳播的網(wǎng)絡(luò)媒介技術(shù)承載著易懂的可視化的信息,人們既可以快速地獲取信息,又能快速地解讀信息,使得人們?cè)谛畔r(shí)代中所面臨的更快、更多地掌握知識(shí)的難題得到了解決。
本系統(tǒng)采用智能客戶(hù)端開(kāi)發(fā)程序,它利用B/S模式易維護(hù)的優(yōu)點(diǎn)和C/S模式響應(yīng)速度快的優(yōu)點(diǎn),是一種可擴(kuò)展的能集成不同應(yīng)用的桌面應(yīng)用程序。在本系統(tǒng)中,具體的實(shí)現(xiàn)方式如下:
(1)自動(dòng)更新程序
系統(tǒng)首次運(yùn)行時(shí),自動(dòng)將物質(zhì)管理系統(tǒng)的程序下載到本地,從而充分利用本地資源,節(jié)約服務(wù)器資源,以后程序自動(dòng)更新依靠IE的緩存機(jī)制來(lái)完成,即當(dāng)運(yùn)行一個(gè)應(yīng)用程序時(shí),IE向Web服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求,該請(qǐng)求獲取服務(wù)器上該程序的最新更新日期,如果該日期大于本地緩存程序的日期或者本地緩存中不存在該程序,則從服務(wù)器上下載,否則直接使用本地的程序。
(2)數(shù)據(jù)無(wú)縫轉(zhuǎn)換
系統(tǒng)在連接到網(wǎng)絡(luò)以及從網(wǎng)絡(luò)斷開(kāi)連接時(shí)都能有效地工作,并且能夠在這2種情況之間無(wú)縫地轉(zhuǎn)換。為此,系統(tǒng)運(yùn)行時(shí),首先將系統(tǒng)常用的服務(wù)端大部分?jǐn)?shù)據(jù)緩存到本地,就本系統(tǒng)而言,根據(jù)當(dāng)時(shí)調(diào)用的功能菜單決定下載到本地的數(shù)據(jù),如進(jìn)行物質(zhì)需用計(jì)劃編制時(shí),將材料庫(kù)、工程項(xiàng)目編碼等數(shù)據(jù)調(diào)用到本地。處于在線狀態(tài)時(shí),本地?cái)?shù)據(jù)暫時(shí)保存在內(nèi)存中,當(dāng)數(shù)據(jù)需要經(jīng)過(guò)操作后保存回遠(yuǎn)程數(shù)據(jù)庫(kù)時(shí),使用DataSet的數(shù)據(jù)適配器DataAdaTVer將變化的量返回?cái)?shù)據(jù)庫(kù)操作,這樣既加快了本地的運(yùn)行速度又節(jié)省了資源。如果應(yīng)用程序在斷線的狀態(tài)下工作,則將數(shù)據(jù)保存回本地的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),待再次連線時(shí),裝載到DataSet進(jìn)行處理,從而實(shí)現(xiàn)數(shù)據(jù)無(wú)縫轉(zhuǎn)換。
本系統(tǒng)有大量的審批流程,如物資需用計(jì)劃、合同會(huì)簽、合同付款的審批等,為實(shí)現(xiàn)以上流程,采用了金福瑞公司的UCML.NET工作流二次開(kāi)發(fā)平臺(tái),大大提高了工作效率。UCML工作流參照WfMC相關(guān)工作流標(biāo)準(zhǔn)設(shè)計(jì),主要包括4個(gè)部分:可視化流程設(shè)計(jì)、工作流引擎與服務(wù)、流程管理、可視化的工作流流程監(jiān)控。以項(xiàng)目部物資需用計(jì)劃審批流程為例,在UCML開(kāi)發(fā)平臺(tái)中,工作流的設(shè)計(jì)完全實(shí)現(xiàn)了可視化,開(kāi)發(fā)人員直接在工作流編輯器上設(shè)計(jì)流程圖,如圖2。
圖2 工作流程圖
為了實(shí)現(xiàn)全公司范圍內(nèi)的物資管理,需要進(jìn)行公司本部和各項(xiàng)目部的數(shù)據(jù)的交換。本系統(tǒng)通過(guò)SQL Server 2008的復(fù)制功能實(shí)現(xiàn)公司范圍內(nèi)的數(shù)據(jù)交換,具體的策略如下。
為了便于數(shù)據(jù)的復(fù)制,企業(yè)版和項(xiàng)目版的數(shù)據(jù)庫(kù)結(jié)構(gòu)基本相同。根據(jù)具體功能和要求的不同,對(duì)不同的數(shù)據(jù)采用了不同的復(fù)制方式,如為了實(shí)現(xiàn)全公司范圍內(nèi)的物資管理及數(shù)據(jù)的統(tǒng)計(jì)和分析,對(duì)于系統(tǒng)公用的數(shù)據(jù)如物資編碼、項(xiàng)目部名稱(chēng)、工程名稱(chēng)、部門(mén)名稱(chēng)、班組名稱(chēng),均建立單獨(dú)的數(shù)據(jù)庫(kù)表單,由公司總部數(shù)據(jù)庫(kù)服務(wù)器發(fā)表,各項(xiàng)目部數(shù)據(jù)庫(kù)服務(wù)器預(yù)訂,從而實(shí)現(xiàn)項(xiàng)目部以上數(shù)據(jù)的自動(dòng)更新,全公司數(shù)據(jù)的統(tǒng)一。
(2)采用不同的復(fù)制時(shí)間
根據(jù)不同數(shù)據(jù)的實(shí)時(shí)性要求,采用不同的復(fù)制時(shí)間。如公用數(shù)據(jù)、物資需用計(jì)劃數(shù)據(jù)等每天復(fù)制1次,而其它一些不常用報(bào)表類(lèi)的數(shù)據(jù)則每周復(fù)制1次,以此來(lái)減輕服務(wù)器的工作負(fù)擔(dān),同時(shí)為了少占用高峰期資源,復(fù)制設(shè)置在凌晨進(jìn)行。
本系統(tǒng)中,有大量的報(bào)表需要輸出和打印,采用將數(shù)據(jù)導(dǎo)出生成XML文件,然后將XML文件轉(zhuǎn)換為EXCEL等格式文件方式來(lái)實(shí)現(xiàn)。采用XML+XSLT技術(shù)實(shí)現(xiàn)導(dǎo)出功能,具有速度快,節(jié)約本地及服務(wù)器資源,并且能生成各種格式文件等優(yōu)點(diǎn),具體的實(shí)現(xiàn)分2步:
(1)將數(shù)據(jù)導(dǎo)出生成XML文件,利用DataSet的公共方法GetXml來(lái)實(shí)現(xiàn)。
(2)將XML文件轉(zhuǎn)換成EXCEL文件,此處采用XSLT技術(shù),首先設(shè)計(jì)好XSLT模板,然后利用C#+XSLT實(shí)現(xiàn)。
至此,就將XML文件轉(zhuǎn)換成了所需的EXCEL或者其它格式文件。
本系統(tǒng)中,經(jīng)常有大的文件,如供貨廠家的資質(zhì)證明材料掃描件需要上傳錄人數(shù)據(jù)庫(kù)中,而IIS6出于安全考慮,對(duì)于默認(rèn)請(qǐng)求大小有很?chē)?yán)格的限制,雖然可以通過(guò)修改 metabase.xml的ASPMaxRequestEntityAllowed的值來(lái)修改運(yùn)行的最大請(qǐng)求大小,但是在實(shí)際運(yùn)行中,通過(guò)IIS上傳的文件大小超過(guò)4M時(shí)容易出現(xiàn)種種問(wèn)題。本系統(tǒng)中,上傳大文件的解決方案就是將大文件切塊上傳,通過(guò)修改配置文件將需要上傳的文件分割成1M大小數(shù)據(jù)塊,然后通過(guò)Web Service上傳到服務(wù)器中。此解決方案主要需要解決2個(gè)問(wèn)題:
(1)分割文件,主要通過(guò)Stream的Read和Seek方法實(shí)現(xiàn)讀取文件的指定位置指定長(zhǎng)度的數(shù)據(jù),從而實(shí)現(xiàn)將一個(gè)整體文件分成多個(gè)數(shù)據(jù)段上傳。
(2)服務(wù)端對(duì)數(shù)據(jù)庫(kù)的操作,借助于UPDATETEXT實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)text,ntext及image列部分進(jìn)行修改。示例語(yǔ)句如下:
在實(shí)際應(yīng)用中,配合使用進(jìn)度條,上傳200 M大小的文件很穩(wěn)定,上傳速度也比較理想。
采用智能客戶(hù)端技術(shù)開(kāi)發(fā)物資管理系統(tǒng),綜合了B/S模式易維護(hù)性的優(yōu)點(diǎn)和C/S模式響應(yīng)速度快的優(yōu)點(diǎn),UCML工作流、數(shù)據(jù)復(fù)制、XML+XSLT、大附件上傳等技術(shù)的應(yīng)用有利于提高系統(tǒng)的整體性能,其解決方案也可為類(lèi)似軟件的開(kāi)發(fā)提供借鑒。本物資管理系統(tǒng)已經(jīng)在湖南省火電建設(shè)公司多個(gè)建設(shè)工程中使用,并取得了良好的應(yīng)用效果。