校园传染病防控系统的设计与实现_第1页
校园传染病防控系统的设计与实现_第2页
校园传染病防控系统的设计与实现_第3页
校园传染病防控系统的设计与实现_第4页
校园传染病防控系统的设计与实现_第5页
已阅读5页,还剩79页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第第99页(共103页) 要:针对校园传染病防控过程中出现的防控机制不健全、信息共享不畅、学生健康状况实时监控缺失等问题,本设计运用SpringBoot框架、MySQL数据库及Redis缓存技术,设计并实现了一种高效的校园传染病防控软件系统。该系统具备以下核心功能:首先,通过采集校园内学生的健康信息,实现了对学生信息的全面录入、实时更新与快速查询,为防控工作提供了精准的数据支持;其次,系统实现了对校园出入人员信息的统计与管理,有助于控制外部传染源的进入,从而降低校园内传染病传播的风险;最后,系统还提供了防控物资的出入库管理功能,确保防控物资的充足供应,优化物资使用效率,为防控工作提供坚实的物质保障。通过本系统的应用,旨在显著提升学校对传染病的预防和控制能力,有效确保师生的身体健康与校园的安全稳定。Abstract:Inviewoftheproblemsofimperfectpreventionandcontrolmechanism,poorinformationsharing,andlackofreal-timemonitoringofstudents'healthstatusintheprocessofcampusinfectiousdiseasepreventionandcontrol,thisdesignusesSpringBootframework,MySQLdatabaseandRediscachingtechnologytodesignandimplementanefficientcampusinfectiousdiseasepreventionandcontrolsoftwaresystem.Thesystemhasthefollowingcorefunctions:Firstly,bycollectingthehealthinformationofstudentsoncampus,thesystemrealizesthecomprehensiveinput,real-timeupdateandquickqueryofstudentinformation,whichprovidesaccuratedatasupportforpreventionandcontrolwork;secondly,thesystemrealizesthestatisticsandmanagementofinformationofpersonnelenteringandleavingthecampus,whichhelpstocontroltheentryofexternalinfectioussources,soastoreducetheriskofinfectiousdiseasespreadoncampus;finally,thesystemalsoprovidesthemanagementfunctionofpreventionandcontrolmaterials,ensuringthesufficientsupplyofpreventionandcontrolmaterials,optimizingtheuseefficiencyofmaterials,andprovidingasolidmaterialguaranteeforpreventionandcontrolwork.Throughtheapplicationofthissystem,itaimstosignificantlyimprovetheschool'spreventionandcontrolabilityofinfectiousdiseases,andeffectivelyensurethephysicalhealthofteachersandstudentsandthesafetyandstabilityofthecampus.KeyWords:Health;Goinandout;supplies;MySQL;SpringBoot近年来,传染病频发,严重威胁师生的身体健康和学校的正常运行。尤其在人口密度大、交流频繁的校园环境中,一旦发生传染病疫情,其传播速度和范围往往难以控制。因此,如何有效地预防和控制校园传染病的传播,成为了一个待解决的问题。传统的校园传染病防控方式多依赖于人工报告和统计,存在信息不实时、不全面、不准确的问题,难以形成有效的预警和防控机制。同时,学校各部门之间信息共享不畅,防控措施缺乏协同性和针对性,导致防控效果不尽如人意。随着信息技术的快速发展,大数据、人工智能等新技术为校园传染病防控提供了新的解决方案。通过构建校园传染病防控系统,可以实现对校园内传染病疫情的实时监测、数据分析、预警发布和防控策略制定等功能,提高防控工作的科学性和精准性。此外,校园传染病防控系统的开发也符合当前社会对于公共卫生安全的重视和需求。在全球化和人口流动日益频繁的今天,传染病的防控已经成为了一个全球性的挑战。校园作为人才培养和社会发展的重要基地,其传染病防控工作的水平和效果,直接关系到社会的稳定和发展。因此,基于以上背景,开发一套科学、高效、智能的校园传染病防控系统,对于提高学校传染病防控能力、保障师生健康、维护校园安全和社会稳定具有重要的现实意义和深远的社会影响。校园传染病防控系统的目标是实现实时监测与预警、提高防控效率与精准性、促进信息共享与协同合作、提升师生健康意识与自我防护能力以及构建可持续的防控机制。这些目标的实现将为学校的传染病防控工作提供有力的技术支撑和保障。技术可行性从软件开发角度来看,现有的编程语言和开发工具为校园传染病防控系统的开发提供了强大的支持。采用Java语言作为开发基础,可以利用其跨平台、面向对象、安全性高等特点,确保系统的稳定性和可扩展性。同时,结合SpringBoot技术,可以实现系统的网络化部署和访问,方便师生和管理人员随时随地进行疫情信息的查询和管综上所述,从技术层面来看开发校园传染病防控系统是可行的。操作可行性用户界面的友好性对于系统的操作可行性至关重要。一个直观、易用的用户界面可以降低用户的学习成本,提高操作效率。因此,在系统设计过程中,我充分考虑了用户的操作习惯和认知特点,采用了简洁明了的界面设计和操作流程,使用户能够迅速熟悉并掌握系统的基本操作方法。同时,我还提供了详细的操作指南,方便用户随时查阅和学习。综上所述,从操作层面来看开发校园传染病防控系统是可行的。经济可行性从经济效益来看,校园传染病防控系统的实施将带来显著的社会效益和经济效益。社会效益主要体现在提升学校传染病防控能力,降低疫情传播风险,保障师生健康与校园安全。经济效益则体现在减少因疫情导致的停课、隔离等造成的教育资源浪费,以及降低因疫情引发的医疗救治等额外费用。另一方面,从成本角度来看,校园传染病防控系统需要服务器存储OSS费用等其他费用,这些都在可控范围之内。综上所述,从经济层面来看开发校园传染病防控系统是可行的。通过调研,校园传染病防控系统的主要分为七个模块:“传染病信息、系统管理,系统工具、物资管理、健康管理、出行管理、请假管理”。系统中主要处理的数据有:“用户、系统角色权限、物资、库存、物资分类、出行、请假等方面的数据,针对每个功能模块,都有相应的数据增加、删除、插叙和修改等操作。系统中还包括一些监控功能,可以监控系统的运行状况、物资的存储情况等。系统总的业务流程图如图2-1所示:图2-1系统总业务流程图传染病信息业务流程此模块调用外部接口,访问外部接口一般有普通请求和JSONP请求两种方式,不同请求需要进行不同的请求参数封装。发起请求后,后端通过IO流接收响应数据并对响应数据进行格式解析,获取本系统有关的数据。最后统一封装响应并传递给前端,在此基础上,前端部分功能需要使用EChart工具绘制图表。此业务流程图如图2-2所示:系统管理业务流程此模块相应用户可以进行系统用户管理、角色管理、菜单管理以及系别管理,用户管理包括对用户的添加、删除、状态修改、密码修改以及一些条件查询;角色管理包括对角色的添加、状态修改、权限修改以及一些条件查询;菜单管理是不同角色,系统所展示的页面、按钮的权限分配;系别管理是对系统各部门,如不同校区、不同部门和不同专业的添加、修改、删除、条件查询。系统管理模块可以分为两个业务流程,一是用户角色权限的分配:系统用户(管理员)创建用户后,判断是否存在角色,没有则先创建角色,并为用户分配角色,然后判断是否存在权限,没有则先创建权限,然后再为角色分配权限,最后为用户添加角色;二是系别的创建:系统用户(管理员)需要依次添加一级系别、二级系别和三级系别(系统限制系别最多嵌套三层)。此业务流程图如图2-3、2-4所示:图2-系统管理业务流程系统工具业务流程此模块主要是对系统的监控、日志记录,包括登录日志记录、操作日志记录、数据监控、服务监控、系统接口以及系统公告等的操作。以系统公告发布为例,系统公告管理包括的对公告的添加、状态修改、内容修改、删除和条件查询。系统用户(管理员)发布公告后,系统登录时会弹出公告框,每次发布都会覆盖之前的公告。此模块业务流程图如图2-5所示:物资管理业务流程此模块系统用户(后勤员工)可以进行物资资料管理,物资资料管理是对物资的添加、修改信息、删除和条件查询,以及物资的类别的添加、状态修改、信息修改和条件查询,还包括条件查询物资库存的情况,使用EChart工具绘制图表,可以更好的监控物资库存,避免物资亏空或膨胀,最后此模块还包括物资出入库的管理,记录物资来源和去向,添加出入库记录,条件查询。以创建物资和出入库物资为例,以此模块的的业务流程图如图2-6、2-7所示:健康管理业务流程此模块系统用户(学生)可以进行打卡信息管理,包括打卡的填写,本人打卡信息的查看、验证报告的上报,本人验证报的查看。系统用户(管理员、辅导员)额外的可以获取学生的打卡记录(管理员全部记录、辅导员该专业记录)并可以根据条件查询。以管理员或辅导员角色为例,查看学生的打卡信息和报告信息。此模块业务流程图如图2-8所示:出行管理业务流程此模块包括出入登记管理和未归人员管理。出入登记管理可以记录人员出校和入校情况,未归人员管理可以条件查询未归人员。系统用户(管理员和辅导员)可以根据条件查询相应出入登记记录和未归人员记录,同时不同的角色也会列出不同的记录。此模块业务流程图如图2-9所示:请假管理业务流程此模块系统用户(学生)可以进行请假的申请;系统用户(辅导员)可以进行请假的审核,审核通过学生方可出校。请假申请中需要填写以下信息,如出行地点、天数等,联系人、出行方式等。系统用户(管理员、辅导员)出行请假记录不同的角色会有不同的展示(管理员全部、辅导员该专业学生),可以对请假申请进行审核以及条件查询。此模块业务流程图如图2-10所示:校园传染病防控系统参与角色分析可以从管理员、学生、辅导员和后勤员工这四个主要角色出发,以下2-11表详细阐述他们在系统中的角色定位、职责与功能需求。抽取角度外部事物种类日常主要工作使用目标系统职责参与者典型代表管理员对学生、辅导员、后勤员工等用户进行添加、删除、修改等操作,并分配相应的权限;实时监控传染病数据,进行数据分析与报告生成并向相关人员发送通知管理员是校园传染病防控系统的核心管理者,负责系统的整体运行与维护管理员管理员学生健康信息上报:定期上报个人健康状况,如体温、症状等。接收通知与预警:及时接收系统发送的防控通知与预警信息,了解疫情动态;自我管理与防护:根据系统提示,做好个人防护,避免疫情传播学生是校园传染病防控系统的主要用户之一,需要遵守系统规定,配合防控工作学生学生辅导员监督学生上报健康信息的准确性,及时向管理员反馈异常情况;管理学生请假情况和出入情况,及时汇报辅导员在校园传染病防控系统中扮演着重要的教育引导与监督角色。辅导员辅导员后勤员工确保防疫物资的充足供应,如口罩、消毒液等后勤人员在校园传染病防控系统中负责提供物资保障后勤员工后勤员工按参与者进行用例分包,系统顶层用例分包图如图2-12所示:2-12系统顶层用例分包图根据上述识别出的系统参与者,从参与者使用系统的职责入手定义用例,分别分析用户的功能,需求功能如下:理员:管理员是校园传染病防控系统的核心管理者,主要负责系统的整体运行、维护与管理工作。管理员需要设定系统的各项参数,以确保系统能够准确、及时地反映校园内的疫情动态。此外,管理员还需对学生、老师和后勤等用户的账号进行管理,包括账号的创建、权限分配以及数据安全等工作。生:学生是校园传染病防控系统中的重要参与者,需要积极配合学校的防控工作。学生需要定期通过系统上报个人的健康状况,包括体温、症状等信息,以便学校及时掌握学生的健康状况。同时,学生还需要及时接收系统发送的防控通知和预警信息,了解疫情动态,并按照要求采取相应的防护措施。导员:辅导员在校园传染病防控系统中扮演着重要的角色。辅导员不仅需要关注学生的健康状况,还需要对学生进行防疫知识的宣传教育,引导学生正确理解和应对疫情。此外,辅导员还需要协助管理员进行学生的健康信息上报工作,确保上报信息的准确性和及时性。后勤员工:后勤员工在校园传染病防控系统中主要负责物资保障工作,他们需要确保防疫物资的充足供应,包括口罩、消毒液、防护服等,以满足师生在疫情防控中的需求。根据以上分析得到的参与者和用例,可以绘制出图2-13系统初始用例图,其中包含系统管理员、学生、辅导员、后勤员工4个系统参与者,系统初始用例共7个:传染病信息模块,系统管理模块、系统工具管理模块、物资管理模块、健康管理模块、出行管理、请假管理模块。2-13用户需要输入正确的账号、密码和验证码,否则系统会提供相应的错误提示信息。同时,该用例也考虑到了用户注册的特殊需求,该用例的目的是确保用户能够顺利登录系统,进行后续的操作。“登录界面”的用例描述的详细情况如表2-14所示: 账号 1、用例起始于参与者准备登录校园传染病防控系统。

