倪叶杰,凌卫青,王 坚
(同济大学 CIMS 研究中心,上海 201804)
在信息化社会中,人们开始享受科技带来的便利[1],社会上各行各业的运作方式都发生了变化。考虑到企业在安全生产劳防用品的管理方面存在的一些问题:比如纸质文档的存档可能存在文档的破损、丢失,劳防用品的领用数量、时间、金额需要人为的统计和计算,我们需要借用信息化的手段来降低这些问题给我们带来的损失,一方面能方便企业领导层对劳防用品的采购、领用、申请的管理,另一方面能让员工及时获取劳防用品从而得到及时的防护。
劳防用品管理系统的设计与实现,是基于ASP.NET MVC 框架[13~15,17]的,其中ASP.NET MVC 是创建APS.NET应用的一种新的平台,和传统的Web Forms 一样运行于ASP.NET run-time environment。但是MVC 更加专注用户的操作[5,7~11,16],并且有不同的视图引擎供你选择。相比于标准的ASP.NET 运行环境[2-4,6],ASP.NET MVC 创建了自身的脚本,该shell 脚本是与ASP.NET run-time objects相连,而且它把对象集注入到shell 里。ASP.NET MVC的运行机制如图1 所示。ASP.NET MVC 的运行机制路线:首先是客户端发送一个HTTP 请求,由IIS 捕获,根据URL 的请求格式,最终交给路由(Route),然后它负责解析出我们的URL 具体请求的是哪个Controller 下的哪个Action,接着MVC 经过处理调用我们的Action执行,在Action 中我们一般会通过业务的Façade 层取出数据,将传输层的数据转换为Model 再交给View 的视图引擎渲染,最终生成HTML 的字节流返回到客户端。
图1 ASP.NET MVC 运行机制图Fig.1 The operation mechanism diagram of ASP.NET MVC
图中可以看出一个HttpRequest 在ASP.NET MVC 框架下的运行机理:经过IIS 和ASP.NET 处理后,路由首先根据URL 匹配物理路径上的文件,如果不能匹配则由核心路由模块执行默认路由,路由被匹配后会将这个请求“带入”MVC 框架中,执行Controller 和Action,Action 可以直接注入response,或者更平常的是返回一个ActionResult,ActionResult 的ExecutedResult 方法将被调用,最终生成HTML 返回客户端。
劳防用品管理系统是基于B/S 平台[12],主要考虑就是将劳防用品管理系统部署至公司的内网服务器上,员工可以通过自身的客户端进行访问,并进行日常劳防用品领用记录的查看和录入,方便了企业对劳防用品的管理,提高了效率。系统的架构设计如图2 所示。劳防用品管理系统从逻辑上可以分为视图、模型和控制器。
图2 系统的架构设计图Fig.2 The architecture design diagram of system
视图:是用户看到并与之交互的界面。对老式的Web 应用程序来说,视图由HTML 元素加上CSS 的渲染组成的界面,在新式的Web 应用程序中,HTML 依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Ajax、Flash、XHTML、XML 和Web services 等。ASP.NET MVC 好处就是它能为应用程序处理很多不同的视图,因为它有不同的视图引擎。视图只是用来输出数据将其显示出来并能够响应用户的操作。
模型:表示企业数据和相关的业务规则。在MVC的三个部件中,模型主要与数据库打交道。例如它可能用构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器:接受用户的输入并调用模型和视图去完成用户的需求,也就是说接收请求并决定调用哪个模型去处理请求,然后再确定用哪个视图来显示返回的数据。
企业借助各种有效的安全生产管理措施,虽然已经取得了部分成绩,但是仍然缺少有效的安全生产劳防用品管理系统,具体表现为:
(1)安全管理模式粗放。现有的劳防用品管理主要依赖于行政性的领导责任制、依赖于现行的管理标准、规章制度和安全操作规范的宣传和监督执行。
(2)劳防用品的管理效率有待提高。劳防用品还依赖于人工填写与维护。
(3)劳防用品系统的具体需求分析:主要包括劳防用品的领用记录、劳防用品的配置以及部门/工区/工种的配置。劳防用品管理是对公司所有职工所用的安全生产劳防用品进行统一的管理,包括对公司所有劳防用品的领用统计分析管理(添加、修改和删除一条或多条领用记录,通过Excel 导入领用记录,通过对领用记录的分析与数据处理,将其导出为Excel 供用户查看),考虑到系统的可维护性,添加了部门、工区/室、工种的配置以及劳防用品的配置管理的功能。
数据库的设计我严格按照需求分析,概念设计,逻辑结构设计,物理结构设计,系统实施和运行维护这六大步骤进行,其中也遵守第一范式,第二范式和第三范式。数据库中还建立了部门表,工区/室表,工种表,劳防用品类型表以及劳防用品领用记录表。
其中S_C1_Department、S_C1_WorkArea 和S_C1_Work Type 三表中的部门/工区/工种是三者级联的关系,它们是连动的,劳防用品管理系统有部门/工区/工种配置的功能,也就是说用户可以随时添加、修改和删除某个部门下的某个工区的某个工种。此外,用户可以配置劳防用品类型,添加劳防用品领用记录,也可以导入某个月的领用记录,同时也可以汇总某个月或某年的领用记录,其中涉及金额的计算。
劳防用品管理系统主要包含劳防用品的领用申请、审核(与企业KOA 进行集成,本论文不予介绍),劳防用品的领用记录,劳防用品的配置和部门/工区/工种的配置。
通过调研了解到企业对劳防用品的领用记录采用的是Excel 记录,缺少系统性的管理,有了劳防用品管理系统,用户可以访问Url,在电脑上直接操作,可以方便的查看历史记录,查询历史情况。界面如图3 所示。
图3 劳防用品的领用记录图Fig.3 A record chart of PPE
企业对劳防用品类型的需求不是固定的,可能这个月需要采购安全帽,但是系统中却没有安全帽这个类型,所以做了劳防用品的配置界面,这样用户可以随时增加类型,提高系统的实用性、易用性。劳防用品的配置界面如图4 所示。
图4 劳防用品的配置图Fig.4 The configuration disgram of PPE
企业中部门、工区和工种可能会发生微调,所以在劳防用品管理系统也实现了部门|工区|工种的配置,这样系统管理员也可以在系统中根据企业的变动来进行配置,使系统能够更加实用。部门/工区/工种的配置界面如图5 所示。
图5 部门/工区/工种的配置图Fig.5 The configuration diagram of DWW
本文提出的基于MVC 的企业安全生产劳防用品管理系统设计与实现,结合了企业的实际需求,是一套功能齐全、实用的软件系统。它方便了企业管理层对劳防用品的管理,避免了文档存档存在的丢失等问题,管理者可以通过系统提供的录入界面将劳防用品的各项记录录入到系统中,可以随时查询历史记录及当前记录,不像以前需要人工的从多份纸质文档中翻找查询。用户还可以将Excel 上传到服务器,再从服务器上将Excel 中的数据导入到数据库中,然后在前台页面展示Excel 导入的数据,同时也能将数据进行计算处理导出成Excel。
[1]石岩岩.信息化社会对传统档案信息服务模式的挑战[J].档案学通讯,2013,1.
[2]徐卫克.基于ASP.NET 的作业上传管理系统的设计与实现[J].计算机与现代化,2010,9.
[3]程忠宝.基于ASP.NET 实现电子商务系统的关键技术分析[J].科学时代,2008,1.
[4]吴倩,曹建文,魏莹.基于Microsoft.NET 平台的ASP.NET 技术[J].中国科技信息,2006,21.
[5]黎永良,崔杜武. MVC 设计模式的改进与应用[J]. 计算机工程,2005,9.
[6]吴倩,曹建文,魏莹.基于Microsoft.NET 平台的ASP.NET 技术[J].中国科技信息,2006,21.
[7]李军军,傅宏,张丽,姜祖新.基于MVC 模式的Web 框架设计关键技术研究[J].电脑知识与技术,2011,10.
[8]张雪.基于.NET 和J2EE 平台下MVC 设计模式的研究[J].硅谷,2010,2.
[9]李谱华.浅析MVC 设计模式及其应用[J].科技信息,2010,16.
[10]曹春萍,胡德敏.基于MVC 设计模式的Web 考试系统的设计[J].上海理工大学学报,2005,5.
[11]蒋紫彬,张茂林,晏海华.基于MVC 模式的白盒测试驱动框架的设计[J].计算机与数字工程,2006,10.
[12]毕春跃.基于Web 服务的企业应用系统集成框架研究与应用[J].福建电脑,2006,10.
[13]黄胜根,陈蜀宇.基于ASP.NET MVC 框架的干教系统的设计与实现[J].计算机技术与发展,2010,2.
[14]涂刚,李建,刘华清,纪永玲,许子昊. ASP.NET MVC 的研究[J].软件工程师,2010,8.
[15]方柯.基于ASP.NET MVC 框架的Web 应用开发研究[J].电脑知识与技术,2010,22.
[16]曹春萍,胡德敏.基于MVC 设计模式的Web 考试系统的设计[J].上海理工大学学报,2005,5.
[17]沈桂群.基于ASP.NET 的MVC 设计模式及实现[J].信息与电脑(理论版),2009,10.