【《基于Python的安全评价管理系统设计》14000字(论文)】_第1页
【《基于Python的安全评价管理系统设计》14000字(论文)】_第2页
【《基于Python的安全评价管理系统设计》14000字(论文)】_第3页
【《基于Python的安全评价管理系统设计》14000字(论文)】_第4页
【《基于Python的安全评价管理系统设计》14000字(论文)】_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Python的安全评价管理系统设计摘要针对于生活环境或生产环境下的安全隐患管理,目前多数单位还是采取人工的方式,将日常记录到的一些数据、开展的安全培训会议纪要、安全应急演练记录等保存在纸质中。容易导致统计数据繁琐、保存纸质材料不易、后续查找数据不便。利用管理系统将数据整合起来,提供便捷的操作,能够大大提高安全保障类岗位工作人员的效率。本次毕业设计编程语言采用Python,Web框架采用Django,前端采用H5、JS、Vue框架,数据库采用MySQL,使用Pycharm编辑器设计并开发了一个安全评价管理系统。本系统主要包括注册和登录、信息修改、安全巡检、工单分配、历史记录查询、权限管理、数据可视化等功能,其中用户类型分为三类,即普通用户、管理员、系统管理员,各类用户对应不同模块的权限。平台实现了将安全隐患管理过程中产生的数据永久保存、并提供简洁的操作界面、便捷的操作方式,降低了使用方的使用门槛,有助于提高使用方的工作效率。关键词:安全管理;Python;Django;MySQL目录摘要 绪论1.1课题背景随着社会飞速地发展,各行各业也都有了不同程度的更新迭代。然而,“安全”一直都是不可忽视的一大问题。由于行业的快速发展,部分企业由于管理跟不上规模的扩大、缺乏对各类安全隐患的认知、不重视安全管理等问题,导致一些安全事故不断发生。诸如火灾、爆炸以及生产设备的故障导致的一系列事故,严重威胁着人类的生命安全。通过调查分析的结果表明大部分的事故是可以预防、规避的。造成事故的原因也主要是因为操作人员的安全知识不足、安全管理不到位甚至于缺乏安全管理的管控。部分企业盲目追求利润,内部根本没有完善的安全管理机制,对于相关单位的安全检查也只是做一些表面工作应付考察,这就会为事故的发生埋下隐患。因此,安全管理占据着不可忽视的地位。现如今,各单位对于安全隐患管理方面所采用的方式都千篇一律,对于涉及安全隐患的设施,往往用一张张表格放置于对应的设施上,分配相应岗位的人员定期检查设备并填写表格,然后定期收集表格,反复如此。除此之外,定期对相关岗位的工作人员做安全教育培训、事故应急演练以及临时的一些大范围的隐患排查工作,都需要有相应的文档留存,以便后续查验。如此一来,数据量会越来越多,无疑会提高相关人员的工作量和保存数据的难度。随着社会发展,科技不断创新,互联网普及度也与日俱增。日常生活中,互联网带给人们的便利也是有目共睹的。现如今,各行各业都在逐渐使用互联网来替换传统的工作模式。因此,可以将计算机技术与安全隐患管理方面的需求相结合。通过管理平台来收集、管理各项数据的方式来替换纸质数据的收集和保存方式,将大大降低数据保存的难度,从而提高相关人员的工作效率。1.2课题意义本系统基于Python进行开发,实现了安全类事件的数据收集、管理等功能。所有数据均由数据库存储,并提供实时检索功能,只需根据关键字就能够从大量数据中,筛选出满足要求的数据,降低数据的维护成本。除此之外,本系统还提供数据的可视化,能够将数据以图表的形式展示给用户,让用户一目了然。对于意外事故发生,也能够通过本系统的历史记录检索,快速定位出问题的根源,如员工检查不到位、管理员审批复核不到位等。这样一来,可以让相关岗位的工作人员更专注于安全隐患排查工作本身,不用多花费精力在数据维护上了,也就能提高工作效率。1.3开发环境与主要技术介绍1.3.1系统开发环境本系统采用Python作为开发语言,具体开发环境如下:(1)中央处理器:Intel(R)Core(TM)i7-7700HQCPU@2.80GHz(2)内存:8GB(3)网卡:Intel(R)DualBandWireless-AC3165(4)操作系统:MicrosoftWindows10家庭版(64位)(5)开发工具:Pycharm(6)数据库:MySQL5.7.30(7)浏览器:GoogleChrome1.3.2开发技术(1)Python语言。自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于Web编程。与其他编程语言相比,Python简单、易学,只要有一点编程的底子,学习Python就极其容易上手。除此之外,Python有大量的第三方库可供开发者直接调用,加快开发进度,如针对电子邮件协议的SMTP库。(2)Django框架。Django是由Python语言编写的开源的Web框架,采用了MTV架构,即Model、Template、View。这里的MTV架构实际上就是传统的MVC三层架构,其中Model层依旧是负责业务对象和数据库的关系映射。Template对应着MVC中的View层,负责显示Html的响应内容。View对应着MVC中的Controller层,负责接收请求、处理业务逻辑、响应请求。(3)MySQL数据库。在Web方面,MySQL是最好的关系型数据库管理系统应用软件之一。MySQL为多种编程语言都提供了API,其中便包含了Python,可以很方便地操作数据库。除此之外,本系统采用的5.7版本是开源的,不需要支付额外的费用。1.4本文组织结构针对本系统的设计与实现,本文主要分为以下六个部分说明:(1)绪论。该部分主要阐述本系统设计的初衷和意义,以及本系统的开发环境和主要技术。(2)系统分析。该部分主要阐述本系统的需求分析和可行性分析。(3)系统设计。该部分主要阐述本系统的整体功能结构设计,包括数据库设计。(4)系统实现。该部分主要阐述各功能模块的实现细节和实现效果。(5)系统测试。该部分主要阐述本系统的测试意义和测试内容。(6)结语。该部分主要对本系统的最终的实现成果做一个总结。