用户(学生)请假需要填写请假信息,包括请假天数、出行地点、出行方式等,而管理员或者辅导员需要审核学生请假申请,从而进行后续操作。学生请假的用例描述的详细情况如表2-16所示: 学生 1、用例起始于学生准备申请请假。

根据上述分析,可将校园传染病防控系统划分为系统监控和信息管理分析两个部分。重构分包后顶层用例图如图2-18所示:2-18经过上述对角色需求的分析,从功能建模的角度,各部分用例分析如下:数据监控模块主要整合了AlibabaDruid数据库连接池的监控模块,其用例如图2-19所示2-19服务监控模块包含了实时监控CPU信息、实时监控内存信息、实时监控磁盘状态信息、查看CPU详细信息、查看内存详细信息、查看磁盘详细信息、查看服务器信息、查看Java虚拟机信息共8个用例。图片信息管理用例图如图2-20所示:2-20日志管理功能模块包含了登录日志和操作日志。登录日志和操作日志只能查询日志信息。该用例图如图2-21所示:2-21学生包含了健康管理、出行管理和请假申请三部分用例。该用例图如图2-22所示:2-22系统的参与角色有学生、辅导员、后勤员工以及系统管理员,系统的功能模块可划分为七个模块,包括传染病信息模块、系统管理模块、系统工具模块、物资管理模块、健康管理模块、出行管理模块、请假管理模块这些功能共同构成了系统的整体框架,实现了对校园传染病的全面防控。以下是各角色的功能描述:(1)管理员可以使用系统的所有功能模块,保证系统正常运行,其系统功能结构图如图3-1所示:(2)为了保证学生的安全,辅导员需要对学生的打卡信息、报备信息、出行以及请假进行管理。辅导员功能结构图如图3-2所示:辅导员端(3)为了保证校园物资供应,后勤员工需要对物资的出入库进行管理。后勤功能结构图如图3-3所示:后勤员工端(4)学生需要健康打卡,上报检测信息、行程、疫苗信息,如果需要请假或出校,需要进行申请或登记。学生功能结构图如图3-4所示:学生端本系统的PC界面设计由两部组成,左侧是侧边栏,中间部分是主题内容展示区,用于显示应的主要内容。主体内容区域可以根据侧边栏进行切换。具体细节如图3-5所示:PC本系统的小程序界面设计由两部组成,顶部是主题内容展示区,用于显示应的主要内容,底部是导航栏。主体内容区域可以根据底部导航栏进行切换。具体细节参见下图3-6所示:3-6小程序出入人员信息中id是系统分配的唯一标识符,用于区分不同的出入信息;姓名、出入类型、手机号码、身份证、系别、备注用于识别出入人员的身份信息;创建人、创建时间、更新时间、逻辑删除用于系统管理人员。出入人员信息表实体属性图如图3-7所示:未归人员信息包含了id、姓名、手机号码、身份证、备注、系别id和创建时间信息。其中,id是该未归信息的唯一标识符,用于区分不同的未归信息;姓名、手机号码、身份证、备注、系别id用于标识未归人员的信息;创建时间用于系统管理,以便用户更好地使用和管理系统。未归人员信息实体属性图如图3-8所示:物资信息所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的物资;类型id、物资名称、图片链接、物资规格、物资单位、备注、库存、是否启用用于标识物资信息;创建人、创建时间、更新时间、逻辑删除、乐观锁用于系统管理人员,以便更好地使用和管理系统。物资信息表实体属性图如图3-9所示:物资物资库存所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的物资库存;去向、物资数资规格、物资名、联系人、联系人电话、备注、物是否启用用于标识物资去向信息;操作人人、创建时间、更新时间、逻辑删除、乐观锁用于系统管理人员,以便更好地使用和管理系统。物资库存表实体属性图如图3-10所示:-10物资物资类型包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的物资类型;物资类型、排序、状态、物资名、备注用于标识物资类型信息;创建时间、更新时间、逻辑删除、版本用于系统管理人员,以便更好地使用和管理系统。物资类型表实体属性图如下3-11所示:-11物资打卡信息所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的人员打卡信息;健康状况、温度、中高风险、确诊、境外返回、地址、系别id用于标识打卡人员信息;创建时间、更新时间、逻辑删除用于系统管理人员,以便更好地使用和管理系统。打卡信息表实体属性图如图3-12所示:-12打卡信息上报信息所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的人员上报信息;用户名、系别id、手机号、核算报告、行程码、健康码、返校情况用于标识上报人员信息;创建时间、更新时间用于系统管理人员,以便更好地使用和管理系统。上报信息表实体属性图如图3-13所示:上报信息请假信息所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的人员请假信息;用户id、系别id、请假原因、请假类型、状态、学生类型、学生姓名、请假天数、目的地、交通工具、是否有课程、宿舍、手机号码、考试、审核意见用于标识请假人员信息;创建时间、更新时间、逻辑删除用于系统管理人员,以便更好地使用和管理系统。请假信息表实体属性图如图3-14所示:3-14请假信息系统公告所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的公告。公告标题、内容、状态、备注用于标识公告信息;创建人、创建时间、更新人、更新时间、逻辑删除用于系统管理人员,以便更好地管理系统公告信息。系统公告实体属性图如图3-15所示:3-15操作日志所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的操作。模块标题、业务类型、方法名称、请求方式、请求url、主机地址、操作地点、请求参数、操作人、返回参数、操作状态、错误消息、操作时间用于系统管理人员,以便更清楚了解系统操作信息。操作日志实体属性图如图3-16所示:3-16角色所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的角色。角色名、描述、备注、状态用于标识每一个角色信息;创建时间、更新时间、逻辑删除、乐观锁用于系统管理人员,以便更好地管理系统角色信息。角色实体属性图如图3-17所示:3-17角色菜单所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的角色菜单关联关系。角色id是逻辑外键、菜单id也是逻辑外键。角色菜单实体属性图如图3-18所示:18用户所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的用户。用户名、密码、昵称、头像地址、电话、所在城市、系别id、备注、状态用于标识用户信息;创建时间、更新时间、逻辑删除、乐观锁用于系统管理人员更好的管理用户。用户实体属性图如图3-19所示:19用户角色所包含的属性中,id是系统为所分配的唯一标识符,用于区分不同的用户角色关联关系。用户id是逻辑外键、角色id也是逻辑外键。用户角色实体属性图如图3-20所示:20在进行数据库逻辑设计时,通常采用表达式来描述数据库概念结构,从而将其转化为数据库系统所支持的实际数据模型,即数据库逻辑结构。出校表access_register具有11个字段,其定义如表3-21所示:名类型长度小数点不是null默认值注释idbigint000自增idnamevarchar500-1姓名phonevarchar500-1手机号码typeint00-1出入类型(1出校0:入校)cardvarchar800-1身份证号remarkvarchar2550-1备注deptvarchar500-1系别create_byvarchar500-1创建人create_timedatetime00-1创建时间update_timedatetime00-1更新时间is_deleteint00-10逻辑删除入校表access_return具有7个字段,其定义如表3-22所示:名类型长度小数点不是null默认值注释idbigint000自增idnamevarchar500-1姓名phonevarchar600-1手机号码cardvarchar800-1身份证号码remarkvarchar2550-1备注deptvarchar500-1系别create_timedatetime00-1创建时间物资信息表good_info具有14个字段其定义如表3-23所示:名类型长度小数点不是null默认值注释idbigint000物资信息idtype_idbigint00-1类型idnamevarchar500-1物资名称imgvarchar2550-1图片链接sizevarchar500-1物资规格unitvarchar500-1物资单位create_byvarchar500-1创建人remarkvarchar500-1备注totalint00-1库存statusint00-1是否启用create_timedatetime00-1创建时间update_timedatetime00-1更新时间is_deleteint00-1逻辑删除versionint00-11乐观锁物资库存表good_stock具有14个字段其定义如表3-24所示:名类型长度小数点不是null默认值注释idbigint000出入库信息idacceptvarchar600-1去向create_byvarchar500-1操作人good_numint00-1物资数量good_sizevarchar500-1物资规格good_namevarchar500-1物资名people_namevarchar500-1联系人people_phonevarchar500-1联系人电话operate_typeint00-11操作类型remarkvarchar2550-1备注create_timedatetime00-1创建时间update_timedatetime00-1更新时间is_deleteint00-10逻辑删除versionint00-11乐观锁物资类型表good_type具有10个字段其定义如表3-25所示:名类型长度小数点不是null默认值注释idbigint000物资类型idtypevarchar300-1物资类型order_numint00-1排序statusint00-11状态create_byvarchar300-1创建人create_timedatetime00-1创建时间update_timedatetime00-1更新时间is_deleteint00-10逻辑删除versionint00-11乐观锁remarkvarchar800-1备注打卡表health_clock具有12个字段其定义如表3-26所示:名类型长度小数点不是null默认值注释idbigint000打卡idusernamevarchar500-1姓名health_typeint00-1健康状况temperaturefloat61-1温度middle_highint00-1中高风险diagnosisint00-1确诊return_infoint00-1境外返回addressvarchar600-1地址create_timedatetime00-1创建时间update_timedatetime00-1更新时间dept_idint00-1系别idis_deleteint00-10逻辑删除上报表health_report具有10个字段其定义如表3-27所示:名类型长度小数点不是null默认值注释idbigint000自增idusernamevarchar500-1用户名dept_idbigint00-1系别idphone_numbervarchar500-1手机号img3varchar2550-1核酸报告img2varchar2550-1行程码img1varchar2550-1健康码typeint00-1返校情况create_timedatetime00-1创建时间update_timedatetime00-1更新时间请假表leave_apply具有20个字段其定义如表3-28所示:名类型长度小数点不是null默认值注释idbigint000主键idusernamevarchar500-1用户名dept_idbigint00-1系别idreasonvarchar2550-1请假原因leave_typeint00-1请假类型(1:事假2:病假)statusint00-1状态(0:撤销1:待审核2:审核通过3:审核不通过)student_typeint00-1学生类型(1:本科生2:研究生3:博士生)nicknamevarchar640-1学生姓名timevarchar640-1请假时间区间dayvarchar500-1请假天数addressvarchar1000-1目的地trafficvarchar500-1交通工具clazzint00-1是否有课程(1:没有0:有)dormitoryvarchar500-1宿舍phone_numbervarchar500-1手机号码examint00-1考试(1:没有0:有)opinionvarchar1200-1审核意见create_timedatetime00-1创建时间update_timedatetime00-1更新时间is_deleteint00-10逻辑删除系别表sys_dept具有14个字段其定义如表3-29所示:名类型长度小数点不是null默认值注释dept_idbigint000系别idparent_idbigint00-1父系别iddept_namevarchar300-1系别名称order_numint00-1显示顺序leadervarchar200-1负责人phonevarchar110-1联系电话emailvarchar500-1邮箱statusint00-1系别状态(1正常0停用)create_byvarchar640-1创建者create_timedatetime00-1创建时间update_byvarchar640-1更新者update_timedatetime00-1更新时间is_deleteint00-10逻辑删除versionint00-11乐观锁登录日志表sys_login_info具有9个字段其定义如表3-30所示:名类型长度小数点不是null默认值注释idbigint0000访问IDusernamevarchar500-10用户账号ipvarchar500-10登录IP地址login_locationvarchar1000-10登录地点browservarchar500-10浏览器类型osvarchar500-10操作系统statusint00-11登录状态(0成功1失败)msgvarchar1000-10提示消息login_timedatetime00-10访问时间菜单权限表sys_menu具有14个字段其定义如表3-31所示:3-31s名类型长度小数点不是null默认值注释idbigint000主键IDparent_idbigint00-1父菜单ID,一级菜单为0namevarchar6400菜单名pathvarchar2550-1菜单URLpermsvarchar2550-1授权(多个用逗号分隔,如:user:list,user:create)componentvarchar2550-1组件typeint000类型0:目录1:菜单2:按钮iconvarchar320-1菜单图标order_numint00-1排序create_timedatetime00-1创建时间update_timedatetime00-1修改时间statusint0001状态0:禁用1:启用is_deleteint0000逻辑删除versionint0001乐观锁系统公告表sys_notice具有10个字段其定义如表3-32所示:3-32名类型长度小数点不是null默认值注释idbigint000主键IDtitlevarchar8000公告标题contentvarchar25500内容statusint0001状态0关闭1开启create_byvarchar3000创建人create_timedatetime000创建时间update_byvarchar300-1更新人update_timedatetime00-1更新时间remarkvarchar800-1备注is_deleteint0000逻辑删除操作日志表sys_operate_log具有14个字段其定义如表3-33所示:3-33名类型长度小数点不是null默认值注释idbigint00是日志主键titlevarchar500-1模块标题business_typevarchar500-1业务类型methodvarchar1000-1方法名称request_methodvarchar100-1请求方式oper_urlvarchar2550-1请求URLoper_ipvarchar1280-1主机地址oper_locationvarchar2550-1操作地点oper_paramvarchar20000-1请求参数oper_namevarchar500-1操作人json_resultvarchar20000-1返回参数statusint00-11操作状态(1正常0异常)error_msgvarchar20000-1错误消息oper_timedatetime00-1操作时间角色表sys_role具有9个字段其定义如表3-34所示:3-34名类型长度小数点不是null默认值注释idbigint000角色IDnamevarchar6400角色名codevarchar6400描述remarkvarchar640-1备注create_timedatetime00-1创建时间update_timedatetime00-1修改时间statusint0001状态0:禁用1:启用is_deleteint00-10逻辑删除versionint00-11乐观锁角色菜单表sys_role_menu具有3个字段其定义如表3-35所示:名类型长度小数点不是null默认值注释idbigint000主键IDrole_idbigint000角色IDmenu_idbigint000菜单ID用户表sys_user具有14个字段其定义如表3-36所示:3-36名类型长度小数点不是null默认值注释idbigint000主键IDusernamevarchar640-1用户名(工号)passwordvarchar640-1密码nicknamevarchar640-1昵称avatarvarchar2550-1头像地址phone_numbervarchar640-1电话cityvarchar640-1所在城市dept_idbigint00-1系别IDcreate_timedatetime00-1创建时间update_timedatetime00-1修改时间remarkvarchar500-1备注statusint0001状态0禁用1启用is_deleteint00-10逻辑删除versionint00-11乐观锁用户角色表sys_user_role具有3个字段其定义如表3-37所示:3-37名类型长度小数点不是null默认值注释idbigint000主键IDuser_idbigint000用户IDrole_idbigint000角色ID数据库物理设计与逻辑设计相对应,数据库的物理设计与逻辑设计密切关系着整个应用系统的高效运行,即通过逻辑设计建立物理数据库表,系统采用MySQL数据库存储数据。出入登记表access_register的物理实现如图3-38所示:3-38access_register3-393-39物资信息表good_info的物理实现如图3-40所示:3-40物资库存表good_stock的物理实现如图3-41所示:3-41物资类型表good_type的物理实现如图3-42所示:3-42打卡表health_clock的物理实现如图3-43所示:13-43报备表health_report的物理实现如图3-44所示:3-44请假表leave_apply的物理实现如图3-45所示:3-45系别表sys_dept的物理实现如图3-46所示:3-46登录日志表sys_login_info的物理实现如图图3-47所示:3-47系统菜单表sys_menu的物理实现如图3-48所示:3-48系统公告表sys_notice的物理实现如图3-49所示:3-49系统操作日志表sys_operate_log的物理实现如图3-50所示:3-50系统角色表sys_role的物理实现如图3-51所示:3-51系统角色菜单表sys_role_menu的物理实现如图3-52所示:3-523-533-533-543-54根据系统分析与设计,建立了二十个控制类,分别是出入登记表前端控制器AccessRegisterController、未归用户表前端控制器AccessReturnController、物资信息表前端控制器GoodInfoController、物资出入库表前端控制器GoodStockController、物资类型表前端控制器GoodTypeController、打卡健康表前端控制器HealthClockController、打卡健康表前端控制器HealthClockController、验证码前端控制器、KaptchaController、请假审批表前端控制器LeaveApplyController、新闻前端控制器NewsController、redis监控前端控制器RedisController、注册前端控制器RegisterController、主机监控前端控制器ServerController、部门表前端控制器SysDeptController、系统访问记录前端控制器SysLoginInfoController、菜单前端控制器SysMenuController、公告表前端控制器SysNoticeController、操作日志记录前端控制器SysOperateLogController、角色前端控制器SysRoleController、用户前端控制器SysUserController,并定义了其属性与操作。系统控制器总体类图如图4-1所示:4-1经过上述对校园传染病防控系统的分析,common层提供API接口、枚举。系统总包图如图4-2所示:4-2组件图是UML提供的一种表示组件的组织结构和相互关系的图。数据可视化子系统组件图如图4-3所示:4-3根据对整体系统的分析,定义了如下部署结构图。该图简要描述了系统所需的处理器和设备的拓扑结构,显示了运行软件系统所需的物理硬件以及如何将软件部署到硬件上。系统部署图如图4-4所示:4-4服务监控:系统管理员登录系统后,即可查看服务器实时监控信息。该页面调用ServerController类中的server()接口获取服务器基础数据并使用ECharts将其渲染至页面中。服务监控时序图如图4-5所示:4-5用户在登录系统后展示传染病相关数据。该页面通过NewsController类中各个接口获取数据,再经过EChart渲染到页面。调用news()接口获取最新传染病新闻,调用riskarea()接口获取高风险地区、调用history()接口获取历史传染病数据,调用data()接口调用获取中国传染病数据,调用rumor()接口,获取辟谣新闻。传染病数据时序图如图4-6所示:4-6传染病数据时序图拥有权限的用户在登录系统后可获取物资相关数据,以便对库存进行监控。该页面通过GoodInfoController类中的接口获取数据,再经过EChart渲染到页面。调用total()接口获取,库存监控时序图如图4-7所示:4-7库存监控时序图B/S软件体系架构B/S软件体系架构是浏览器/服务器交互模式的简称,它代表了目前最常用的一种软件架构。在这种架构中,软件的开发和部署主要基于Web技术,用户通过浏览器来访问和使用软件,而所有的业务逻辑和数据存储都集中在服务器端进行处理。 (2)SpringBoot框架SpringBoot是一个开源的Java框架,为快速构建Spring应用提供了便捷的方式,简化Spring应用的初始搭建以及开发过程。它使用“习惯优于配置”的理念,通过大量的默认配置来帮助开发者快速构建应用。同时,SpringBoot还集成了许多常用的第三方库,使得开发者可以更加方便地集成各种功能。MySQLMySQL是一个开源的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)进行数据库管理。由于其稳定、可靠且易于使用的特性,MySQL成为了许多企业、开发者和个人的首选数据库。 (3)Redis轻量级缓存Redis最为显著的特点是它的高性能。它支持数据的持久化,可以将内存中的数据保持在磁盘中,这样即便在系统重启后,数据也能够再次加载并使用,确保数据的完整性和持久性。Redis支持的数据结构类型非常丰富,不仅限于简单的key-value类型。它还提供list、set、zset(有序集合)和hash等数据结构的存储,这使得Redis能够处理更为复杂的数据需求。这些数据结构都支持push/pop/add/remove及交并补等操作,而且这些操作都是原子性的,确保了数据的一致性。操作系统:推荐使用Windows7/8/10或MacOS,确保系统稳定且兼容。Java环境:需要安装JavaDevelopmentKit(JDK)1.8版本。JDK是Java应用程序的开发和运行环境,确保系统能够正常运行Java程序。数据库:使用MySQL5.7/8.0等版本用于存储和管理系统的数据。Web服务器:Tomcat7.x/8.x/9.x版本是推荐的Web服务器软件,用于部署和运行Web应用程序。集成开发环境(IDE):使用IDEA,方便编写、调试和部署代码。网络:稳定的网络环境是系统运行的基础,确保系统能够实时更新数据并与用户进行交互。 本项目使用Maven构建,采用传统的SSM架构。其中resources文件夹包含了项目的配置和资源文件。src文件夹下的java文件夹下存放项目的Java代码。具体实现如图5-1所示:在校园传染病防控系统中,使用注解的方式实现系统日志的记录。通过AOP,我们可以将日志记录代码从业务逻辑代码中分离出来,实现代码的解耦。这样,业务逻辑代码可以更加专注于实现业务功能,而不需要关心日志记录等横切关注点,这意味着我们可以在不重启应用的情况下添加、修改或删除日志功能。这提高了系统的可维护性和灵活性。如图5-2是AOP注解日志部分代码展示:@Resource

