劉艷雯,吳 濤,沈 彬,楊金棟,龐 達(dá)
(海洋石油工程(青島)有限公司,青島 266100)
近些年來(lái),海洋石油工程建造技術(shù)取得了突破性的進(jìn)展與成效,在建造管理方面也積極的向數(shù)字化與智能化轉(zhuǎn)型。目前,海洋石油工程承攬的多個(gè)項(xiàng)目都應(yīng)用了工程項(xiàng)目管理軟件,實(shí)現(xiàn)了工程建造施工數(shù)據(jù)管理標(biāo)準(zhǔn)化與規(guī)范化。但是從設(shè)計(jì)到現(xiàn)場(chǎng)施工,數(shù)據(jù)在系統(tǒng)當(dāng)中形成了一個(gè)閉環(huán),對(duì)項(xiàng)目其他管理人員來(lái)說(shuō),獲取數(shù)據(jù)的時(shí)間周期長(zhǎng),數(shù)據(jù)時(shí)效性與準(zhǔn)確性無(wú)法保證。其中一個(gè)LNG項(xiàng)目應(yīng)用PCMS系統(tǒng)管理結(jié)構(gòu)與電儀專(zhuān)業(yè)的施工,應(yīng)用CMS/VM管理管線專(zhuān)業(yè)施工,兩個(gè)系統(tǒng)運(yùn)行在不同的局域網(wǎng)下,獲取數(shù)據(jù)的溝通成本以及數(shù)據(jù)處理的人力成本較高。所以結(jié)合實(shí)際需求,深化推廣施工管理系統(tǒng)應(yīng)用,在實(shí)際管理層面推進(jìn)數(shù)字化建設(shè),在某大型LNG項(xiàng)目中設(shè)計(jì)一個(gè)施工數(shù)據(jù)的共享平臺(tái),方便項(xiàng)目管理施工數(shù)據(jù)獲取。
工程項(xiàng)目管理系統(tǒng)在施工管理上具有特有的優(yōu)勢(shì),但是缺少數(shù)據(jù)共享以及可視化的平臺(tái),施工數(shù)據(jù)封閉在系統(tǒng)內(nèi),增加管理人員和施工人員獲取數(shù)據(jù)的溝通成本。所以平臺(tái)建設(shè)的主要目的是實(shí)現(xiàn)跨局域網(wǎng)抽取PCMS、CMS這兩個(gè)工程項(xiàng)目管理系統(tǒng)中的結(jié)構(gòu)、管線和電儀專(zhuān)業(yè)核心施工數(shù)據(jù),將其分析處理后,輸出為可讀性高,能夠用于實(shí)際工作中分析使用的報(bào)表。
1.2.1 數(shù)據(jù)準(zhǔn)確性
系統(tǒng)數(shù)據(jù)庫(kù)的結(jié)構(gòu)復(fù)雜,直接訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù)對(duì)普通用戶來(lái)說(shuō)有一定難度,對(duì)訪問(wèn)者要求較高,并且可能引起安全問(wèn)題。高效準(zhǔn)確的方式是向用戶直接提供經(jīng)過(guò)簡(jiǎn)化的,可讀性高的數(shù)據(jù)表。杜絕人為干預(yù),有效保證數(shù)據(jù)的準(zhǔn)確性。
1.2.2 數(shù)據(jù)時(shí)效性
由于平臺(tái)承載了上百萬(wàn)數(shù)據(jù)的分析、處理和下載。所以為了保證平臺(tái)的響應(yīng)速度,該平臺(tái)抽取施工管理系統(tǒng)的核心數(shù)據(jù),進(jìn)行分析處理。并且大部分的數(shù)據(jù)同步以及數(shù)據(jù)處理的工作都設(shè)定在非工作時(shí)間運(yùn)行,保證提供給用戶的數(shù)據(jù)具有高時(shí)效性,節(jié)約用戶獲取數(shù)據(jù)的時(shí)間,提高效率。
1.2.3 網(wǎng)站并發(fā)性
該平臺(tái)的用戶較多,并且集中在工作日早上,所以確保多用戶同時(shí)下載訪問(wèn)的系統(tǒng)的穩(wěn)定性以及響應(yīng)速度。
1.2.4 界面友好
保證應(yīng)用界面簡(jiǎn)潔易操作。
該平臺(tái)開(kāi)發(fā)使用的語(yǔ)言是Python,Python作為一種膠水語(yǔ)言,支持多種平臺(tái),開(kāi)發(fā)時(shí)間短,成本低,功能強(qiáng)大,簡(jiǎn)單易學(xué),可讀性高,并且可以使用龐大的第三方庫(kù)來(lái)處理大部分的問(wèn)題。Django 1.11.12 MVT模式充當(dāng)了項(xiàng)目整體骨架,其擴(kuò)展性強(qiáng),更容易重構(gòu)代碼,后續(xù)維護(hù)成本低。Django框架接收了用戶請(qǐng)求和參數(shù)后,再匹配URL,轉(zhuǎn)發(fā)給對(duì)應(yīng)視圖(view.py)進(jìn)行處理,View是開(kāi)發(fā)框架中的核心,負(fù)責(zé)接收請(qǐng)求、獲取數(shù)據(jù)、返回結(jié)果。視圖調(diào)用Model處理數(shù)據(jù),再調(diào)用template返回界面給瀏覽器(如圖1)。
圖1 Django MVT模式
數(shù)據(jù)共享平臺(tái)的系統(tǒng)架構(gòu)如圖2所示。
圖2 數(shù)據(jù)共享平臺(tái)系統(tǒng)架構(gòu)
系統(tǒng)架構(gòu)從下向上分為運(yùn)行環(huán)境、數(shù)據(jù)庫(kù)、業(yè)務(wù)層、展示層、用戶界面和訪問(wèn)層。業(yè)務(wù)層實(shí)現(xiàn)包括結(jié)構(gòu),管線在內(nèi)等多個(gè)專(zhuān)業(yè)的常用報(bào)表等基礎(chǔ)信息的下載以及結(jié)構(gòu)、管線、涂裝專(zhuān)業(yè)進(jìn)度數(shù)據(jù)的處理、查看下載功能。展示層提供瀏覽器訪問(wèn)頁(yè)面時(shí)的AJAX(異步的JavaScript和XML)請(qǐng)求;前端界面采用最新的UI技術(shù),保證功能性、美觀性,以及良好的用戶體驗(yàn);最上面為訪問(wèn)層系統(tǒng)采用HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議),為用戶提供實(shí)時(shí)響應(yīng)。
該平臺(tái)采用的是體積小、速度快、總體擁有成本低的關(guān)系型數(shù)據(jù)庫(kù)MySQL數(shù)據(jù)庫(kù)。
MySQL數(shù)據(jù)庫(kù)的建立是為了兼容來(lái)源于施工管理系統(tǒng)的Oracle數(shù)據(jù)庫(kù)以及SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)。由于讀取的數(shù)據(jù)在施工管理系統(tǒng)中經(jīng)過(guò)組織,所以數(shù)據(jù)中心平臺(tái)的后臺(tái)數(shù)據(jù)庫(kù)無(wú)需再次組織數(shù)據(jù)結(jié)構(gòu)與表關(guān)系。這些數(shù)據(jù)有一部分可以直接使用,另外一部分則需要根據(jù)實(shí)際的需求做數(shù)據(jù)清洗工作。雖然Python在數(shù)據(jù)處理方面具有獨(dú)特的優(yōu)勢(shì),但是為了便于管理以及統(tǒng)一維護(hù),設(shè)計(jì)一些視圖來(lái)實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)分析處理。
該平臺(tái)的數(shù)據(jù)更新和數(shù)據(jù)分析依靠部署服務(wù)器和Python腳本保證正常運(yùn)行,所以在網(wǎng)站以及數(shù)據(jù)庫(kù)搭建完成之后,需要通過(guò)對(duì)支持網(wǎng)站的服務(wù)器和Python腳本進(jìn)行部署來(lái)實(shí)現(xiàn)PCMS和CMS/VM數(shù)據(jù)集成以及數(shù)據(jù)更新自動(dòng)化。
由于PCMS和CMS/VM兩個(gè)施工管理系統(tǒng)分管不同的專(zhuān)業(yè),這兩個(gè)系統(tǒng)不在同一局域網(wǎng)下,所以使網(wǎng)站能夠覆蓋全專(zhuān)業(yè)數(shù)據(jù),首先需要解決跨局域網(wǎng)讀取CMS數(shù)據(jù)的問(wèn)題。為了解決該問(wèn)題,單獨(dú)設(shè)立了一臺(tái)具有VPN權(quán)限的服務(wù)器,該服務(wù)器既能夠訪問(wèn)CMS數(shù)據(jù)庫(kù),也能夠訪問(wèn)網(wǎng)站后臺(tái)數(shù)據(jù)庫(kù)。在該服務(wù)器中利用任務(wù)管理器,建立兩個(gè)定時(shí)任務(wù),無(wú)限期每隔12小時(shí)重復(fù)運(yùn)行一次,通過(guò)運(yùn)行腳本,定時(shí)訪問(wèn)CMS數(shù)據(jù)庫(kù)讀取最新數(shù)據(jù),將讀取數(shù)據(jù)表寫(xiě)進(jìn)網(wǎng)站后臺(tái)MySQL數(shù)據(jù)庫(kù)中。
但是除了更新同步數(shù)據(jù),還在腳本中嵌入了進(jìn)度數(shù)據(jù)分析計(jì)算的程序代碼,這樣就能夠在自動(dòng)更新數(shù)據(jù)的同時(shí),計(jì)算出施工進(jìn)度,并將進(jìn)度報(bào)表同樣寫(xiě)入網(wǎng)站后臺(tái)MySQL數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)智能化數(shù)據(jù)分析。
除了遷移CMS的腳本,網(wǎng)站還開(kāi)發(fā)部署了三個(gè)腳本用來(lái)同步PCMS數(shù)據(jù)。這三個(gè)腳本同樣嵌入了各自進(jìn)度計(jì)算的程序代碼,能夠在分別同步結(jié)構(gòu)、涂裝、電儀專(zhuān)業(yè)的基礎(chǔ)信息和施工數(shù)據(jù)的同時(shí)處理數(shù)據(jù),生產(chǎn)進(jìn)度分析報(bào)表。
常用下載頁(yè)面(圖3)中根據(jù)項(xiàng)目各個(gè)專(zhuān)業(yè)的具體需求,提供了26個(gè)報(bào)表,包括材料、結(jié)構(gòu)、管線、試壓包與電儀專(zhuān)業(yè)的基礎(chǔ)施工數(shù)據(jù),并對(duì)報(bào)表內(nèi)容進(jìn)行了簡(jiǎn)單的描述,訪問(wèn)者可以選擇需要的報(bào)表,點(diǎn)擊下載。報(bào)表通常是.xlsx和.csv格式輸出。
圖3 常用下載頁(yè)面
通過(guò)和管理人員的溝通,了解到進(jìn)度統(tǒng)計(jì)每周都需要重復(fù)相同的數(shù)據(jù)處理工作。所以該平臺(tái)利用自身的數(shù)據(jù)優(yōu)勢(shì),深入挖掘數(shù)據(jù)特點(diǎn),通過(guò)定制網(wǎng)站后臺(tái)數(shù)據(jù)庫(kù)視圖、開(kāi)發(fā)腳本使進(jìn)度統(tǒng)計(jì)工作在每日數(shù)據(jù)更新之后依靠Python腳本自動(dòng)執(zhí)行完成。目前提供的進(jìn)度數(shù)據(jù)包括結(jié)構(gòu)、管線專(zhuān)業(yè)的預(yù)制與安裝這兩個(gè)施工階段。
此處以管線安裝的進(jìn)度計(jì)算報(bào)表的輸出為例展現(xiàn)進(jìn)度計(jì)算邏輯(圖4)。先將管線安裝狀態(tài)跟蹤表與管線安裝工步權(quán)重表映射合并。然后將FIELD_ID(該管的總焊接量)的值替換掉工部完成日期,如果該工步完成時(shí)間為空,則填充為0。這樣每個(gè)單管每個(gè)工部完成焊接寸徑與其對(duì)應(yīng)權(quán)重相乘再累加的值,即該管線工作完成量。根據(jù)模塊號(hào)、層號(hào)和管線材質(zhì)分組求和,得出最終進(jìn)度計(jì)算表。進(jìn)度統(tǒng)計(jì)報(bào)表既結(jié)合SQL Server和MySQL的數(shù)據(jù),同時(shí)也應(yīng)用了SQL語(yǔ)句和Python語(yǔ)言,通過(guò)自動(dòng)更新與計(jì)算運(yùn)行,減少了計(jì)劃團(tuán)隊(duì)每周的結(jié)算工作量,準(zhǔn)確性較高。
圖4 進(jìn)度數(shù)據(jù)分析模塊
為了補(bǔ)充施工結(jié)構(gòu)化數(shù)據(jù)不直觀的短板,在現(xiàn)有數(shù)據(jù)基礎(chǔ)上補(bǔ)充了數(shù)據(jù)可視化圖表模塊,直觀展現(xiàn)施工狀態(tài)。
圖5 試壓包狀態(tài)跟蹤統(tǒng)計(jì)圖
該平臺(tái)通過(guò)同步PCMS系統(tǒng)和CMSVM系統(tǒng)數(shù)據(jù),集成材料采辦專(zhuān)業(yè)、結(jié)構(gòu)專(zhuān)業(yè)、管線專(zhuān)業(yè)、電儀專(zhuān)業(yè)的核心施工數(shù)據(jù),分享給項(xiàng)目管理人員,實(shí)現(xiàn)共享,減少溝通成本。目前,平臺(tái)所提供的數(shù)據(jù)已經(jīng)能夠滿足項(xiàng)目運(yùn)行大部分需求,為管理人員了解施工情況,并根據(jù)施工現(xiàn)狀調(diào)整管理策略提供了數(shù)據(jù)支持。除了上述功能已經(jīng)實(shí)現(xiàn)的功能之外,網(wǎng)站也將會(huì)隨著項(xiàng)目的不斷深入而做出數(shù)據(jù)的改進(jìn)與調(diào)整。