基于.NET的协同监理平台的设计与实现

2019-01-02 12:44易雪蓉
武汉工程大学学报 2018年6期
关键词:旁站总监页面

蒋 怡,蔡 琼*,2,易雪蓉

1.武汉工程大学计算机科学与工程学院,湖北 武汉 430205;2.智能机器人湖北省重点实验室(武汉工程大学),湖北 武汉 430205

在互联网发达的现今,企业广泛地采用信息管理系统来进行日常办公,信息平台要满足企业需求且拥有良好的安全性。安全可靠的管理系统是合理使用信息,防止他人非法获取信息或者损坏信息的保障。此外,信息系统的访问控制和权限管理至关重要,已有不少文档对影响系统安全的访问控制[1-2]问题进行研究。

在信息管理系统中,存在多种实现权限动态分配[3-4]的方法,仅操作对象而言,就有基于用户的和基于角色[5-6]的两种。基于用户[7]的分配方法是直接给用户分配权限,而基于角色的权限分配方法是一种间接的分配方法[8],即将用户分成很多不同的组,同一组的用户获得同样的权限,这种方法具有很好的灵活性、安全性和通用性[9]。Ferraiol[10-12]对基于角色的访问控制(Role Based Access Control,RBAC)的相关术语进行了统一,建立了RBAC技术的参考模型,此模型在信息系统中的使用极大地简化了安全管理的难度。

在监理[13-14]企业中,项目工作需要监理人员与第三方人员协同完成。而多方人员的参与使得系统的权限控制变得复杂。为解决该问题,本文改进了基于角色的访问控制技术,将角色划分层次后再赋予用户,从而使整个系统层次分明[15],权限管理也变得更加简单。

本平台协助监理企业完成施工组织设计、监理规划编制和旁站监理三项重点工作,实现了监理企业与第三方人员的协同办公,使信息在多方之间的流转更加准确迅速。在监理规划编制模块调用Web Office插件实现了文档在线批注功能,加快了员工的日常工作进程,给企业带来了巨大的益处。在旁站监理模块,实现了手机端与Web端的交互,监理人员在施工现场使用手机端采集信息并上传数据库,以供Web端获取并展示,实现了数据的高效传递。

1 协同监理平台的设计

监理的一系列工作都在项目的基础上进行,由项目经理创建项目并分配人员,项目中的人员是动态的,所分配的项目权限也是动态的,可以随时回收或改变。

根据监理企业的办公需求,平台重点实现了施工组织设计模块、监理规划编制模块和旁站监理模块。具体如下:

1)施工组织设计:工程开工前,总监理工程师(总监)组织专业监理工程师(专监)审查施工单位报审的施工组织设计材料。专监需要根据编审程序合规性;编制内容完整性;施工进度、方案及质量保证措施合同符合性;劳动力、材料、设备等资源供应计划;安全技术措施强制性条文符合性;“四新”和施工总平面布置这7个方面进行审查,若审核不通过,审批冻结,若通过则提交总监进行审查,总监审查不通过则退回专监重查,若符合要求则由总监签认,项目监理机构报送建设单位审核,若合格则审批完成,若不通过则退回总监重审。施工单位上传的文件由平台调用Html.Beginform方法提交给后端进行保存,审批流程中专监上传、总监退回等操作状态的改变,是运用ASP.NET MVC的Url.Action方法提交后端处理而实现的。施工组织设计审批流程如图1(a)所示。

2)监理规划编制:专监按照模板文件进行特定项目的监理规划编制,具体包括工程概况;监理工作的范围、内容、目标;监理工作依据;监理组织形式、人员配备及进、退场计划和监理人员岗位职责;监理工作制度;工作质量控制;工程造价控制;工程进度控制;安全生产管理的监理工作;合同与信息管理;组织与协调;监理工作设施和ISO9001:2015国际质量管理体系标准在工程中的应用。总监对专监编写的文件进行在线审批,审批全部通过后,上交建设单位审批,若合格则编制完成,若不通过,需要专监重新编写。在该模块的审批流程中,平台运用Web Office控件实现了在线审批功能。审批状态分为专监保存、总监保存、总监待审核、总监驳回和总监审核合格五项,状态的更改通过使用Ajax异步刷新技术提交后端处理从而实现。监理规划编制流程如图1(b)所示。