系统分析2.1需求分析本系统为基于Python的安全评价管理系统,安全管理类岗位通常有明确的组织结构,包括执行者和行政管理人员。因此,本系统账号类型分为三类,包括普通用户即一线执行者、管理员用户即负责某块区域安全的行政管理人员、系统管理员用户即负责系统用户信息、权限管理的管理人员。其中,系统管理员账号由系统的维护方提供,不支持注册的方式创建,且系统管理员负责注册其他类型用户,注册功能不对外开放。管理员主要负责管理普通用户上报的安全类数据、指派普通用户执行相关安全类事件等。普通用户主要负责上报每日的安全数据、执行相关安全类事件等。根据用户类型划分,本系统应有下述功能。系统管理员对应的功能如下:登录功能:校验账号密码是否正确,根据该账号类型跳转至相应首页。注册用户功能:填写相应信息,完成用户注册。添加部门功能:填写相应信息,完成部门添加。用户管理功能:修改用户个人信息、重置密码、注销用户。部门管理功能:修改部门信息、删除部门。查询工单功能:根据关键字检索所有部门的工单,且能够查看工单详情。查询巡检报告功能:根据关键字检索所有部门的巡检报告,且能够查看巡检报告详情。查看历史年度情况功能:根据系统内已有年份,查询每个年份安全保障类事件的完成情况。修改密码功能:验证当前密码通过以完成对新密码的设置。数据可视化功能:首页提供柱状图、饼状图,实时获取本年度的安全保障类事件的完成情况数据,展示给用户。个人信息查询功能:查询个人基本信息。图2-1系统管理员用例图管理员对应的功能如下:登录功能:校验账号密码是否正确,根据该账号类型跳转至相应首页个人信息查询功能:查询个人基本信息。创建工单功能:创建工单指定普通用户执行。查询工单功能:根据关键字检索当前部门的工单,且能够查看工单详情。查询巡检报告功能:根据关键字检索当前部门的巡检报告,且能够查看巡检报告详情。审批巡检报告功能:对巡检报告内容进行复核。查看历史年度情况功能:根据系统内已有年份,查询每个年份安全保障类事件的完成情况。数据可视化功能:首页提供柱状图、饼状图,实时获取本年度的安全保障类事件的完成情况数据,展示给用户。修改密码功能:验证当前密码通过以完成对新密码的设置。图2-2管理员用例图

