基于Spring Boot的扶贫信息管理系统的设计与实现*

2021-12-22 06:29咸阳师范学院计算机学院邹燕飞刘淑英黄旺
数字技术与应用 2021年11期
关键词:信息管理系统可行性页面

咸阳师范学院计算机学院 邹燕飞 刘淑英 黄旺

我国的精准扶贫工作已由攻坚阶段转变为巩固阶段,这就需要贫困户、帮扶干部以及扶贫部门及时准确地获得相关信息。为使贫困户方便地获取政策信息,扶贫部门能够及时了解扶贫动态,利用信息化手段智慧扶贫,作者设计并实现了一个扶贫信息管理系统。系统使用Vue框架和Element UI构建出友好简洁的前端交互页面,后端使用Spring Boot框架快速搭建,使用MyBatis-Plus进行MySQL数据库访问,实现了扶贫信息管理系统的各项功能。系统采用前后端分离模式,具有良好的可扩展性,操作方便快捷、功能实用,能够切实解决扶贫工作中的实际问题。

0 引言

自新中国成立以来,我国陆续出台了一系列的扶贫政策,目的就是为了解决中国人民的贫困问题,让人民真正过上幸福美满的生活。国家出台扶贫优惠政策,增加扶贫投入,广泛动员全社会力量参与精准扶贫工作[1]。精准扶贫工作开展至今已经取得了显著成果,随着贵州省宣布所有贫困县摘帽出列,我国832个国家级贫困县全部脱贫摘帽,这标志着我国脱贫工作取得了阶段性的胜利,扶贫工作也将由攻坚阶段转为巩固阶段。

1 需求分析及可行性分析

1.1 需求分析

本系统是一个扶贫信息管理系统,涉及贫困户及家庭成员的个人隐私,需要较高的安全性,因此设置了一定的权限,系统对贫困户、帮扶干部和扶贫部门开放不同权限,用于保障系统稳定运行,具体权限功能如下:

(1)贫困户。需要扶贫系统中存在他的个人信息,即他首先得是贫困户身份才可以使用本系统,然后可以了解扶贫相关政策。为保证他人隐私,贫困户不能查看其他贫困户信息;为保证数据准确性,贫困户只能对自己的信息进行查看,如果信息有误可联系帮扶干部进行修改。

(2)帮扶干部。其权限略大于贫困户,但是他也仅能对扶贫部门为其分配的贫困户的个人信息进行查看和维护,为了保障扶贫管理系统的数据安全性,帮扶干部不能删除和添加贫困户,仅能对已存在且属于自己帮扶的贫困户信息进行修改维护。

(3)扶贫部门。本系统的超级管理员,对于系统中贫困户的添加删除、帮扶干部的添加删除、帮扶政策的发布、维护、过期操作包括扶贫工作中的各项汇总数据都只能通过此账号进行维护。

(4)扶贫信息管理系统要保证系统数据具有完整性,数据库中的数据不能随意修改和删除。

1.2 可行性分析

在开发扶贫信息管理系统的整体流程中,主要从操作可行性、经济可行性和技术可行性三个方面进行分析。

(1)操作可行性。本系统采用Vue构建前端页面,Vue框架简单易用,有HTML和CSS基础即可快速上手;有着很好的第三方界面支持(如Element UI),可以非常方便的搭建出简洁美观的前端页面;提供了各种样式的表格、友好提示框等,可以提升用户的使用体验;本系统基于B/S架构,只需要浏览器就可以非常方便的访问、使用系统各项功能。

(2)经济可行性。本系统使用的前端技术框架和后端技术框架都属于开源框架,包括MySQL也是开源的,而开发工具IDEA可以获取到免费的正版软件使用权限,且系统开发对电脑配置无过高要求,综合来看本系统不需要高成本即可开发完成。

(3)技术可行性。硬件可行性分析,系统是一个小型的基于B/S架构的系统,仅需要一台普通的电脑进行简单的环境配置和软件安装,就可以进行系统的开发工作。软件可行性分析,系统开发使用到的后端开发的IDEA软件可以通过学生身份免费获取使用,前端开发软件VS Code也是一款开源软件,在官网下载即可使用,系统所使用到的各种技术框架均为开源框架,个人使用不存在版权问题,在技术编码软件上也是可行的。

综上分析,本系统无论是在操作、经济还是技术可行性方面都是可行的。

2 结构设计

2.1 系统结构设计

本扶贫信息管理系统从逻辑层面上来分可以分为四层[2],分别是前端视图层:负责扶贫管理系统页面的展示;控制层:接收前端请求调用相关方法进行处理;业务层:主要完成扶贫信息管理系统相关的业务逻辑;持久化层:使用MyBatis-Plus完成扶贫管理系统相关的贫困户、帮扶干部等数据的持久化工作。这样的分层结构有利于系统各部分分工明确,使得系统代码层次分明,有效降低各部分耦合度,便于后期进行修改。扶贫信息管理系统总体框架如图1所示。

图1 系统总体框架图Fig.1 System overall framework diagram

2.2 数据库设计

(1)数据库数据命名规范:对于数据库表以及字段的命名规范,有助于后期开发阶段对各表进行关联操作时更加清晰明了。数据库表中字段的名称应该见名知意,且应该对数据库各字段进行解释说明,使表间关系更加明确,确保数据库规范使开发过程更加高效。

(2)数据可扩展:进行数据库表设计时应该尽可能的减少耦合,对数据字段增加不能影响原有数据以及系统的正常功能,为数据库的扩展维护预留充分空间。

(3)数据安全性与完整性:对于数据库中存储的贫困户相关数据要确保准确,对字段类型、长度、能否为空等作出合理的判断和设计,尽量避免表中脏数据的产生。

