救援物资管理平台的设计与实现
2022-02-03康世英
康世英,马 军
(咸阳师范学院 计算机学院,陕西 咸阳 712000)
0 引言
我国是一个灾害频发的国家,如近年河南的特大暴雨,四川、甘肃等地的地震等重大自然灾害,给人们的生产生活带来了巨大影响。灾害发生后,如何高效合理地调配救援物资,让这些物资发挥最大的作用,把损失降低到最小,已成为各个学科研究的热点。各级政府及社区救援物资管理平台的建设是应急管理体系工作能否顺利开展的重要因素之一[1]。
1 系统设计
救援物资管理平台的3个主要功能模块分别为疫情数据管理、救援物资管理和用户管理[2]。本平台的操作人员主要是管理员,疫情数据管理模块主要包括:抓取数据、更新数据和展示数据。救援物资管理模块主要是对救援物资的添加、删除、修改、查询及领取操作。用户管理主要是指管理员对物资领取人的管理,包括对领取人的添加、删除、修改、查询操作。系统总体功能模块如图1所示。
图1 系统功能模块
2 系统详细设计与实现
本平台基于B/S架构设计,使用Java语言在IDEA 64位的环境下进行集成开发,采用MySQL数据库存储救援物资数据,对于抓取到的体量较大的疫情数据,采用基于内存设计的、读写速度较快的Redis数据库进行存放,前端页面数据展示使用Thymeleaf模板引擎显示静态和动态数据[3]。
2.1 疫情数据管理
疫情数据管理包括抓取数据、更新数据和展示数据的功能,实现了从大量疫情新闻数据中提取实时疫情信息的作用。
2.1.1 抓取数据
整个平台的首页有数据中心区域和全国各省份的疫情数据展示区域,数据中心区域主要展示全国自疫情以来累计的一些数据,这些数据是通过从腾讯疫情数据接口上抓取得到的。实现时分别通过CityDetail类、DetailData类和Riskarea类中的catchData()方法抓获取到全国各省市区数据、全国累计数据、当日数据、各省份详细数据和全国中高风险地区数据,再把抓取到的数据进行数据解析之后存入Redis数据库[4]。
2.1.2 更新数据
疫情数据每天都在发生变化,因此系统需要具备数据更新功能。在每天数据接口更新时,系统能够及时抓取到新数据,实现数据更新,此功能核心是SystemTask类中的Job()方法,通过Spring框架中的@Scheduled注解来实现的,设置系统每天在早上10:30和下午7:30进行数据抓取,以此实现定时更新疫情数据。
2.1.3 展示数据
在首页中的数据中心区域显示某个疫情数据的总和,这些数据是在DetailData类中,每一项数据都有一个最近60天的数据,当单击查看详情之后会跳转到list.html数据详情页面,通过调用IndexController类中excuteDetail()方法,通过IDataService接口中getAllChinaDayList()方法从Redis数据库中得到对应的数据并展示到页面中。其余各省份的疫情数据是通过调用handlerList()方法,通过IDataService接口中getStatisGradeCityDetail()方法从数据库中抓取各个省市区的现有确诊人数和该地区所属省份的数据并展示到页面中。此外,还可以通过调用excuteRiskarea()方法抓取全国目前中高风险地区的数据。
2.2 救援物资管理
救援物资管理包括对救援物资的增、删、改、查和救援物资领取的功能,实现了对救援物资来源的记录和对救援物资去向的追溯。
2.2.1 救援物资管理
首先设计一个救援物资的实体类Material,管理员成功登录后在进入救援物资管理页面时会调用MaterialController类中的handlerMaterialList()方法,通过IMaterialService接口中的getMaterialList()方法从数据库中查询material_info表中的所有数据并显示到页面中。当单击添加救援物资按钮跳转至相关页面,就可完成救援物资入库的基本信息。
救援物资基本信息最终是以form表单的形式用post方式提交,此时将会调用MaterialController类中的handlerMaterial()方法,通过IMaterialService接口中的addNewMaterial()方法将物资信息插入数据库material_info表,执行成功之后会跳转到救援物资管理页面并显示添加的救援物资信息。
2.2.2 救援物资领取
在救援物资管理页面中,当需要领取救援物资时,只需要单击该救援物资所对应的领取按钮,触发单击事件,跳转到物资领取界面record_add.html,把领取物资记录信息填写完成之后,单击领取按钮通过调用RecordController类中的handlerAddNewRecordList()方法,把救援物资领取记录插入相关数据表,同时物资的库存数量也会进行修改。
2.3 用户管理
用户管理主要是对领取人的管理。系统设计了一个领取人的实体类User来做统一管理,管理员登录成功进入首页,单击导航栏的领取人管理就会进入领取人信息列表页面。在进入页面时会调用UserController类中的handleruserList()方法,通过IUserService接口中的getAllUserlList()方法从数据库中查询出user_info表中的所有数据,同时再显示到页面中。当需要添加领取人时,需要单击添加领取人按钮跳转user_add.html页面,在此页面中管理员只需要填写新领取人的基本信息即可。
3 系统测试
救援物资管理平台在软件测试时主要考虑在基本救援物资入库、出库时要保持库存数量的一致,在领取救援物资时,要求输入和修改的信息遵循数据库设计时对字段的合理性要求,同时也需要规范数据类型。功能测试用例要符合软件测试的基本要求,以便达到预期测试效果。
在救援物资管理平台的测试中,对救援物资管理平台中各功能模块代码进行了检查和分析,优化了部分代码,降低了平台代码的冗余度,然后对救援物资管理平台进行了运行测试,按照测试用例的要求,填写相关数据并运行分析测试效果[5],系统功能测试如图2—3所示。经过测试,平台可以对物资名称、入库数量、物资型号、物资批次等救援物资信息进行录入、修改,还可以检索救援物资的领取记录,各个功能模块运行正常,整个平台运行流畅,测试结果符合最初设计的预期。
图2 录入救援物资信息页面
图3 领取救援物资页面
4 结语
本文利用提取到的灾害信息数据,以网络技术、多种数据库技术、各种框架技术为背景,对救援物资管理平台的具体实现技术和方法进行了分析和研究,实现了疫情数据管理、救援物资管理、用户管理等功能。平台界面美观,可操作性较强,在一定程度上为救援物资的管理提供便利。