普通用户对应的功能如下:登录功能:校验账号密码是否正确,根据该账号类型跳转至相应首页个人信息查询功能:查询个人基本信息。上报巡检报告功能:根据每日巡检结果,上报到系统中,由相应的管理员审批复核。查询巡检报告功能:根据关键字检索自己提交过的巡检报告,且能够查看巡检报告详情。查询工单功能:根据关键字检索指派给自己的工单,其中包含历史工单,且能够查看巡检报告详情。执行工单功能:完成工单要求的内容,即可手动修改工单状态。修改密码功能:验证当前密码通过以完成对新密码的设置。数据可视化功能:首页提供柱状图、饼状图,实时获取本年度的安全保障类事件的完成情况数据,展示给用户。图2-3普通用户用例图2.2系统可行性分析2.2.1技术可行性本系统采取B/S架构,在服务端接口的设计上只需满足HTTP协议即可,不用考虑太多复杂的交互,这一点Web框架都已经做了封装处理,开发者无需自行处理。Web框架上选择Django,因为Django原生的MVT架构,能够极大程度的对代码解耦,便于项目后期的维护。前后端交互使用ajax异步请求,可覆盖几乎所有涉及交互的场景。除此之外,本系统所用到的所有技术,在网络上的学习资源充足,开发过程中遇到的问题,都能够快速得到解决方法。开发过程中,不会因为这些技术上的问题,而导致进度阻塞。2.2.2经济可行性本系统开发所需要的硬件配置要求不高,市面上一般的个人电脑配置即可满足开发要求,开发所需要的软件和采用的技术均是开源、免费的,无需支付额外费用,且这些资源都能够在网络上方便地获取到。因此本系统的开发成本可控。2.2.3时间可行性本系统的开发时间跨度大,经过系统需求分析、架构设计、模块划分后,能够合理分配每个阶段的时间。除此之外,在开发之余还能够留出足够的时间,用于学习、提升个人技术能力。开发过程中,不会因为时间的缘故,导致进度阻塞。综上所述,本系统具备开发的可行性。系统设计3.1系统总体设计3.1.1系统功能结构设计根据系统需求分析结论,本系统以用户类型为主体划分模块,即普通用户模块、管理员模块、系统管理员模块,将各个功能划分至指定模块下。系统功能结构图如下:图3-1系统功能结构图3.1.2系统架构图本系统采用B/S架构,这样设计的目的在于用户可以方便的使用系统,即通过浏览器就能够使用本系统,不用下载配套的客户端。并且在后期维护过程中,作为开发者也只需要关注服务端的优化和更新,不需要考虑客户端更新的问题。系统前后端交互过程如下图:图3-2系统架构图3.2数据库设计3.2.1实体属性图(1)用户实体属性图。本系统设计的用户实体共有7个属性,分别为用户编号(id)、用户姓名、用户账号、用户密码、用户邮箱、用户账号类型、用户所属部门编号(部门id),如下图:图3-3用户实体属性图(2)部门实体属性图。本系统设计的部门实体共有3个属性,分别为部门编号(id)、部门名称、部门管理员,如下图:图3-4部门实体属性图(3)工单实体属性图。本系统设计的工单实体共有14个属性,分别为工单编号(id)、工单类型、工单标题、工单内容、工单执行状态、工单创建人、工单创建时间、工单指定执行人、工单最终执行人、工单开始执行时间、工单最终完成人、工单执行完成时间、工单执行结果备注内容、工单所属部门编号(部门id),如下图:图3-5工单实体属性图(4)消防巡检报告实体属性图。本系统设计的消防巡检报告实体共有14个属性,分别为巡检报告编号(id)、巡检报告标题、消防栓检查点、灭火器检查点、消防通道检查点、巡检报告状态、巡检报告上报人、巡检报告上报时间、巡检报告审批人、巡检报告最终审批人、巡检报告审批时间、巡检报告上报备注内容、巡检报告审批备注内容、巡检报告所属部门编号(部门id),如下图:图3-6消防巡检报告实体属性图(5)电气设备巡检报告实体属性图。本系统设计的电气设备巡检报告实体共有14个属性,分别为巡检报告编号(id)、巡检报告标题、电气作业检查点、变配电间检查点、输配电线路及电缆检查点、巡检报告状态、巡检报告上报人、巡检报告上报时间、巡检报告审批人、巡检报告最终审批人、巡检报告审批时间、巡检报告上报备注内容、巡检报告审批备注内容、巡检报告所属部门编号(部门id),如下图:图3-7电气设备巡检报告实体属性图(6)生产设备巡检报告实体属性图。本系统设计的生产设备巡检报告实体共有19个属性,分别为巡检报告编号(id)、巡检报告标题、检查点1(设备布置是否合理,易于操作、检查、维修)、检查点2(设备基础是否牢固、平稳、螺栓紧固)、检查点3(生产设备清洁度、平稳、无振动)、检查点4(转动部位转动灵活、轴承无泄漏、转动设备有防护罩,摩擦部位不产生火花)、检查点5(接零、接地设施齐全有效)、检查点6(安全防护设施齐全有效)、检查点7(防爆区域内的电气、电机、灯具、开关、仪表灯选用防爆型)、检查点8(安全设备、设施有安全标签或铭牌)、巡检报告状态、巡检报告上报人、巡检报告上报时间、巡检报告审批人、巡检报告最终审批人、巡检报告审批时间、巡检报告上报备注内容、巡检报告审批备注内容、巡检报告所属部门编号(部门id),如下图:图3-8生产设备巡检报告实体属性图(7)安全保障事件历史年度记录实体属性图。本系统设计的安全保障事件历史年度记录实体共有8个属性,分别为记录编号(id)、记录年份、指定年份的消防安全巡检执行次数、指定年份的生产设备安全巡检执行次数、指定年份的电气设备安全巡检执行次数、指定年份的安全教育培训次数、指定年份的事故应急演练次数、指定年份的大规模隐患排查次数,如下图:图3-9安全保障事件历史年度记录实体属性图3.2.2系统整体E-R图根据上述各实体属性图,将各实体之间的联系情况归纳总结,得出系统整体E-R图。图3-10系统整体E-R图3.2.3数据表设计本系统使用MySQL数据库存储用户使用过程产生的数据。下面将根据3.2.1中的实体属性图设计各个实体对应的数据表。(1)用户信息表,存储用户相关信息。表3-1用户信息表字段名称数据类型长度主键是否唯一能否为空说明idint11是是否编号namevarchar20否是否用户姓名accountvarchar20否是否用户账号passwordvarchar32否否否用户密码emailvarchar30否是否用户邮箱identityvarchar1否否否用户账号类型dept_idvarchar8否否能所属部门id(2)部门信息表,存储部门相关信息。表3-2部门信息表字段名称数据类型长度主键是否唯一能否为空说明idint11是是否编号namevarchar20否是否部门名称managervarchar20否否能部门管理员(3)工单信息表,存储工单相关信息。表3-3工单信息表字段名称数据类型长度主键是否唯一能否为空说明idint11是是否编号titlevarchar32否否否工单标题typevarchar8否否否工单类型descvarchar300否否否工单描述dept_idvarchar8否否否所属部门idstatusvarchar1否否否工单状态creatorvarchar20否否否创建人executorvarchar20否否否指定执行人start_executorvarchar20否否能最终执行人finish_executorvarchar20否否能最终完成人commentvarchar300否否能执行结果备注create_timedatetime6否否否工单创建时间start_timedatetime6否否能执行时间finish_timedatetime6否否能完成时间(4)消防安全巡检报告信息表,存储消防安全巡检相关信息。表3-4消防安全巡检报告信息表字段名称数据类型长度主键是否唯一能否为空说明idint11是是否编号titlevarchar24否否否报告标题fire_hydrantvarchar3否否否消防栓检查点fire_extinguishervarchar3否否否灭火器检查点fire_escapevarchar3否否否消防通道检查点statusvarchar1否否否报告状态creatorvarchar20否否否上报人create_timedatetime6否否否上报时间leadervarchar20否否否审批人confirm_timedatetime6否否能审批时间check_commentvarchar300否否能上报备注内容confirm_commentvarchar300否否能审批备注内容confirmervarchar20否否能最终审批人dept_idvarchar8否否否所属部门id(5)电气设备安全巡检报告信息表,存储电气设备安全巡检相关信息。表3-5电气设备安全巡检报告信息表字段名称数据类型长度主键是否唯一能否为空说明idint11是是否编号titlevarchar24否否否报告标题electrical_operationvarchar3否否否电气作业检查点distribution_roomvarchar3否否否输配电间检查点cable_linevarchar3否否否电缆线路检查点statusvarchar1否否否报告状态creatorvarchar20否否否上报人create_timedatetime6否否否上报时间leadervarchar20否否否审批人confirm_timedatetime6否否能审批时间check_commentvarchar300否否能上报备注内容confirm_commentvarchar300否否能审批备注内容confirmervarchar20否否能最终审批人dept_idvarchar8否否否所属部门id(6)生产设备安全巡检报告信息表,存储生产设备安全巡检相关信息。表3-6生产设备安全巡检报告信息表字段名称数据类型长度主键是否唯一能否为空说明idint11是是否编号titlevarchar24否否否报告标题firstvarchar3否否否检查点1secondvarchar3否否否检查点2thirdvarchar3否否否检查点3fourthvarchar3否否否检查点4fifthvarchar3否否否检查点5sixthvarchar3否否否检查点6seventhvarchar3否否否检查点7eighthvarchar3否否否检查点8statusvarchar1否否否报告状态creatorvarchar20否否否上报人create_timedatetime6否否否上报时间leadervarchar20否否否审批人confirm_timedatetime6否否能审批时间check_commentvarchar300否否能上报备注内容confirm_commentvarchar300否否能审批备注内容confirmervarchar20否否能最终审批人dept_idvarchar8否否否所属部门id(7)安全保障事件历史年度记录信息表,存储历年安全保障事件执行情况相关信息。表3-7安全保障时间历史年度记录信息表字段名称数据类型长度主键是否唯一能否为空说明idint11是是否编号yearvarchar4否是否年份fire_safetyvarchar3否否否消防安全巡检次数production_safetyvarchar3否否否生产设备巡检次数electrical_safetyvarchar3否否否电气设备巡检次数safety_trainingvarchar3否否否安全教育培训次数emergency_drillvarchar3否否否事故应急演练次数risk_investigationvarchar3否否否组织隐患排查次数