图1 审批流程图:(a)施工组织设计,(b)监理规划编制,(c)旁站监理Fig.1 Flowchart of approvals:(a)construction organization design,(b)supervision plan,(c)side station supervision

3)旁站监理:旁站监理模块中,Web端负责旁站监理方案的编制与现场旁站记录的展示,移动端负责施工现场的信息采集工作。旁站监理方案编制的模块设计与监理规划编制相同,只在内容上有所改变,旁站编制的内容为:旁站范围与内容;旁站程序和方式;旁站监理人员主要职责和旁站监理依据四项。Web端还进行旁站记录的展示,监理人员在施工现场使用手机端采集信息填写旁站记录,并上传至服务器数据库,Web端从数据库中获取信息并按列表的形式在页面中展示,形成旁站列表。旁站监理编制流程如图1(c)所示。

为了实现模块功能,达到协同办公的目的,用户权限的分配至关重要。只有拥有对应权限的用户才可以实现某个特定的操作,否则无法对项目进行任何操作。针对这一情况,本文改进了基于角色的访问控制技术,引入角色层级这一概念,将角色分层后再赋予用户。所有角色的分层如表1所示。

表1 角色层级表Tab.1 Hierarchy of roles

在实际的平台中,数据库是采用Microsoft SQL Server2012实现的。具体到数据库结构方面,与权限相关的数据库表主要包含Roles表、Uesr⁃roles表、Rolelevel表、Employee表、Users表、Epspre表以及Eproject表。数据库关系图如图2所示。其中Roles表是角色表,定义了所有的角色。Uesr⁃roles表是用户权限表,连接用户和角色。Rolelevel表是角色层级表,即上述的5个层级。Users表是用户表,即存放用户。Employee表是员工表,存放企业中所有员工信息。Epspre表是项目人员表,用来记录某个项目动态分配的员工的信息。Epro⁃ject表是项目表,用于存放项目信息。

图2 数据库表结构图Fig.2 Table structure of database

根据企业的实际情况,对角色进行分析归类,从而使平台层次更加清晰,项目创建时人员的动态选择也变得简单,满足了企业在监理工作中的需求。

2 协同平台的实现

平台是基于.NET框架,使用Visual Studio 2017进行开发,数据库选择的是Microsoft SQL Server2012。

2.1 角色赋予和项目角色分配

在新建员工时,平台通过下拉菜单选取不同层级下的角色赋予用户,如图3所示。平台使用input标签将value=“@item.name”即角色名提交给后端,后端新建ApplicationUser对象,并使用Cre⁃ateAsync方法异步创建用户实现了人员到用户的添加过程,然后使用 AddToRoleAsync(user.Id,ro⁃leName)方法将用户与角色绑定到一起,最后调用db.SaveChangesAsync方法异步更新数据库,实现了角色的赋予。

图3 角色分配图Fig.3 Assignment of roles

用户登录后,平台就会判断用户的角色,根据用户所在的角色层级,跳转到特定的页面。如果用户未被包含在某个项目内,则该用户无法访问平台各模块。此处是运用IsAuthority(id,“Office Staff”,db)方法判断用户是否拥有访问模块的权限,如果没有即返回Redirect方法重定位到提醒无法查阅的页面。

当该用户参与某个项目后,项目列表就会显示用户参与的项目,此处需要在数据库中进行条件搜索,满足 e.EmployeeID.Equals(User.Identity.Name)条件即异步输出,并在页面中获取并展示。

在创建项目时,需要动态分配人员。在人员分配页面,平台根据角色层级获取人员。以获取角色级别为1的公司管理层人员为例,后端查找数据库中满足e.RoleLevelID==1与e=>e.IsEPS==true这两项条件的数据形成列表输出,再调用SelectList(ComManager,“Id”,“RoleCNName”)方法,并将其赋给ViewBag.ComManagerList参数,以供前端获取并展示。

2.2 施工组织设计

在施工组织设计模块,施工方上传的文件由前端调用Html.Beginform方法提交给后端,后端采用try catch语句进行文件的保存,主要包括审批ID、文件名、文件路径、文件上传人等参数。专监需要对材料进行审核,并在对应文本域内填写意见,文本意见由HtmlTextArea控件提交给模型。若材料不合格则点击驳回,审批冻结。若合格则点击提交按钮提交给总监,总监会综合专监意见进行审核,若不合格则驳回给专监重审,若通过则点击提交按钮,上交建设单位审查。若建设单位审查通过,即审批完成,若不通过,则驳回给总监重审。登录用户的角色都会被实时获取,以总监驳回给专监重审一步为例,前端使用Url.Action函数提交审批ID给后端,后端获取审批ID进行处理,首先根据获取的审批ID号查找到审批项,当满足审批状态为总监审查状态且总监是项目内成员时,审批状态改变为专监审查,并调用db.SaveChangesAsync函数保存更改至数据库,最后再将审批ID返回给施工组织设计审批页面,页面设计如图4所示。

