姜水軍, 胡敏
(1.國家能源集團神東煤炭集團有限責任公司, 陜西 神木 719315;2.西安科技大學 計算機科學與技術學院, 陜西 西安 710054)
煤炭市場競爭日趨激烈,煤炭產(chǎn)品的價格直接與其質(zhì)量掛鉤。煤炭產(chǎn)品質(zhì)量與資源特性、地質(zhì)構造等自然條件相關,但煤炭產(chǎn)品質(zhì)量的穩(wěn)定性、煤炭的品種結構與企業(yè)煤質(zhì)管理水平相關[1-3]。煤炭生產(chǎn)鏈包括巷道掘進、工作面布置、原煤開采、洗選加工、質(zhì)檢審核、商品出售等環(huán)節(jié)。煤質(zhì)管理貫穿整個煤炭生產(chǎn)鏈,管理過程中形成了龐大而繁雜的煤質(zhì)數(shù)據(jù)[4]。目前,國家能源集團神東煤炭集團有限責任公司的煤質(zhì)管理按照不同職能部門的具體業(yè)務來設計,缺少對企業(yè)內(nèi)部各部門之間業(yè)務流程控制的功能,不能滿足企業(yè)對煤質(zhì)全過程的管控要求。具體存在以下問題:① 各生產(chǎn)環(huán)節(jié)的管理系統(tǒng)是依據(jù)業(yè)務需求獨立建設的,信息比較零散,沒有統(tǒng)一的數(shù)據(jù)字典,導致系統(tǒng)之間數(shù)據(jù)不統(tǒng)一,數(shù)據(jù)交換缺乏標準,數(shù)據(jù)得不到充分共享[5-6]。② 煤質(zhì)預測大部分是基于人工經(jīng)驗,效率低。③ 煤質(zhì)檢查與考核采用人工方式,耗費人力。針對上述問題,本文在分析煤質(zhì)管理業(yè)務的基礎上,設計了煤質(zhì)全過程管理系統(tǒng),可實現(xiàn)對各生產(chǎn)環(huán)節(jié)煤質(zhì)信息的統(tǒng)一管理,使得煤質(zhì)數(shù)據(jù)得到極大共享,提高煤質(zhì)管理水平。
(1) 生產(chǎn)礦井業(yè)務。生產(chǎn)礦井主要工作包括采煤工作面準備及原煤生產(chǎn)。采煤工作面準備過程中,在回風巷、運輸巷、切眼進行采樣,對煤樣采制化過程中產(chǎn)生的數(shù)據(jù)進行分類匯總,形成圖形、報表(如掘進生產(chǎn)日/月/旬報表、工作面采樣分布圖、巷道平面布置圖、煤層結構素描圖等)。在原煤生產(chǎn)過程中進行采樣、制樣、化驗,對原始數(shù)據(jù)進行分析、整理、統(tǒng)計、分類,產(chǎn)生原煤質(zhì)量、塊煤率、矸石量、含矸率等數(shù)據(jù)表,進而生成回采生產(chǎn)日/月/旬報表、原煤報表、原煤化驗單等。同時煤質(zhì)管理人員每天下井對采煤工作面、生產(chǎn)過程進行檢查,檢查結果形成回采工作面素描圖、檢查記錄單等,進而依據(jù)獎罰政策形成獎罰月/季/年報表。
(2) 選煤廠業(yè)務。選煤廠負責對生產(chǎn)礦井開采的原煤進行洗選加工,確保洗選中間產(chǎn)品和最終商品煤質(zhì)量指標達到最佳狀態(tài),最大限度起到穩(wěn)定和提高煤質(zhì)的作用。洗選過程中產(chǎn)生的數(shù)據(jù)包括入選原煤篩分試驗數(shù)據(jù)、快浮試驗數(shù)據(jù)、矸石浮沉試驗數(shù)據(jù)、商品煤煤質(zhì)檢測數(shù)據(jù)等,數(shù)據(jù)整理后得到煤質(zhì)數(shù)據(jù)統(tǒng)計報表、月綜合試驗報告、篩分試驗報告單等。
(3) 煤炭經(jīng)銷中心業(yè)務。煤炭經(jīng)銷中心負責原煤、商品煤和外購煤的煤質(zhì)檢測、煤質(zhì)管理和銷售工作。對原煤進行檢測,得到煤質(zhì)(灰分、水分、硫分、發(fā)熱量)數(shù)據(jù)報表,對商品煤進行采樣、制樣、化驗,形成商品煤煤質(zhì)數(shù)據(jù)日/月/旬報表等。對于外購煤收集煤質(zhì)數(shù)據(jù),形成外購煤煤質(zhì)數(shù)據(jù)報表。
(4) 煤質(zhì)預測預報。煤質(zhì)預測預報是實現(xiàn)煤炭資源合理配采的依據(jù),在開采前準確預測煤層煤質(zhì)分布情況,制定合理的開采計劃,實行精細化采掘。在煤質(zhì)管理中根據(jù)采煤工作面準備過程中采集的工作面要素和煤層煤樣、原煤生產(chǎn)過程產(chǎn)生的數(shù)據(jù)對工作面進行預測,得到工作面煤層結構三維立體圖、煤質(zhì)預測預報報表、計劃推進距離;綜合各工作面煤質(zhì)預測結果得到原煤煤質(zhì)預測結果,在此基礎上依據(jù)回歸公式得到商品煤煤質(zhì)核心指標預測結果,綜合預測結果形成生產(chǎn)計劃[7-8]。
應用jBPM(Java Business Process Management,業(yè)務流程管理)工作流技術[9-10],煤質(zhì)全過程管理系統(tǒng)工作流控制如圖1所示。流程定義是指設定煤質(zhì)信息審核、傳遞流程(包括設定流轉路徑、流程節(jié)點的審批人員等);流程部署是將流程定義和流程相關資源信息存儲到數(shù)據(jù)庫中;工作列表管理為流程操作者提供查看任務功能;表單管理將煤質(zhì)業(yè)務表單與工作流引擎掛接,使煤質(zhì)業(yè)務表單能夠按照工作流定義的流轉路徑進行傳遞;流程監(jiān)控用于監(jiān)管當前運行流程的狀態(tài)及其歷史軌跡,圖形化顯示流程實例的運行情況。
圖1 煤質(zhì)全過程管理系統(tǒng)工作流控制Fig.1 Workflow control of coal quality whole process management system
為了實現(xiàn)煤質(zhì)管理業(yè)務按照流程定義的規(guī)則流轉的同時,方便查看流程實例的狀態(tài)和控制審批人員對煤質(zhì)數(shù)據(jù)的訪問,在煤質(zhì)業(yè)務表單中添加狀態(tài)控制字段V_state來表示數(shù)據(jù)、圖表的審核狀態(tài):V_state為0,表示未審核;V_state為1,表示已審核;V_state為1*,表示不同級別人員審核(如11表示煤質(zhì)技術員審核,12表示職能部門領導審核)。
煤質(zhì)全過程管理系統(tǒng)功能如圖2所示。
圖2 煤質(zhì)全過程管理系統(tǒng)功能Fig.2 Function of coal quality whole process management system
(1) 煤質(zhì)數(shù)據(jù)錄入。將生產(chǎn)礦井、選煤廠、煤炭經(jīng)銷中心采集的煤質(zhì)數(shù)據(jù)(如原煤煤樣、生產(chǎn)煤樣、地質(zhì)資料、入選原煤篩分試驗數(shù)據(jù)、煤質(zhì)檢測數(shù)據(jù)、日常煤質(zhì)檢查記錄等)通過Web平臺錄入數(shù)據(jù)庫中。若數(shù)據(jù)存儲在Excel中,可通過Java POI技術導入數(shù)據(jù)。
(2) 數(shù)據(jù)分析與統(tǒng)計。使用數(shù)據(jù)庫級聯(lián)操作從煤質(zhì)數(shù)據(jù)中按需提取數(shù)據(jù),按照具體業(yè)務需求,形成相應的圖表。
(3) 圖形處理。從數(shù)據(jù)庫中獲取工作面信息、煤層煤樣信息,運用WebGL三維引擎下的Three.js技術,得到工作面采樣分布圖、煤層結構素描圖、工作面素描圖、工作面煤層結構三維立體圖。
(4) 煤質(zhì)信息檢索。用戶可按照單位、時間等查詢條件對原煤、商品煤、外購煤的煤質(zhì)信息進行檢索。
(5) 煤質(zhì)預測與計劃。利用采煤工作面準備過程中采集的煤樣數(shù)據(jù)和原煤生產(chǎn)過程中的采樣、化驗數(shù)據(jù),使用克里金算法和經(jīng)驗公式構建煤質(zhì)指標估算模型,運用該模型得到工作面煤質(zhì)和原煤煤質(zhì)預測結果;根據(jù)商品煤參數(shù)和特殊煤種信息,預測商品煤煤質(zhì)。參考煤質(zhì)預測結果得到原煤計劃和商品煤計劃。
(6) 煤質(zhì)考核。依據(jù)日常煤質(zhì)檢查記錄,讀取各單位罰款、扣分情況及其原因,在煤質(zhì)計劃中讀取發(fā)熱量計劃并和實際發(fā)熱量進行對比,生成煤質(zhì)評分報表和現(xiàn)場問題匯總報表,依據(jù)報表對生產(chǎn)礦井、選煤廠、煤炭經(jīng)銷中心、煤質(zhì)管理小組進行考核。
(7) 報表輸出。利用Vue搭配Element UI框架實現(xiàn)報表輸出。
為保證煤質(zhì)數(shù)據(jù)流轉的有效性、安全性,防止“非法用戶”入侵系統(tǒng)或“合法用戶”不慎操作造成系統(tǒng)數(shù)據(jù)損失[11-12],設計了基于樹形功能模塊的RBAC(Role-Based Access Control,基于角色的訪問控制)權限控制模型。
煤質(zhì)管理涉及部門眾多,需要針對各部門不同人員分別配置權限,權限配置過程較繁瑣。為簡化對不同部門用戶的權限配置,劃分不同功能模塊,主要包括基礎信息模塊、煤質(zhì)預測與計劃模塊、煤質(zhì)檢查與考核模塊、選煤廠管理模塊、圖表管理模塊等。為更好地體現(xiàn)功能之間的從屬關系,采用樹形結構存儲功能列表,該存儲方式便于結合RBAC模型進行權限配置。
以基礎信息模塊為例,其樹形結構如圖3所示。基礎信息模塊為父結點,工作面信息為其子結點,同時工作面信息為掘進工作面信息的父結點,同一層的掘進工作面信息和回采工作面信息為兄弟結點。通過數(shù)據(jù)庫在存儲功能列表時添加表示功能之間父子關系的字段,系統(tǒng)獲取功能列表時先找到父結點,然后查找父結點的所有子結點,逐層遞歸獲取存儲信息,最后生成樹形功能模塊。
圖3 基礎信息模塊樹形結構Fig.3 Tree structure of basic information module
權限配置過程:首先針對部門建立用戶,然后為用戶進行角色指派,再根據(jù)用戶的角色為其配置功能,最后通過激活角色獲得系統(tǒng)權限。
權限配置采用過濾方式,部門的權限是對整個樹形功能模塊進行操作,部門下的不同角色、同一角色的不同用戶按照實際業(yè)務需求過濾樹形功能模塊中無權操作的功能分枝,得到相應的權限。將權限進行細粒度劃分,包括功能、按鈕和規(guī)則。當用戶登錄系統(tǒng)時,系統(tǒng)按照權限配置情況將對用戶授權的功能呈現(xiàn)給登錄用戶。
(1) 前后端分離開發(fā)模式。煤質(zhì)全過程管理涉及的數(shù)據(jù)龐大且存在復用問題,為避免代碼重構、提升系統(tǒng)性能,采用前后端分離開發(fā)模式。該模式實現(xiàn)高內(nèi)聚低耦合,減少后端服務器的并發(fā)/負載壓力,可使后臺更好地追求高并發(fā)、高可用、高性能,使前端更好地追求頁面表現(xiàn)、速度流暢、兼容性、用戶體驗。① 前端使用Vue技術,其采用Model-View-ViewModel(模型-視圖-視圖模型,MVVM)模式進行數(shù)據(jù)綁定。Vue的核心庫只關注視圖層,方便與第三方庫或既有項目整合。傳統(tǒng)的前端采用Model-View-Controller(模型-視圖-控制器,MVC)模式,即用戶操作會請求服務器路由,路由調(diào)用對應的控制器處理,將獲取的數(shù)據(jù)返回前臺進行渲染。MVVM模式則是將數(shù)據(jù)綁定到ViewModel層,自動將數(shù)據(jù)渲染到頁面上,視圖變化會通知ViewModel層更新數(shù)據(jù)[13]。② 后端使用Spring Boot框架,該框架不僅繼承了Spring框架原有的優(yōu)秀特性,還通過使用特定方式來進行自動配置,從而使開發(fā)人員不再需要定義樣板化的配置,簡化新Spring應用的初始搭建及開發(fā)過程[13-15]。
(2) Three.js技術。三維可視化使用Three.js技術,其對WebGL提供的接口進行二次封裝,用于構建無插件、可移植、跨平臺、支持多瀏覽器運行的三維可視化模型。在使用Three.js繪制三維立體圖時,要先定義場景,用來存放所創(chuàng)建對象的容器,如燈光、物體。然后創(chuàng)建相機,確定顯示場景的范圍和角度。最后創(chuàng)建渲染器,將場景和相機添加到渲染器中,映射到二維平面。
(3) 安全訪問控制。用戶訪問控制使用Spring Security安全策略。Spring Security是一個功能強大且高度可定制的身份驗證和訪問控制框架,主要功能是認證、授權、攻擊防護。Spring Boot針對Spring Security提供了自動化配置方案,可以零配置使用Spring Security[16]。
(4) 數(shù)據(jù)存儲。數(shù)據(jù)存儲使用MySQL數(shù)據(jù)庫,具有以下優(yōu)勢:該數(shù)據(jù)庫是開源軟件,可降低使用成本;體積小,命令執(zhí)行速度快;數(shù)據(jù)存儲量大,可滿足煤礦企業(yè)大型數(shù)據(jù)存儲需要[17]。
煤質(zhì)全過程管理系統(tǒng)利用工作流技術使煤質(zhì)信息在企業(yè)內(nèi)部充分共享;通過基于樹形功能模塊的RBAC權限控制模型使煤質(zhì)數(shù)據(jù)安全、有效地在各部門之間流轉。該系統(tǒng)實現(xiàn)了煤質(zhì)相關數(shù)據(jù)的錄入、分析、整理、統(tǒng)計,形成了相應的煤質(zhì)報表/圖形、煤質(zhì)預測計劃等,有利于各級管理部門對煤質(zhì)信息的實時監(jiān)控,保證了煤質(zhì)信息流通的及時性、真實性和安全性。