系统实现4.1用户登录功能实现进入系统,用户登录成功后,后端接口会根据用户类型跳转指定首页,三类用户首页结构一致,根据用户类型展示不同的导航栏,即提供不同的功能给不同类型的用户使用。主要流程如下图:图4-1登录功能流程图前端页面实现逻辑如图4-2所示。先判断用户输入的账号密码非空,然后将账号密码通过ajax的方式传给后端接口。在回调函数中,若接口返回登录成功的信息,则跳转至系统首页。反之,将登录失败的信息展示在登录页面。图4-2前端页面代码逻辑图后端接口实现逻辑如图4-3所示,判断当次请求方式为GET,则跳转至登录页面。当次请求方式为POST则对账号密码进行校验,验证通过则生成一个为期5天的session并返回登录成功的json信息给前端,即实现登录一次系统后5天免登录,除非用户选择退出账号。若账号密码验证不通过,则返回错误提示的json信息给前端。图4-3登录接口代码逻辑图除此之外,本系统实现了一个控制访问权限的中间件,拦截未登录的用户访问系统。将所有未登录的用户请求重定向至登录页面,具体逻辑如图4-4所示:图4-4访问权限中间件代码逻辑图功能实现效果如下:图4-5系统首页图图4-6系统管理员首页图4.2用户注册功能实现用户注册功能只有系统管理员才能使用,其他类型用户访问该接口,会得到错误信息。图4-7非系统管理账号请求用户注册接口报错图前端页面实现如图4-8所示。首先对输入项进行校验,验证不通过则提示相应信息,验证通过后,将数据通过ajax的方式发送给后端接口。然后根据回调函数得到的返回值,提示合理的信息。前端js代码结构与登录功能大同小异,后面都不再对前端代码做过多展示,更多关注后端接口的逻辑实现。图4-8用户注册功能前端页面图后端接口实现逻辑如图4-9所示。首先判断用户类型,拒绝非系统管理员用户请求该接口。然后再对用户信息做进一步校验,防止前端验证被绕过。针对于管理员用户还需判断分配的部门是否已经有管理员。最后使用md5算法将随机生成的8位密码加密后存入数据库,并且使用SMTP协议给用户发账号初始化信息的邮件。图4-9用户注册功能后端代码逻辑图用户会收到的账号初始化信息邮件如图4-10所示。图4-10账号初始化信息邮件图4.3添加部门功能实现添加部门功能只有系统管理员才能使用,其他类型用户访问该接口,会得到错误信息,效果与图4-7一致。前端页面实现如图4-11所示。首先对输入项进行校验,验证不通过则提示相应信息,验证通过后,将数据通过ajax的方式发送给后端接口。然后根据回调函数得到的返回值,提示合理的信息。图4-11添加部门功能前端页面图后端接口实现逻辑如图4-12所示。首先判断用户类型,拒绝非系统管理员用户请求该接口。然后再对用户信息做进一步校验,防止前端验证被绕过。验证通过后,将部门数据落入数据库中,并且返回相应信息给前端。图4-12添加部门功能后端代码逻辑图4.4用户管理功能实现用户管理功能只有系统管理员才能使用,其他类型用户访问该接口,会得到错误信息,效果与图4-7一致。前端页面实现如图4-13所示。用户管理功能包含用户查询、用户信息修改、一键重置用户密码、注销用户账号。图4-13用户管理功能前端页面图用户查询的前端实现逻辑为前端将输入的数据或选择的下拉框选项发送到后端接口,接口根据筛选项查询数据库,并对查询结果进行分页返回给前端展示;用户信息修改的前端实现逻辑为前端将需要修改的用户id和修过后的数据,先在前端做一次校验,验证通过后使用ajax发送给后端接口,根据接口处理结果,提示相应信息;一键重置用户密码和注销用户账号的前端实现逻辑都大同小异,都是传一个用户信息的唯一键给后端接口进行处理,然后根据返回结果,提示相应信息。这里主要展示用户信息修改后端代码逻辑,如图4-14所示。图4-14用户信息修改功能后端代码逻辑图4.5部门管理功能实现同用户管理功能一致,部门管理功能只有系统管理员才能使用,其他类型用户访问该接口,会得到上述错误信息,这里不做展示。部门管理功能包含、部门信息修改和部门删除,前端实现逻辑与用户管理功能大同小异,这里也不再赘述。主要展示部门信息修改功能的后端接口代码逻辑,如图4-15所示。图4-15部门信息修改功能后端代码逻辑图4.6查询个人信息功能实现图4-16个人信息前端页面展示图查询个人信息功能为三类用户的公用的功能。该接口逻辑为根据session获取到当前登录的用户,然后去数据库去查询当前登录用户的所有信息,返回给前端展示,代码逻辑如图4-17所示。图4-17查询个人信息功能后端代码逻辑图4.7修改密码功能实现图4-18修改密码功能前端页面展示图修改密码功能为三类用户公用的功能。输入当前密码、新密码、确认密码后,前端先对这三个数据进行校验,验证通过后通过ajax发送给后端接口,根据接口返回结果提示相应信息。后端代码逻辑如图4-19所示,对旧密码、新密码以及确认密码再次做校验,防止前端校验被绕过。验证通过后,更新数据库中用户表的信息。图4-19修改密码功能后端代码逻辑图4.8上报巡检报告及审批巡检报告功能实现上报巡检报告由普通用户操作,如图4-20所示。审批巡检报告由部门管理员操作,如图4-21所示。图4-20上报消防巡检报告前端页面展示图图4-21审批消防巡检报告前端页面展示图前端对输入项做基本校验,验证通过后用ajax将数据传递给后端。主要看后端代码逻辑,如图4-22为上报巡检报告接口代码,图4-23为审批巡检报告接口代码。图4-22上报消防巡检报告后端代码逻辑图上报巡检报告接口主要判断当前用户是否被分配过部门,且分配的部门是否有管理员,只有分配到有管理员部门的用户才能上报巡检报告。验证通过有上报权限后,将相应的数据插入到数据表中。图4-23审批巡检报告后端代码逻辑图审批巡检报告接口主要判断当前巡检报告类型,获取到需要审批的报告后,修改其状态,并将审批时产生的数据一同更新到数据表中。不论上报巡检报告还是审批巡检报告,在处理成功之外,都会使用SMTP协议向指定上报人/部门管理员发送一封邮件,告知处理进度。图4-24通知巡检报告处理进度邮件图4.9创建工单及执行工单功能实现创建工单由部门管理员操作,如图4-25所示。执行工单由普通用户操作,如图4-26、图4-27、图4-28所示。图4-25创建工单前端展示图图4-26待处理状态工单前端展示图图4-27处理中状态工单前端展示图2图4-28已完成工单前端展示图3前端首先校验输入项是否符合要求,验证通过后采用ajax将数据传递给后端处理,根据返回结果展示相应信息。图4-29为创建工单接口代码,图4-30为执行工单接口代码。图4-29创建工单后端代码逻辑图创建工单接口首先拒绝非部门管理员的请求,返回错误信息给前端,然后将前端传来的数据处理后插入到数据表中。执行工单接口,根据工单id来获取对应的工单,若id错误则返回错误信息。所有校验通过后修改其状态,并将执行时时产生的数据一同更新到数据表中。图4-30执行工单后端代码逻辑图创建工单成功和执行工单更新状态时,发送邮件给指定的执行人和部门管理员,这一点和巡检报告的邮件结构是一致的,不做过多展示。4.10查询工单及查询巡检报告功能实现图4-31查询工单前端展示图图4-32查询巡检报告前端展示图查询功能是三类用户可以使用的,只不过后端针对不同类型的用户设计了不同的接口。针对于普通用户,只能查询与自己相关的工单和巡检报告;针对于部门管理员,只能查询与本部门相关的工单和巡检报告;针对于系统管理员,能够查询所有的工单和巡检报告。以部门管理员为例,首次请求查询工单接口,没有带任何参数,则查询所有工单。根据工单类型、名称、执行人等条件进行查询,则返回符合要求的工单。对于查询巡检报告接口也是一样的。在获取到符合要求的所有数据后,再对数据进行分页处理(每页展示10条数据)。具体逻辑如图4-33、图4-34所示。图4-33查询工单接口代码逻辑图图4-34查询巡检报告接口代码逻辑图4.11历史数据统计及数据可视化功能实现图4-35本年度安全类事件开展情况柱状图图4-36本年度安全类事件开展情况分布饼状图前端采用ECharts框架展示图表信息,后端接口实时获取最新数据返回给前端,主要实现逻辑为每次请求该接口,都会去数据表里查询相关数据,统计相应事件的数据量,即执行/完成次数,然后将次数返回给前端用于图表展示。主要代码如图4-37、图4-38所示。图4-37数据可视化接口主要代码逻辑图图4-38历史年度数据统计前端页面图对于历史年度数据统计接口,针对于本年度的信息,每次请求该接口,都会将历史年度数据表里的数据和当前重新统计的数据对比,若发生改变则更新数据库,并将最新数据返回给前端显示。针对于历史年度的信息,直接从历史年度数据表里获取出指定年份的数据,返回给前端即可。系统测试5.1测试的意义在软件开发生命周期的五大阶段中,测试阶段的重要性不亚于其他四个阶段。任何一个软件/系统,如果不经过测试,它的可靠性也就得不到保障。而测试的意义也并不在于消除一切bug,这也是几乎不可能完成的。测试的目的在于尽早地、尽快地、尽可能多地发现缺陷,将其扼杀在研发的初期,不给后期的维护工作带来不必要的麻烦,也能够极大程度改善用户体验,从而提高软件/系统的用户满意度。5.2测试内容5.2.1登录功能测试登录功能的测试点主要在于账号密码校验是否合理,用户登录成功后跳转首页是否合理,登录失败后提示信息是否合理。测试用例及结果如表5-1所示。表5-1登录功能测试用例表编号测试内容测试步骤预期结果实际结果1验证登录输入框内容不可为空不输入账号不输入密码账号密码都不输入前端展示错误信息提醒用户符合预期2验证登录接口密码校验合理性输入匹配的账号密码输入不匹配的账号密码登录成功登录失败符合预期3验证不同类型用户登录成功后跳转至对应首页普通用户登录管理员用户登录系统管理员用户登录跳转至各自的首页符合预期测试结果图如下,这里只以登录功能为例,展示系统的测试结果图。图5-1登录功能测试结果图图5-2登录功能测试结果图图5-3登录功能测试结果图5.2.2用户注册功能测试用户注册功能的测试点主要在于能够正常注册一个账号,且保证唯一键处理不出错,即不能重复创建相同姓名、账号、邮箱的账号。测试用例及结果如表5-2所示。表5-2注册用户功能测试用例表编号测试内容测试步骤预期结果实际结果1验证不填必填项,无法注册账号不填必填项,注册账号前端提示错误信息符合预期2验证正常注册一个事先不存在的账号所填字段均满足唯一性,注册账号注册成功并发送邮件通知用户符合预期3验证所填字段不满足唯一性要求,无法注册任意一个唯一键填写重复的值,注册账号前端提示错误信息符合预期4验证邮箱填写不符合规范,无法注册邮箱填写不符合规范,注册账号前端提示错误信息符合预期5.2.3添加部门功能测试添加部门功能的测试点主要在于保障部门的唯一性。测试用例及结果如表5-3所示。表5-3添加部门功能测试用例表编号测试内容测试步骤预期结果实际结果1验证添加一个不存在的部门,添加成功部门名称填事先不存在的值,添加部门添加成功符合预期2验证添加一个存在的部门,添加失败部门名称填事先存在的值,添加部门添加失败,前端提示错误信息符合预期5.2.4用户管理功能测试用户管理功能的测试点主要在于用户信息修改功能的代码逻辑验证,对于重置密码和注销账号的功能,只要保证前后端交互没问题即可。测试用例及结果如表5-4所示。表5-4用户管理功能测试用例表编号测试内容测试步骤预期结果实际结果1验证重置密码功能前后端交互正常选择指定用户重置密码用户密码被重置,且收到重置密码邮件通知符合预期2验证注销账号功能前后端交互正常选择指定用户注销账号账号从数据表中移除符合预期3验证修改用户信息满足唯一键约束选择指定用户,修改其邮箱为已存在的邮箱前端提示错误信息符合预期4验证修改用户账号类型合理性修改用户为已有管理员部门的管理员前端提示错误信息符合预期5验证修改用户账号类型合理性将用户从管理员变为普通用户用户信息更新,部门信息更新符合预期6验证修改用户账号类型合理性将用户从普通用户变为没有管理员的部门管理员用户信息更新,部门信息更新符合预期7验证修改用户账号类型合理性变动用户的部门用户信息更新,部门信息更新符合预期5.2.5部门管理功能测试由于部门管理没有太多的信息需要维护,因此只要保证修改部门信息和删除部门的功能能够正常使用即可。测试用例及结果如表5-5所示。表5-5部门管理功能测试用例表编号测试内容测试步骤预期结果实际结果1验证删除部门前后端交互正常选择指定部门删除部门被删除,该部门的用户信息更新符合预期2验证修改部门逻辑满足唯一性约束修改指定部门名称为已存在的部门名称前端提示错误信息符合预期3验证修改部门逻辑满足唯一性约束修改指定部门名称为不存在的部门名称修改成功符合预期5.2.6修改密码功能测试修改密码功能的主要测试点在于当前密码的校验、两个新密码的校验以及最终修改成功后用户信息表的更新情况。测试用例及结果如表5-6所示。表5-6修改密码功能测试用例表编号测试内容测试步骤预期结果实际结果1验证当前密码校验逻辑的正确性输入正确的当前密码输入错误的当前密码修改成功修改失败符合预期2验证新密码和确认密码校验逻辑的正确性两次密码输入一致两次密码输入不一致修改成功修改失败符合预期3验证密码修改成功后,新密码生效,旧密码失效检测数据表更新情况使用新密码登录数据更新登录成功符合预期5.2.7上报和审批巡检报告功能测试上报巡检报告的测试点主要在于上报的内容是否成功入库,上报成功时的邮件通知是否触发。审批巡检报告的测试点在于审批时产生的数据是否成功更新到对应的报告表当中,审批完成后的邮件通知是否触发。测试用例及结果如表5-7所示。表5-7上报和审批巡检报告功能测试用例表编号测试内容测试步骤预期结果实际结果1验证不同类型用户看到的报告详情页,展示不同1、普通用户2、管理员用户3、系统管理员用户除部门管理员外,其他用户不可审批报告符合预期2验证上报巡检报告功能可用普通用户账号上报巡检报告成功触发邮件通知,上报数据成功入库符合预期3验证审批巡检报告功能可用部门管理员用户审批巡检报告成功触发邮件通知,审批数据成功入库符合预期5.2.8创建和执行工单功能测试创建工单的测试点主要在工单的内容是否成功入库,创建成功时的邮件通知是否触发。执行工单的测试点在于执行时产生的数据是否成功更新到对应的工单表当中,执行完成后的邮件通知是否触发。测试用例及结果如表5-8所示。表5-8上报和审批巡检报告功能测试用例表编号测试内容测试步骤预期结果实际结果1验证不同类型用户看到的工单详情页,展示不同1、普通用户2、管理员用户3、系统管理员用户普通用户可执行,其他用户不可执行符合预期2验证创建工单功能可用部门管理员创建工单成功触发邮件通知,工单数据成功入库符合预期3验证执行工单功能可用普通用户执行被指定的工单成功触发邮件通知,执行产生数据成功入库符合预期5.2.9查询工单和巡检报告功能测试查询工单和巡检报告的功能测试点主要在于前端是否能够将数据传给后端接口,接口是否能够根据查询关键字筛选出数据返回给前端。测试用例及结果如表5-9所示。表5-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论