吳 波
(中鐵二十三局集團有限公司,四川成都 610031)
地下工程安全風險事件的來源很復雜,由于安全風險事件不只在項目建設施工階段發(fā)生,還包括很多早在地下工程項目的規(guī)劃設計階段就開始萌發(fā)的直接或間接的相關事件[1-2]。為了降低安全風險對實現(xiàn)地下工程項目目標構成的巨大威脅,必須在項目前期對風險事件開展仔細研究,對地下工程項目進行安全風險分析,以其作為參考,制定項目安全風險策略,從而確保項目目標的順利實現(xiàn)[3-4]。隨著計算機互聯(lián)網(wǎng)的時代的到來,工程流程化,工程無紙化作業(yè)迅速得到發(fā)展,徐媛等人提出建立面向地鐵施工及運營過程的安全設計知識庫[5],從而對地鐵施工運營的安全措施方案進行有效的管理,但該系統(tǒng)依托于Revit運行環(huán)境,不利于安裝和擴展。余宏亮.等人研究了工程圖紙的地鐵車站施工安全風險自動識[6],通過計算機來識別AutoCAD工程圖來判斷地鐵施工中的風險,該系統(tǒng)識別AutoCAD圖紙的原理是通過建立AutoCAD圖紙圖層庫,從而對整個圖紙進行讀取,所以對AutoCAD工程圖紙繪制要求較高,容易造成錯誤識別或識別不準。目前城市地下結構安全措施規(guī)范仍然停留在紙質(zhì)管理階段,基于目前這些問題,建立獨立的城市地下結構安全設計信息的可視化系統(tǒng)具有重要意義,通過后臺建立統(tǒng)一的數(shù)據(jù)庫管理,前端設計可視化操作界面,工作人員可以快速輕松地查詢各類環(huán)境和條件下的安全措施,同時為進一步的無紙化自動識別施工安全措施開發(fā)提供基礎。
由于城市地下空間結構安全風險來源復雜且分類較多。
(1)第一步:需要基于Access2016數(shù)據(jù)庫來建立支持系統(tǒng)的數(shù)據(jù)庫[7],根據(jù)網(wǎng)絡化拓建、類型、分類、風險源和控制措施分別建立數(shù)據(jù)表,數(shù)據(jù)表又相互聯(lián)系,通過建立一對多,多對多和多對一的關系來解讀各個數(shù)據(jù)表之間的關系。
(2)第二步:根據(jù)C#語言和AccessDatabaseEngine來對后臺數(shù)據(jù)庫進行可視化的系統(tǒng)搭建[8],用戶不需要懂數(shù)據(jù)庫相關知識,但用戶可以通過與可視化界面進行交互,以此來實現(xiàn)操作后臺數(shù)據(jù)庫。
(3)第三步:分配不同權限級別來訪問及操作數(shù)據(jù)庫。
(4)第四步:實現(xiàn)用戶對查詢結果進行Excel報表,C#對Excel操作方法比較多,最常用的是通過OLE方式編程[9],但該方法需要Office環(huán)境支持,讀取速度也比較慢,基于Java平臺的POI技術具有高效快速Excel報表特點,同時不需要安裝Office[10],本系統(tǒng)采用POI的.NET版本,即:NPOI。
圖1為系統(tǒng)功能結構圖,系統(tǒng)安裝用戶權限級別分為兩個模塊進行設計,分別為超級管理員和普通用戶。
圖1 系統(tǒng)功能結構
1.1.1 超級管理員登錄模塊
該模塊主要實現(xiàn)超級管理員用戶的所有功能,數(shù)據(jù)入庫(導入數(shù)據(jù)的格式見圖2)、根據(jù)查詢條件查詢對應的控制措施、對查詢的數(shù)據(jù)記錄的進行修改和刪除,清空各類數(shù)據(jù)表、管理普通用戶、查詢結果報表等功能。
圖2 導入數(shù)據(jù)文件格式
1.1.2 普通用戶登錄模塊
該模塊主要實現(xiàn)監(jiān)測數(shù)據(jù)導入、項目屬性和原始記錄管理,數(shù)據(jù)預處理。支持數(shù)據(jù)的插入、刪除、修改、自動保存等操作。
本系統(tǒng)后臺數(shù)據(jù)庫名稱為安全設計數(shù)據(jù)庫,圖3為該數(shù)據(jù)庫的ER關系圖。
圖3 E-R關系
表1為安全設計數(shù)據(jù)庫中的數(shù)據(jù)表名稱匯總。
表1 數(shù)據(jù)庫表
1.2.1 實體數(shù)據(jù)表
(1)網(wǎng)絡化拓建數(shù)據(jù)表(表2)。
表2 網(wǎng)絡化拓建
(2)類型數(shù)據(jù)表(表3)。
表3 類型
(3)分類數(shù)據(jù)表(表4)。
表4 分類
(4)風險源數(shù)據(jù)表(表5)。
表5 風險源
(5)控制措施數(shù)據(jù)表(表6)。
表6 控制措施
(6)賬戶設置數(shù)據(jù)表(表7)。
表7 賬戶設置
1.2.2 關系數(shù)據(jù)表
(1)網(wǎng)絡化拓建-類型數(shù)據(jù)表(表8)。
表8 網(wǎng)絡化拓建-類型
(2)類型-分類數(shù)據(jù)表(表9)。
表9 類型-分類
(3)分類-風險源數(shù)據(jù)表(表10)。
表10 分類-風險源
(4)風險源-控制措施數(shù)據(jù)表(表11)。
表11 風險源-控制措施
本系統(tǒng)的核心支撐就是后臺數(shù)據(jù)庫,第一部分介紹了數(shù)據(jù)庫的設計,接下來將通過C#編程語言來實現(xiàn)該可視化系統(tǒng)的設計和實現(xiàn)。
當運行軟件時,首先進入登錄界面,如圖4所示,該界面主要提供用戶賬戶和密碼輸入登錄、記住密碼,以及通過郵箱注冊、修改密碼和忘記密碼等功能。
圖4 登錄界面
這一部分通過C#語言與后臺數(shù)據(jù)庫進行交互,通過賬戶設置數(shù)據(jù)表對用戶進行相關的查詢、訪問、添加和修改,同時判斷用戶的訪問權限,根據(jù)訪問權限來分配給用戶不同的可操作的界面和功能。C#連接Access數(shù)據(jù)庫的連接字符串為:
String AccessCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path +";Jet OLEDB:Database Password="+Password;
其中Path為數(shù)據(jù)庫文件路徑,Password為數(shù)據(jù)庫密碼。
2.2.1 超級管理員用戶功能
超級管理員用戶可以對數(shù)據(jù)庫執(zhí)行增、刪、改、查和管理普通用戶等功能。
數(shù)據(jù)入庫
(1)數(shù)據(jù)入庫。將圖2所示的Excel數(shù)據(jù)文件導入到后臺數(shù)據(jù)庫中,圖5為導入數(shù)據(jù)的狀態(tài)顯示。
圖5 數(shù)據(jù)入庫狀態(tài)顯示
(2)數(shù)據(jù)查詢。用戶登錄后,數(shù)據(jù)庫會自動加載到數(shù)據(jù)查詢界面,如圖6所示,網(wǎng)絡化拓建、類型、分類和風險源的數(shù)據(jù)源會分別綁定到4個下拉選擇框中,用戶可以根據(jù)這四個查詢條件進行對應控制措施的查詢。
圖6 數(shù)據(jù)庫查詢界面
(3)數(shù)據(jù)修改。圖6中,在每一條控制措施后邊會有一個更改按鈕,當用戶為管理員時,圖中4個下拉菜單框和控制措施表格都是可編輯狀態(tài),用戶可以通過單擊修改按鈕對對應記錄進行更改并同時更改到數(shù)據(jù)庫中。
(4)數(shù)據(jù)刪除。圖6中,在每一條控制措施后邊同時會有一個刪除按鈕,當用戶為管理員時,用戶可以單擊刪除按鈕來刪除對應記錄進行更改并同時將數(shù)據(jù)庫中這條記錄刪除掉。
(5)查詢結果報表。系統(tǒng)支持對查詢結果進行Excel報表,圖7為查詢結果報表的結果展示。
圖7 數(shù)據(jù)查詢報表顯示
(6)查詢結果報表。系統(tǒng)支持超級管理員對普通用戶的管理,如圖8所示,超級管理員可以對普通用戶進行賬戶注銷功能,操作方法為點擊該用戶右側的刪除按鈕即可。
圖8 賬戶管理界面
2.2.2 普通用戶功能
普通用戶的操作界面見如圖9所示,普通用戶只能對數(shù)據(jù)庫進行查詢和數(shù)據(jù)查詢結果報表功能,普通用戶不能對4個下拉菜單框和控制措施表進行編輯更改操作。
圖9 普通用戶操作界面
系統(tǒng)還提供大部分主要功能的工具欄,用戶可以借助工具欄進行相關操作,同時還為用戶提供系統(tǒng)操作的幫助文檔和開發(fā)者聯(lián)系方式。
系統(tǒng)采用面向?qū)ο蟮?、運行于.NET Framework之上的高級程序設計語言C#.net,系統(tǒng)通過編程來實現(xiàn)與Access數(shù)據(jù)庫進行相關數(shù)據(jù)庫操作。另外,系統(tǒng)還使用了第三方庫:NPOI,NPOI是基于.NET平臺,對Excel和Word進行二次開發(fā)的開源庫。
本文設計了城市地下空間結構安全設計系統(tǒng),采用C#.net語言與Access數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)庫數(shù)據(jù)導入、數(shù)據(jù)查詢、數(shù)據(jù)更新、數(shù)據(jù)刪除的可視化實現(xiàn)和數(shù)據(jù)Excel報表。本系統(tǒng)采用模塊化開發(fā),系統(tǒng)擴展性強,以便后續(xù)的功能擴展和二次開發(fā)。