图4 施工组织设计审批页面Fig.4 Interface of approving construction organization design

2.3 监理规划编制

在监理规划编制模块,专监上传文件的路径都根据编制ID进行保存,路径为“~/UploadFiles/EPS/BZFile”+bZ.BZID。在办公中,所有用户的操作均会被记录,例如这句代码就记录了某位总监接受了提交的监理规划编制文件:

bZLog.BZDetail=“总监”+TempBZFile.File⁃UpPerson+“接受提交的监理规划编制文件:”+TemplateNames[k-1]。

监理规划编制页面如图5所示。

图5 监理规划编制页面Fig.5 Interface of compiling supervision plan

在监理规划审批中,平台调用Web Office控件实现了文档的在线审批,以总监点击待审文件进行文档在线批注为例,调用Web Office控件首先需要触发Web Office初始化方法:

<SCRIPT language=javascript event=NotifyCtrlReady for=WebOffice1>

WebOffice1_NotifyCtrlReady()

</SCRIPT>

平台会先执行<object>标签内的方法,填充监理规划文件,最后调用WebOffice1_NotifyCtrlReady方法进行文档初始化。总监完成对文档的编辑后,申请上传文件,平台模拟表单提交,将文件虚拟路径和编制ID提交给控制器处理,实现总监在线审批文件的功能。文件状态会因不同用户的操作而发生改变,例如当专监提交文件后,文件就会变成总监待审核状态,后端首先需要判断用户的操作是否为提交,然后改变文件状态,步骤流程向后跳转一步,并向前端传递有文件待审的信号。

2.4 旁站监理

旁站监理方案编制的具体实现与监理规划编制大致相同,仅在文件内容上有所改变。只有旁站监理方案审批通过后,才允许进行施工现场的旁站工作。在施工现场,监理人员使用手机端创建普通旁站监理记录以进行信息的录入工作,现场照片的获取由平台调用cordova-plugin-camera插件实现。当监理人员录入信息完毕,即可点击提交按钮将数据发送给后端处理,后端创建旁站记录保存前端提交的数据,然后获取该用户的所有旁站记录并加入该条记录,再调用db.SaveChanges方法更新到数据库。此时,Web端即可访问数据库获取该条最新上传的新记录。手机端的普通旁站监理页面如图6所示。

图6 普通旁站监理页面Fig.6 Interface of normal side station supervision

手机端采集到的旁站信息都会显示在Web端的旁站列表中,可以点击旁站记录列表查看详细信息。旁站列表页面设计如图7所示。

图7 旁站列表界面Fig.7 Interface of side station supervision list

在该页面,实现了根据旁站类型和旁站名称进行检索的功能,前端提交项目ID、旁站类型ID和搜索关键字参数给后端处理,后端运用Contains方法寻找包含搜索关键字的旁站记录,再运用Equals方法寻找前端指定旁站类型的旁站记录,最后返回筛选结果以供前端展示。

3 结 语

本文设计了基于.NET的协同监理平台,实现了施工组织设计、监理规划编制与旁站监理三项模块且运行正常。采用Cordova技术实现了跨平台旁站监理APP,实现了手机端和Web端的互动,使信息的传递更加准确迅速。改进了基于角色的访问控制技术,使平台的层次更加清晰,充分保证了平台的安全性、高效性和灵活性,也有利于今后的平台功能拓展。本平台在项目人员选择部分还可以进一步改善,例如运用机器学习等相关知识,对所有员工操作记录进行分析,实现人员的自动推荐功能。

猜你喜欢
旁站总监页面
刷新生活的页面
答案
『青年艺术100』总监彭玮解读:IN/OUT的内观与反思
监理旁站记录信息化应用实践
浅谈旁站监理的重要性
应该做的事
奇瑞请来新设计总监,是不是宝尚未可知
高级别的
Web安全问答(3)
关于房屋建筑工程施工“旁站”作用和执行的探讨