本系统开发采用技术为JSP、Bootstrap、Ajax、SSM、Java、Tomcat、Maven
此文章为本人亲自指导加编写,禁止任何人抄袭以及各类盈利性传播, 相关的代码+部署+论文+ppt+代码讲解+答辩指导文件都有可私要
近些年来,国家一直都在部署和贯彻扶贫工作的推进。由于我国土地面积大,人口众多导致扶贫工作任务艰巨难度大。而且很多困难群众都居住在山区,那里人口都趋于老龄化,文化水平地和生活环境差。这些客观的因素都加强的扶贫的难度。交通的不方便也成为了扶贫困难的一大因素。对于偏远山区的扶贫工作来说,每一户扶贫对象的信息资料都需要基层银行拨款人一一手动记录备案。这样对于基层银行拨款人带来了很大的工作挑战。交通的不方便会降低工作的效率,而且信息的收集都是采用传统的记录方式。这样不能精准的提高扶贫工作的效率。所以扶贫管理系统在互联网时代是对扶贫工作最有利的工具之一。他可以减少基层扶贫银行拨款人的工作量,提高他们的工作效率。把有效的时间利用在完善扶贫机制和创新工作思路的上面。让扶贫工作能够快速有效的开展。扶贫管理系统可以随时登录查看所有贫困用户的信息和救助情况。贫困用户还可以随时登录系统进行扶贫基金的申请。申请都是系统依次按级别递交审批,审批通过后系统进行发放,这样的流程缩短的扶贫工作的时间提高了效率。
本次设计研发的课题是扶贫管理系统,系统主要采用Java语言开发,采用SSM架构,采用IDEA进行开发,数据库采用mysql,前端采用Ajax进行异步交互,数据库表设计按照三范式进行设计,系统可以跨平台部署。从用户角色可分为贫困用户,扶贫银行拨款人和管理员。用户可申请和查看贫困扶贫基金,申请注册,查看公告栏,修改密码等功能模块。管理员可增删查改公告栏,通过或驳回扶贫基金申请并写理由,删除用户,贫困家庭成员管理等功能模块。拨款人可增删查改管理员和用户,通过或驳回扶贫基金申请并写理由等功能模块。
关键词:扶贫管理,IDEA,SSM,贫困,Java
n recent years, the country has been in the deployment and implementation of poverty alleviation work. Due to China's large land area and large population, the task of poverty alleviation is arduous and difficult. Moreover, many poor people live in mountainous areas, where the population tends to be aging, and the cultural level and living environment are poor. All these objective factors have strengthened the difficulty of poverty alleviation. Inconvenient transportation has also become a major factor in poverty alleviation. For the poverty alleviation work in remote mountainous areas, the information of each poverty alleviation target needs to be manually recorded by the grass-roots staff one by one. This has brought great challenges to the grassroots staff. Inconvenient transportation will reduce the efficiency of work, and the collection of information is using the traditional way of recording. This can not accurately improve the efficiency of poverty alleviation work. Therefore, the poverty alleviation management system is one of the most favorable tools for poverty alleviation in the Internet era. He can reduce the workload of grassroots poverty alleviation workers and improve their work efficiency. We should make effective use of our time to improve the poverty alleviation mechanism and innovate our work ideas. So that the poverty alleviation work can be carried out quickly and effectively. The poverty alleviation management system can log in at any time to view the information and assistance of all poor users. Poor users can also log in to the system at any time to apply for the poverty alleviation fund. Applications are submitted by the system in turn according to the level of approval, after the approval of the system for distribution, this process shortens the time of poverty alleviation work and improves the efficiency.
The subject of this design and development is the poverty alleviation management system. The system is mainly developed with Java language, SSM architecture, idea, MySQL database, AJAX for asynchronous interaction, and three paradigms for database table design. The system can be deployed across platforms. From the user role can be divided into poor users, poverty alleviation staff and administrators. Users can apply for and view the poverty alleviation fund, apply for registration, view the bulletin board, modify the password and other functional modules. The administrator can add or delete the bulletin board, pass or reject the application of poverty alleviation fund and write the reasons, delete the user, poor family member management and other functional modules. Funders can add, delete, check and modify administrators and users, pass or reject poverty alleviation fund applications and write reasons and other functional modules.
Key words:Poverty management, idea, SSM, poverty, Java
目录
1.3 国内外研究现状............................................................................... 2
2.1Java语言介绍.................................................................................... 3
2.2Javascript介绍................................................................................... 3
2.3Maven介绍........................................................................................ 3
2.4Mysql数据库..................................................................................... 3
2.5SSM框架介绍.................................................................................... 4
3.1可行性分析........................................................................................ 6
3.2功能需求分析.................................................................................... 6
3.3用例图分析........................................................................................ 7
3.4数据库设计...................................................................................... 11
4.1通知管理.......................................................................................... 14
4.2用户管理.......................................................................................... 14
4.3人银行拨款资管理.......................................................................... 15
4.4月工资统计...................................................................................... 16
4.5采购支出管理.................................................................................. 16
4.6销售收入管理.................................................................................. 17
4.7可视化收支统计.............................................................................. 17
5.1测试分析.......................................................................................... 19
5.2项目测试.......................................................................................... 19
1 绪论
国家政府一直在大力推动贫困山区和群体的扶贫工作。近些年来我国的扶贫工作取得了很多成功,尤其是在农业的发展上。但是我们也要跟随互联网时代发展的脚步。从基础工作上改变原来的传统工作方式。工作方式的转变会给扶贫工作带来很大的推动力。我们基层银行拨款人每天都要忙碌奔波在贫困用户信息采集,贫困基金申请记录表格收集等繁琐的事务上。不能有效的提高工作效率分散了银行拨款人的重点工作的方向。扶贫管理系统可以减少这些不必要工作环节。贫困用户只需要根据自己的身份证号注册账号,然后通过账号登录系统,完善自己的基本信息提价到组织机构。银行拨款人通过系统管理所有贫困用户的信息。这些信息可以随时更新保存。这样对基层工作的效率会有很大的提高。
1.2 国内外研究现状
我国国内的扶贫工作跟国外相比要庞大许多。这在于我国的人口众多,很多山区地形复杂阻碍了扶贫工作的推动。传统的工作方式过于死板,对于数据的不能很好的进行保存和管理。本身扶贫就是一件很繁琐的事情,我们必须在基础的工作上采取线上工作模式。通过系统可以精准的了解到某时间段的救助贫困数量和情况。通过基础数据的采集,信息的随时更新可以灵活完善健全扶贫工作的体制机制。另外,在扶贫基金的申请和发放上也会存在大量的工作困难。我们基层银行拨款人需要挨户走访收集信息,确认信息后发申请表,贫困用户填写申请表申请救助基金。纸质申请还需要通过邮寄份方式经过多层级的审批之后,才能后领取。而且领取的方式也很不方便,需要本人到相关的机关单位领取。这样的工作方式拉长的所有的扶贫工作的时间。扶贫管理系统可以线上申请,通过层级的审批递交最后审批完成后,相关组织机构会通过系统将扶贫基金转到贫困用户的银行账户上。这样不仅减少了很多人力物力的方法还提高了扶贫工作效率。
1.3 研究的内容和方法
上文已经分析了扶贫管理系统的说明背景和意义,并研究了扶贫管理系统在国内外的发展状态。如何开展此次课题项目的研发设计,是本文的主要内容。具体介绍了研发所需要的开发工具和技术,系统的用户需求和功能。还有系统的框架结构和具体大的数据库设计,并概述了系统研发后的测试过程和测试报告。根据需求分析,从用户角色可分为贫困用户,扶贫银行拨款人和管理员。用户可申请和查看贫困扶贫基金,申请注册,查看公告栏,修改密码等功能模块。管理员可增删查改公告栏,通过或驳回扶贫基金申请并写理由,删除用户,贫困家庭成员管理等功能模块。拨款人可增删查改管理员和用户,通过或驳回扶贫基金申请并写理由等功能模块。
2 技术介绍
2.1Java语言介绍
Java作为跨平台开发语言,优势比较明显,java的特性在于面向对象开发,可以将底层原理进行封装,开发者只需对上层设计进行调用,java可以对客户端进行开发,同时也可以开发客户端,通过java定义的类或者是函数和变量,逐步设计出一个系统项目,java的基本变量有8种,int、long、boolean等,通过对各个类型的变量进行定义,对变量数据的范围以及类型进行定义,java通过封装思想,可以对一些接口或者是一些多项目集成中的设计理念进行隐藏,对外只需暴露方法即可,且通过继承的方式,可以对一些通用类或者是实现接口进行实现继承对接,达到代码的层级效果。
2.2Jsp介绍
在java的项目的开发中,前端界面的开发一般采用jsp,jsp中包含css、JavaScript、以及html的标签变量,其实jsp是基于xml标签的,通过对各个标签进行引用定义,逐步的实现界面的大架构,然后通过css标签对样式进行设计,在jsp中,可以对后台返回的数据进行循环展示,通过jstl标签进行循环实现,也可以通过form表单对界面中用户提交到数据提交到后台,通过js对数据的输入进行校验,通过也可以通过js动态的修改界面的数据和样式
2.3SSM架构介绍
Spring:Ssm架构是java近些年最火的开发架构,主要为spring、springmvc、mybatis,基于mvc的三层架构模式对数据库处理层、控制中转层进行封装,简化了代码的繁琐,使得代码的开发更为简单、健硕。spring的出现为java提供了更多的可能,spring有很多的jar包和组件,基于spring也有很多的衍生架构、spring将面向对象更加具体,spring可以提供类的注入,可以对类进行反向控制,spring利用java的面向对象优势,将点编程达到了面编程,spring提供了一整套的工具类,很多的框架可以集成到此架构中,spring的控制反转是将类注入到spring的bean中,然后提供反向的动态类,通过注解的方法可以进行注入。
SpringMVC:Springmvc的特点在于基于方法的路由中转,通过在controller中的函数定义requestmapping,将url与函数进行匹配,通过在url中动态的定义变量,通过${}对传输的变量进行获取,相比于最开始的struts,springmvc没有路径配置xml,且struts是基于类的,因此在类中的变量都是相通的,可以共享的,springmvc也是基于mvc三层架构设计,通过将界面层与后端service层进行分割,对代码进行分离,springmvc也是基于spring架构进行开发的,基于spring的切面编程的原理,对controller层的每个路由进行拦截中转处理。
Mybatis:mybatis作为数据库jdbc的底层设计架构,可以对数据进行处理,mybatis自带mapper的反向代理,且提供了二级缓存机制,mybatis的优势在于对数据sql的处理,可以集成c3p0等数据库连接池进行链接的动态配置,无需再进行手动的获取数据库链接然后进行操作,通过也可以达到资源的分配最大化。mybatis通常是跟一些关系型数据库进行数据的处理,特别是在mysql和sqlserver的处理上,mybatis可以对sql进行校验,在定义时通过对mapper与xml进行对于,然后通过id与参数进行关联和传输,对底层的业务进行封装处理,通过mybatis将sqlsessionfactory进行了封装,这样解放了开发者,避免了一些多线程处理事务的繁琐流程。而另一个数据库处理框架hibernate,则直接自动生成sql,在一定程度上昂也是基于
2.4Mysql数据库
Mysql作为最常用的关系型数据库,可以对数据进行格式化存储,mysql可以里面内包含一些已经封装的函数,保证了sql的正常调用以及快速查询搜索,mysql的特点在于可以对中小型数据量的数据进行快速的检索,且可以通过index索引对数据进行内部的关联设定,mysql的底层检索原理也为二叉树形式进行数据标签关联存储,mysql的数据格式与java的格式基本一致,因此在开发者选择中也会首先选择mybatis与之搭配开发,mysql无需一些用户权限角色的关联直接便于开发者上手进行查询。
3 系统需求分析
3.1可行性分析
技术可行性:扶贫管理系统在编辑上采用的是Java语言,该语言的运用比其他语言的运用在设计上层次更加的分明,在框架结构上采用的是3WWW技术,这是目前比较主流的框架语言。在Java语言选择后,可以基于跨平台进行部署,可以通过SSM架构对系统进行搭建,通过Spring对日志进行拦截集体处理,通过Mybatis对数据库sql进行优化处理,且可以通过Mysql对数据进行存储,在前期数据不多的情况下,使用Mysql首先是开源免费,其次操作简单,安装方便,对于sql的优化以及函数的调用也比较合理。
法律可行性:扶贫管理系统在设计过程中,不管是创意的运用,还是语言技术的运用都没有抄袭他人的创意扶贫管理系统在编辑上采用的是Java语言,该语言的运用比其他语言的运用在设计上层次更加的分明,在框架结构上采用的是3WWW技术,这是目前比较主流的框架语言。在Java语言选择后,可以基于跨平台进行部署,可以通过SSM架构对系统进行搭建,通过Spring对日志进行拦截集体处理,通过Mybatis对数据库sql进行优化处理,且可以通过Mysql对数据进行存储,在前期数据不多的情况下,使用Mysql首先是开源免费,其次操作简单,安装方便,对于sql的优化以及函数的调用也比较合理,在整个系统的开发中也没有使用任何违规的工具,该系统中也不存在违法的信息。此系统的任何开发的代码以及使用的插件都是开源的不存在任何的盗版行为,且对于项目的功能的设想以及自身功能需求的分析,独具个人设计理念。
3.2功能需求分析
依据前期的市场调研以及文献法设计分析,系统功能模块图如下:
图3-1系统功能模块图
3.3非功能需求分享
在系统中除了进行功能需求分析,还要进行非功能需求分析,那到底什么叫非功能需求分析呢?非功能需求分析就是对系统的运行环境、运行速度、故障预测、故障恢复程度、安全隐秘性等等。但进行非功能需求分析是非常不好进行分析的,它不像功能需求分析,能够操作,非功能需求分析根本就不知道从何入手,让人难以应对,但不进行非功能需求分析,又对以后的上线产生很大的影响,很有可能出现各种各样的问题,让人猝不及防。本系统的非功能需求分析主要测试系统的安全性、运行的速度和数据处理速率等,要求安全又稳定,最大限度的达到最优化。
3.3数据库设计
在数据库设计分析时首先要对系统功能逻辑进行详细分析,分析系统之间各个模块之间的关联以及不同用户的系统功能权限,分析公共模块或是用户关联模块,数据库E-R总图,,如图3-2所示
图3-2数据E-R图
表1为扶贫管理员表,可以包含扶贫管理员所有字段信息,包括管理员的登陆用户名和登陆密码
表1 扶贫管理员表
数据库列名 | 属性名称 | 属性类型 | 是否可为空 | 主键条件 |
gl_admin | 所属编号 | int(6) | 不可为null | 唯一自增 |
gl name | 后台名 | varchar(80) | 不可为null | |
gl pwd | 后台密码 | varchar(50) | 不可为null | |
gl Role | 角色 | int(6) | 不可为null |
表2为银行拨款的个人联系方式以及基础信息等信息。
表2 银行拨款信息表
数据库列名 | 属性名称 | 属性类型 | 是否可为空 | 主键条件 |
ygid | 自动编号 | int(6) | 不可为null | 唯一自增 |
ygame | 银行拨款人姓名 | varchar(16) | 不可为null | |
ygdesc | 银行拨款人职责描述 | varchar(6) | 不可为null | |
yguser | 银行拨款人用户名 | varchar(60) | 不可为null | |
ygpwd | 银行拨款人密码 | varchar(50) | 不可为null | |
ygtel | 银行拨款人电话 | varchar(21) | 不可为null |
表3为扶贫项目信息,包含扶贫项目的具体位置以及具体扶贫项目描述和扶贫项目使用金额等
表3 扶贫项目信息表
数据库列名 | 属性名称 | 属性类型 | 是否可为空 | 主键条件 |
items_id | 扶贫项目编号 | int(6) | 不可为NULL | 唯一自增 |
items_type | 扶贫类型 | varchar(30) | 不可为NULL | |
items_date | 扶贫项目状态 | Int(2) | 不可为NULL | |
zumoney | 扶贫名称 | double | 不可为NULL | |
itemsdesc | 扶贫项目描述 | varchar(40) | 不可为NULL |
表4为扶贫申请信息,包含扶贫内容等。
表4扶贫申请信息表
数据库列名 | 属性名称 | 属性类型 | 是否可为空 | 主键条件 |
fupin_id | 扶贫编号 | int(6) | 不可为NULL | 数字主键自增 |
fupin_name | 扶贫描述 | varchar(30) | 不可为NULL | |
fupin_riqi | 扶贫申请日期 | date | 不可为NULL | |
fupinyaunyin | 扶贫原因 | varchar(10) | 不可为NULL | |
Jumin_id | 申请人 | int(6) | 不可为NULL | |
fupinleixing | 扶贫类型信息 | varchar(10) | 不可为NULL |
表5为家庭人员信息表,包含家庭收入详细信息。
表5家庭收入信息表
数据库列名 | 属性名称 | 属性类型 | 是否可为空 | 主键条件 |
jiating_id | 记录编号 | int(6) | 不可为NULL | 数字主键自增 |
jiating_name | 居民人员姓名 | varchar(20) | 不可为NULL | |
jiating_shouru | 收入 | int(6) | 不可为NULL | |
jiating_sex | 性别 | int(6) | 不可为NULL | |
jiating_date | 出生日期 | date | 不可为NULL | |
jiating_desc | 描述 | varchar(20) | 不可为NULL |
表6为扶贫居民信息表,包含居民的个人详细信息。
表6旅客信息表
数据库列名 | 属性名称 | 属性类型 | 是否可为空 | 主键条件 |
jumin_id | 居民编号 | int(6) | 不可为NULL | 数字主键自增 |
jumin_name | 居民姓名 | varchar(20) | 不可为NULL | |
jumin_sex | 居民性别 | int(6) | 不可为NULL | |
jumin_card | 居民证号 | varchar(20) | 不可为NULL | |
jumin_date | 出生日期 | date | 不可为NULL | |
jumin_desc | 居民备注 | varchar(50) | 不可为NULL |
4 系统详细设计
4.1通知管理
在系统中的登录界面是不同于以往的系统登录界面,本系统在登录界面是不用用户自己选择角色进行登录的,它是直接由系统中已存在的账户进行判断,不同的角色最终进入的界面是不一样的,并且在登录界面是没有注册这个选项的,因为每个用户的账户是直接由管理员进行分配的,不能够自己申请,1就是该系统的登录界面截图。
,如图4-1:
图4-1显示
4.2用户管理
后端管理员端可以对已有的所有用户信息进行查询,每一个已新增的用户信息都可以在后端进行读取查看,管理员通过点击详情进行查询用户全部信息,同时可以对已新增的用户账号状态进行激活或者对违规账号进行禁用的处理,页面如图4-2:
图4-2列表
4.3扶贫项目管理
在后端端可以对扶贫项目进行信息的维护,可以通过调用itemss表,对注册的所有的在线扶贫项目的进行查询,通过itemssdao层对数据进行筛选,通过findbypage方法对表进行分页selectByExample(new itemssExample());通过在new itemssExample进行参数化设置然后进行查询,,页面如图4-3,4-4:
图4-3类型管理
图4-4扶贫项目审批
4.4银行拨款人员 管理
管理员可以对所有的银行拨款人员进行查询,可以通过对人员进行查询,对人员信息进行查询,页面如图4-5:
图4-5 人员管理
4.5扶贫申请管理
在用户对扶贫项目进行新增申请时,首先要分为两步,一步为对扶贫项目状态的数据进行校验,另一部分为对数据进行存储到申请表,同时需要对金额以及申请理由等进行存储,通过itemsservice以及orderdao等类对数据进行持久化处理。在用户登录的情况下,通过session获取到userid,采作为存储用户基本信息编号使用。申请时将用户信息以及申请信息进行存储,页面如图4-6,4-7:
图4-6扶贫新增
4.6家庭成员管理
在后端端可以对家庭成员进行信息的维护,可以通过调用users表,对注册的所有的成员的进行查询,通过usersdao层对数据进行筛选,通过findbypage方法对表进行分页selectByExample(new usersExample());通过在newusersExample进行参数化设置然后进行查询,页面如图4-7:
图4-7家庭成员管理
5系统测试
5.1测试分析
系统测试是将通过验视的一个次系统造成一个整体系统来测试的。它是检查这个系统是否的确是能提供整个系统方案说明书中的某个特指功能的有效办法。在每一个软件系统的开发研发周期中,特别是在进行大型或特大型软件的系统的研发中,无论哪一个程序猿都不可以无一避免地会产生错误。为了尽最大可能发现并纠正系统设计中的每一个大大小小的错误,减少bug或问题造成的损失,保证整个系统开发的质量与品质,需要进行系统的测试。