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