3 系统设计与实现

3.1 用户登录和菜单展示模块

登录功能是通过用户访问登录页面login,然后login会调用后台/get-code接口,通过google提供的kaptcha工具类将随机生产的位验证码转换为图片输出到login页面,然后输入账号存入username属性中,密码存入password属性中,验证码存入code属性封装成一个AdminLogin对象。当用户点击登录按钮后,前端页面通过接口将Json格式的对象传递到后端,后台会调用LoginController中的login()方法,接收用户传递的AdminLogin对象,然后通过该对象的code属性拿到验证码,判断验证码是否和后端产生的一致;如果验证码错误直接返回{code=500,message=“验证码输入错误”}的Json数据;如果正确就调用AdminInfoMapper中由MyBatis-Plus提供的selectOne()方法,通过QueryWrapper构造条件,查询此账号是否存在。如果不存在则返回500状态码并提示用户账号或者密码输入错误[3]。

3.2 贫困户管理模块

贫困户信息维护主要是对帮扶干部和扶贫部门用于对贫困户信息进行管理的功能的实现。该功能主要是通过前端请求后端/family/manage/update路径对应接口,该路径会通过LowIncomeFamilyInfoController中的updateDetailHandler (LowIncomeFamily family)方法,接收前端传递的参数,对请求参数对象进行非空判断;调用ILowIncomeFamilyInfoService中的updateDetail(LowIncomeFamilyInfo family)方法进行信息的更新,信息更新主要是通过LowIncomeFamilyInfoMapper中的update(LowIncomeFamilyInfo family)方法,将前端传递信息封装对象后通过此方法进行动态更新操作[4]。

3.3 帮扶干部模块功能的实现

(1)帮扶干部信息管理。帮扶部门用户通过前端相应的页面按钮,根据提示对信息进行维护后提交表单信息请求后端/dept/leader/manage/接口。HelpPeopleInfo Controller中的updateDetailHandler()方法,会接收前端填写的信息封装到HelpPeopleInfo对象中,该方法会通过调用IHelpPeopleInfoService中定义的updateDetail()方法,并将接收到的请求参数封装为一个HelpPeopleInfo对象进行传递。在HelpPeopleInfoServiceImpl中实现updateDetail()方法时,首先对HelpPeopleInfo对象进行参数的校验,校验无误后通过HelpPeopleInfoMapper的update()方法将HelpPeopleInfo对象传入进行动态修改,完成修改后update()方法会返回执行成功影响的数据库行数结果,根据执行结果判断并响应前端页面此次的操作相关信息,完成帮扶干部信息维护的功能。

(2)帮扶干部分配。分配功能的实现主要是通过前端请求后端的HelpInfoController下的addHelpHandler()方法,该方法会通过IHelpInfoService的实现类HelpInfo ServiceImpl实现addHelp()方法。在该方法中会首先拿到请求参数中的帮扶干部的id,然后使用HelpInfoMapper的selectById方法查询该帮扶干部名下已经存在的贫困户数量,如果超过5户,建立关系失败返回提示“帮扶关系建立过多,请选择其他帮扶干部进行分配”。如果该干部符合分配的标准那么通过HelpInfoMapper的select(Query Wrapper wrapper)方法,构造条件查询帮扶信息表help_info中是否已经存在该贫困户的帮扶关系,如果存在返回已绑定消息,不存在则通过使用insert方法,向help_info帮扶关系表中插入一条相关信息即可完成帮扶干部分配贫困户的相关操作。

(3)帮扶计划功能实现。本功能的实现流程是帮扶干部通过帮扶干部-扶贫计划模块选择帮扶的贫困户然后点击计划制定按钮,通过/plan/add路径请求后端控制层PlanInfoController的addPlanHandler()方法,将计划内容、计划制定时间、帮扶人id、贫困户id等信息进行封装成一个PlanInfo对象,此方法将判断该对象是否为null,如果为null返回错误信息;若不为null通过IPlanInfoService调用addPlan()方法,该方法在PlanInfoServiceImpl中进行实现,实现步骤为先通过PlanInfo对象判断各参数的合法性,校验通过后调用PlanInfoMapper的insert()方法将帮扶计划存入数据库表plan_info中进行持久化,并返回添加帮扶计划成功的信息进行提示。

(4)扶贫政策功能实现。帮扶政策维护主要是对帮扶政策进行添加、修改和删除的操作,帮扶部门通过政策管理模块对政策进行维护,前端提供相应按钮当用户点击时会触发onclick事件,通过点击事件的回调函数请求后端/policy/manage/接口,PolicyInfoController会对请求作相应的处理,调用IPolicyInfoService接口的实现类中的相应的方法,通过PolicyInfoMapper完成扶贫政策的相关维护和查看功能。

4 结语

本文主要介绍了扶贫信息管理系统的设计与实现,对系统进行了全面的分析,然后进行总体结构、功能模块等方面的设计,随后对扶贫管理系统中各个具体模块的详细实现进行了整体描述。经过对系统各模块功能进行测试[5],该系统预期各项功能均已实现。

由于系统整个开发周期较短,虽然扶贫信息管理系统预期功能均已实现,但是仍有需要改进的地方,如开发手机端App更加方便使用,这将在后续的研究工作中进行完善。

猜你喜欢
信息管理系统可行性页面
刷新生活的页面
三维可视化信息管理系统在选煤生产中的应用
信息管理系统在工程项目管理的应用
基于三维TGIS的高速公路综合信息管理系统
PPP物有所值论证(VFM)的可行性思考
自由选择医保可行性多大?
HDL-C,LDL-C,CK-MB和RBP使用朗道质控品作为室内质控品的可行性探讨
网站结构在SEO中的研究与应用
浅析ASP.NET页面导航技术