privateAsyncTaskUtilasyncTaskUtil;

@AfterReturning(pointcut="@annotation(controllerLog)",returning="jsonResult")

publicvoiddoAfterReturn(JoinPointjoinPoint,LogcontrollerLog,ObjectjsonResult){

handleLog(joinPoint,controllerLog,null,jsonResult);

}

protectedvoidhandleLog(finalJoinPointjoinPoint,LogcontrollerLog,finalExceptione,ObjectjsonResult){

try{

Stringusername=SecurityUtil.getLoginUser();

HttpServletRequestrequest=ServletUtil.getRequest();

//*========数据库日志=========*//

SysOperateLogoperateLog=newSysOperateLog();

operateLog.setStatus(e!=null?0:1);

operateLog.setErrorMsg(e!=null?e.getMessage():null);

operateLog.setOperIp(IpUtils.getIpAddr(request));

operateLog.setOperUrl(ServletUtil.getRequest().getRequestURI());

operateLog.setOperName(StrUtil.isNotBlank(username)?username:"未知");

StringclassName=joinPoint.getTarget().getClass().getName();

StringmethodName=joinPoint.getSignature().getName();

operateLog.setMethod(className+"."+methodName+"()");

operateLog.setRequestMethod(request.getMethod());

getControllerMethodDescription(joinPoint,controllerLog,operateLog,jsonResult,request);

asyncTaskUtil.recordOperateInfo(operateLog);

}catch(Exceptionexception){

log.error("==========切面通知异常=========");

log.error("异常信息:{}",exception.getMessage());

}

}SpringSecurity可以集成到应用程序中,验证用户的身份,确保只有经过身份验证的用户才能访问应用程序的受保护资源。这有助于保护应用程序免受未经授权的访问。同时提供了一套灵活的授权机制,可以基于角色(Role)或权限(Permission)进行授权。它可以定义访问控制规则,决定哪些用户可以访问哪些受保护的资源。这有助于确保用户只能访问他们被授权访问的资源。下面图5-3是SpringSecurity的部分代码:@Override

protectedvoidconfigure(HttpSecurityhttp)throwsException{

http.cors().and().csrf().disable()

//登录配置

.formLogin()

.successHandler(loginSuccessHandler)

.failureHandler(loginFailHandler)

.and()

.logout()

.logoutSuccessHandler(jwtLogoutSuccessHandler)

//禁用Session

.and()

.sessionManagement()

.sessionCreationPolicy(SessionCreationPolicy.STATELESS)

//配置拦截器

//anonymous()允许匿名用户访问,不允许已登入用户访问

//permitAll()不管登入,不登入都能访问

.and()

.authorizeRequests()

.antMatchers(URL_WHITELIST).ano

温馨提示

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

评论

0/150

提交评论