【《超市进销存管理系统的设计与实现》16000字】_第1页
【《超市进销存管理系统的设计与实现》16000字】_第2页
【《超市进销存管理系统的设计与实现》16000字】_第3页
【《超市进销存管理系统的设计与实现》16000字】_第4页
【《超市进销存管理系统的设计与实现》16000字】_第5页
已阅读5页,还剩65页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

引言研发背景随着科学技术的不断发展。现如今世界上的绝大部分国家都和我们国家一样把科学技术发展放在第一位。现在,科技逐渐成为经济发展的最大动力,对现在的生活有着深远的影响。现如今,人数管理系统基本上均为服务器/客户端架构,很少有面向中小型企业的人事管理系统。所以,开发研究一个基于浏览器和服务器架构的人事管理系统是很有必要的事情。然而,安全性能对于一个基于浏览器和服务器架构的人事管理系统来说,是一个问题。在这个系统中,要求实现的功能得简单便于操作,另外就是安全和权限方面要到位。对公司里面每位员工的基本信息资料要保证安全,不可外泄,对员工和管理员不同角色需要设定不同的权限功能,这些都是本系统最基础的要求。研发的目的及意义基于SpringBoot的人事管理系统满足现如今的生产要求,相对于普遍的机关和事业单位,人事管理系统在功能上没有太多繁琐的要求,仅需可实现最基本功能即可。并且,需满足软件低成本、美观页面,操作简单等要求。也就是说不用通过SaaS平台供应商花费很多的开销,由内部工作人员去测试维修,因此,本人事管理系统的开发还是一件非常有意义的事情。国内外研发现状近几年来,人事管理这个系统的开发一直在改进、在完善。而我们中国人事管理系统的发展要相对较晚,国外要比我们早得多,外国的相对成熟,比如有SPA,Oracle等产品。而在中国,因为各个行业研究领域不同,强势的东西也不同。比如制造行业的有汇通科技,国有企业的有宏景软件,综合性较强的有用友、金蝶等[12]。2关键技术简介Java介绍Java语言是由sun开发的跨平台的面向对象的语言,sun的Java语言研究与开发团队公司成立于1991年,其主要研究任务之一便是在于探索和拓宽消费性电子产品市场,例如移动电视和烘焙面包机。当时万维网还只是处于规划阶段中,sun的内部人员就把这个项目命名为“spring”。这个团队由jamesgosling领导,他是一个很有才华的程序员。他于1957年出生,1984年加入太阳微系统公司,此后先是为一家ibm研究公司任职。为了让整个系统能够独立于平台之上,Gosling从重新撰写C编译器开始。但是高斯林觉得C语言还不够,就在1991年6月开始筹备发展出一种新的语言。叫什么名字呢?高斯林回头望向窗外,看到一棵老橡树。他建立了一个名为OAK的目录,这是Java语言的前身,之后重新命名为Java。Java的出现深受人们的喜爱。它最大的有点就是可以跨平台开发,在各个领域都有着发展的潜力。Springboot框架Pivotal团队创建了SpringBoot,SpringBoot最初设计出来是为了使原来通过Spring搭建的过程更加的简便。SpringBoot是在Spring的基础上进行了改进,使得他不仅有Spring的优点而且还简化了配置,使得系统的搭建更加的简单快捷。

3系统分析系统可行性分析运行可行性系统完成之后并打包,打包之后文件大小很小,基本上所有的电脑都可以运行,设备门槛很低。系统访问流畅,在市面上的大部分浏览器上都可以进行使用,由前端进行展示,结合后端进行处理。能够快速的响应用户在前端操作,使得用户的体验感更好。技术可行性技术方面需要分析系统软硬件技术,全面的判断系统开发的技术可行性。在软件层面上,使用Idea作为开发工具,采用B/S架构设计系统,前端使用Vue,数据存储使用Mysql。B/S架构方便了用户使用系统;前后端分离的开发模式是得系统的拓展性更强,提升了开发效率。Mysql现在提供可视化工具,使得开发者使用更加简单。由此可见此次系统的开发在技术上是可行的。经济可行性 通过计算机及时让人事管理系统更加智能,能够让企业的人事工作者在工作中降低错误发生的频率,并且节约很多不必要的开销,只需要计算机和互联网这些硬件就能够操作。另外开发使用技术工具大多是开源产品技术。需求分析 本系统有公共模块、员工资料模块、人事管理模块、薪资管理模块、统计管理模块以及系统管理模块这几个,应用到实际生活中,相当于hr的基本工作内容:首先,来了一个新员工,需要办理入职,基本信息存档,分配岗位,如果不做了,要给他办理离职,对于在职人员信息的整理,查询,以及每月工资日的工资管理等内容。根据员工的不同级别[3],系统能够分配不同的权利,比如管理员分配管理员的权限,员工分配普通员工的权限,对人事结构,单位结构进行整体调配设置。系统使用MVVM的模式,MVVM是现在比较流行的一种开发模式,它将前后端进行分离开发。MVVM实现了将数据进行双向绑定。它结合MVP模式与WPF模式,将两种模式的优点结合发扬光大[1]。[3]如图3.1所示:图3.1管理员用例图

4系统设计系统流程设计本系统所有管理员或操作员在登录界面成功登录后,系统会进行权限识别,识别用户身份,不同身份的用户分配不同权限。[11]后面的操作,都是区别过权限的,而且管理员的每项操作都会留下痕迹。系统访问控制流程图访问控制基于RBAC0模型,和跟他对应的数据实体组成。组成包括用户表、角色映射表、角色表、权限表和权限映射表。在成功登陆后,先要对登录用户的身份进行识别,识别用户后再根据权限给用户功能操作。当用户直接通过网址访问时,对于登录用户的任意一个操作都会校验用户权限,分析角色。最后通过权限的判断分析是否可以访问菜单资源。如图4.1、图4.2所示:图4.1RBAC0模型图图4.2系统访问控制流程图当用户成功登陆后,选择不同的菜单,就能够进行不同的操作。系统业务操作流图如图4.3所示:图4.3顶级数据流图系统功能 通过以上分析,得出了系统开发的基本需求,接下来对本系统各个功能模块进行划分,分别为:公共模块、员工资料、人事管理、薪资管理、统计管理和系统管理,如图4.4所示:图4.4系统功能模块图4.3.1公共模块公共模块主要实现用户的登录、注册。若第一次登陆的用户则需点击注册按钮,完成新用户的注册,完成后,注册信息将会记录在数据库中,下次即可点击登录按钮,使用注册过的账号密码登录。之后跳转到主页,主页由日志和系统公告构成。其公共模块功能图,如图4.5所示:图4.5公共模块功能图登录流程图,如图4.6所示:图4.6登录流程图4.3.2员工资料模块员工资料模块,顾名思义,就是用来存放每位员工的基本资料,并且可以对员工信息进行增加、删除、修改、查询等操作。其中,在员工基本资料表中,每增加一个新员工,系统会自动生成工号,姓名、性别等相关个人信息,这些信息在填写时是必须要填写的,同时在搜索员工资料时,可以通过工号,性别,身份等多个条件进行单一或组合搜索。而在高级资料表中,主要实现查询功能,由培训日期、培训内容和账套名称、基本工资这些信息组成,其功能模块图如图4.7所示:图4.7员工资料模块功能图信息修改流程图如图4.8所示: 图4.8信息修改流程图4.3.3人事管理模块此模块主要实现员工调动、员工培训和员工奖惩三个功能。对需要调动或培训或奖惩的员工信息进行增加、删除、修改和查找的功能实现,在常规思路下,操作简单。其功能模块图如图4.9所示:图4.9人事管理模块功能图4.3.4统计管理模块此模块是对人事信息和记录的动态分析统计,点击该模块即可查看。其功能模块图如图4.11所示:图4.11统计管理模块功能图4.3.5系统管理模块系统模块主要是对基础信息进行设置、公告的添加删除修改和一些操作员管理的信息修改。在基础信息设置中,有部门的添加删除,奖惩规则的添加删除,职称的添加删除修改搜索以及人员权限的划分添加。其功能模块图如图4.12所示:图4.12系统管理模块功能图系统概念模型设计 系统实体部分ER图,员工实体属性图如图4.13所示:图4.13员工实体属性图员工奖惩实体属性图,如图4.14所示:图4.14员工奖惩实体属性图操作员实体属性图,如图4.15所示:图4.15操作员实体属性图文件实体属性图,如图4.16所示: 图4.16文件实体属性图通知实体属性图,如图4.17所示:图4.17通知实体属性图工资实体属性图,如图4.18所示:图4.18工资实体属性图整体ER图,如图4.19所示:

图4.19整体ER图物理数据模型设计在这个模块的设计中,就是把之前设计的实体属性图转换为实际的数据表,实体中的属性转换为数据表中的字段。在数据表的设计过程中,我们不仅要思考主键外键,还要考虑到触发器,索引这些,以及在之后的系统功能拓展而带来的数据库的拓展问题。对于模式中的其他的结构,视图存储过程等,结合数据库事务特性合理创建。appraise表主要记录了员工的考评信息,主要包括考评的日期,考评的结果,考评的内容以及内容等信息。如表4.1所示:表4.1appraise表名称类型空默认值长度备注idint否<auto_increment>11主键eidint是<空>11appDatedate是<空>11appResultvarchar是<空>32appContentvarchar是<空>255remarkvarchar是<空>255备注employeeec表主要记录了员工的奖惩信息,主要包括员工编号,奖罚的日期,原因,分数,类型以及备注等信息。系统通过ecType字段作为判断奖罚的依据,当该字段为0时代表惩罚,为1时代表奖励。如表4.2所示:表4.2employeeec表名称类型空默认值长度备注idint否<auto_increment>11主键eidint是<空>11ecDatedate是<空>12ecReasonvarchar是<空>255ecPointint是<空>11ecTypeint是<空>11remarkvarchar是<空>255salary表主要记录了员工的工资信息,包括基本工资,奖金,餐补交通补贴,养老金的基数,比例,医疗保险的基数,比例,公积金的基数,比例等信息。如表4.3所示:表4.3salary表名称类型空默认值属性备注idint否<auto_increment>11主键basicSalaryint是<空>11bonusint是<空>11lunchSalaryint是<空>11trafficSalaryint是<空>11allSalaryint是<空>11pensionBaseint是<空>11pensionPerfloat是<空>12createDatetimestamp是<空>12medicalBaseint是<空>11medicalPerfloat是<空>12accumulationFundBaseint是<空>11accumulationFundPerfloat是<空>12namevarchar是<空>32employee表主要记录了员工的信息,主要包括了员工编号,姓名,出生年月,身份证号码,婚姻状况,性别,民族,籍贯,邮箱,电话,部门,职位,学历,专业,部门等信息。如表4.4所示:表4.4employee表名称类型空默认值长度备注idint否<auto_increment>11主键namevarchar是<空>10genderchar是<空>4birthdaydate是<空>12idCardchar是<空>18wedlockenum(已婚,未婚,离异)是<空>3nationIdint是<空>8nativePlacevarchar是<空>20politicIdint(8)是<空>8emailvarchar是<空>20phonevarchar是<空>11addressvarchar是<空>64departmentIdint是<空>11jobLevelIdint是<空>11外键posIdint是<空>11外键engageFormvarchar是<空>8tiptopDegreeenum(博士,硕士,本科,大专,高中,初中,小学,其他)是<空>8specialtyvarchar是<空>32schoolvarchar是<空>32beginDatedate是<空>12workStateenum(在职,离职)是在职2workIDchar是<空>8contractTermdouble是<空>12conversionTimedate是<空>12notWorkDatedate是<空>12beginContractdate是<空>12endContractdate是<空>12workAgeint是<空>11role表主要记录了系统用户的角色信息,包括编号,角色名称信息。如表4.5所示:表4.5role表名称类型空默认值属性备注idint(11)否<auto_increment>主键namevarchar(64)是<空>nameZhvarchar(64)是<空>oplog表主要记录了系统的日志信息,管理可以通过日志查看其他用户的操作内容,主要包括类型,添加时间,操作内,操作人员等信息。如表4.6所示:表4.6oplog表名称类型空默认值长度备注idint否<auto_increment>11主键logtypetinyint是<空>10,addDatetimestamp是<INSERT-TimeStamp>12operatevarchar是<空>255hrnamevarchar是<空>255employeetrain表主要记录了员工的培训信息,主要包括员工编号,培训时间,培训内容,状态等信息。如表4.7所示:表4.7employeetrain表名称类型空默认值长度备注idint否<auto_increment>11主键eidint是<空>11外键trainstartDatedate是<空>12trainfinishDatedatetime是<空>12trainContentvarchar是<空>255trainstatustinyint是<空>255remarkvarchar是<空>255employeeremove表主要记录了员工部门的调动信息,主要包括调动前部门,调动后部门,调动日期,调动原因。如表4.8所示:表4.8employeeremove表名称类型空默认值长度备注idint否<auto_increment>11eidint是<空>11afterDepIdint是<空>11afterJobIdint是<空>11removeDatedate是<空>12reasonvarcha是<空>255remarkvarchar是<空>255这张表主要记录了员工的调薪信息,主要包括调薪日期,调前薪资,调后薪资,调薪原因等信息表4.9adjustsalary表名称类型空默认值长度备注idint否<auto_increment>

11

eidint是<空>

11

asDatedate是<空>

12beforeSalaryint是<空>

11afterSalaryint是<空>

11reasonvarchar(255)是<空>

255remarkvarchar(255)是<空>

255

5系统实现用户登录访问后由SpringSecurity的WebSecurityConfigurerAdapter类实现认证和授权校验。成功登陆之后系统就会跳转到主界面,之后每次访问系统都会对请求进行权限判断,判断用户是都登录。如图5.1所示:图5.1SpringSecurity授权流程图公共模块登录、注册登陆、注册模块主要用来记录登录的用户名和密码,以及新用户的注册等。用户的登录注册内容都会进行前端验证,javascript会对输入内容进行完整性验证,如果有有内容没有输入或者输入的不符合规定,就不会发送到后端进行处理。主页 主页是有两部分组成,这两部分是日志的展示和公告的展示。展示信息都是系统最新发布添加的,数据展示通过后端连接Msyql数据库进行查询,查询到的数据再返回到前端进行展示。如图5.2所示:图5.2主页员工资料基本资料 基本资料中主要是对员工信息进行增加、删除、修改、查询等操作的实现。可多条件进行员工搜索,每增加一个新员工,系统会自动生成工号,姓名、性别等相关个人信息均为必填。如图5.3所示:图5.3基本资料主要代码,如图5.4所示:图5.4基本资料主要代码图高级资料高级资料中主要是可以查询,内容为以下两点:培训资料:培训日期,培训内容。工资信息:账套名称,基本工资。如图5.5所示:图5.5高级资料人事管理员工奖惩人事管理模块分为奖惩、员工培训和员工调动三个部分。在员工奖惩模块中主要是该模块信息的增加、删除、修改和查询功能。从逻辑上讲,从传统的思路出发,即可以在同一时间或不同时间对同一员工进行多重奖惩,即一对多关系。员工培训在员工培训中主要是对本模块业务的增加、删除、修改和查询功能。在员工培训下面还有两个小功能,分别是添加培训和培训管理。同样我们从常理想法,同一员工在一个时间段只可以参加一个培训,即是一对一的关系。员工调动员工调动中主要是对本模块信息的增加、删除、修改和查询功能。UI设计上由table内嵌table构成,逻辑上从常规思路出发,是一对多的关系。如图5.6所示: 图5.6员工调动主要代码,如图5.7、图5.8所示:图5.7员工调动主要代码图

图5.8员工调动主要代码图薪资管理工资账套管理可以对员工工资进行一系列的操作管理。这个模块主要能够实现员工奖金、员工基本工资、工资提成等相关信息的增加、删除、修改和查询,并设置当前账套信息。员工账套设置这个模块是根据公司账套查看相应的员工的工资信息,并且能对员工账套增加和删除。工资表管理主要是对员工工资,可以搜索查看。增加了一个筛选过滤的功能,能够在不同的职称部门进行表中选择中需要的信息。如图5.9所示:图5.9工作表管理统计管理 统计管理主要对员工资料的动态分析统计,它有着两个子功能,分别是人事信息统计和人事记录统计。使用VeCharts图表进行统计的展示,由服务端对数据进行了整合。代码方面,结合java8的StreamAPI及数据库端聚合函数实现。数据动态展示基于Spring定时任务。人事信息统计 这部分模块是统计员工人数信息。从高校、职称、职位、党派、民族、学历、部门这几个方面的人员统计,形成饼图形式的分布图,便于人事统计。人事记录统计 这部分模块是统计员工离职信息,从部门、职称、职位这几个方向,对员工离职率、离职工龄、离职年龄统计。以柱状图结合折线图的方式展示。如图5.10所示:图5.10人事记录统计 主要代码,如图5.11所示:图5.11人事记录统计主要代码图系统管理基础信息设置系统管理主要是对系统以及管理员的一些功能操作,这些操作主要包括基础设置、系统管理、操作员管理。基础信息设置主要是对部门信息职位信息以及奖惩规则的一些设置。部门管理主要使用树的形式进行展示。当添加删除部门时,展示的实现是通过遍历操作。删除时则是删除节点,但是只能删除无父节点的节点,添加操作则不作限制。员工职位管理由职位的增删改查构成。员工奖惩管理由奖惩规则制定,奖罚金额构成。用户权限管理由权限树预览、角色添加、角色权限设置构成。公告管理公告管理功能主要包括公告列表的浏览以及公告的添加编辑组成。公告编辑使用了VueQuillEditor富文本编辑器,使得系统编写更加简单,整个公告由标题和内容组成,包括添加,删除,修改,搜索以及预览功能。如图5.12所示:图5.12公告编辑操作员管理前端采用卡片式的设计,将布局进行弹性处理。主要功能包括信息的增删改查,用户的权限操作,普通用户没有操作权限的功能,用户的权限只能由管理员进行操作。如图5.13所示:图5.13操作员管理

6系统测试软件在设计后必须进行测试,主要从系统性能测试,功能测试和测试结果分析进行描述。软件测试的目的系统测试的主要目的是揭露软件系统设计或操作上的错误,让开发者能够以最快的速度定位到错误位置,及时修改错误,完善系统。从理论上说,你对系统测试得人范围越广,功能越多,那找到错误的机会也就越大。所以往往我们会系统设计大量的测试用例,这样能试的系统的测试结果更加的准确全面。。功能测试此次毕业设计的测试方法主要就是黑盒测试,也就是假如测试者对系统功能流程并没有什么了解,完全凭借自己去摸索。登录功能测试:表6.1登录功能测试表测试用例预测结果测试结果账户:密码:验证码:登陆失败请输入用户名密码验证码账户:admin密码:123验证码错误登陆失败验证码不匹配账户:superadmin密码:1234验证码正确登陆失败用户名或密码错误账户:admin密码:123验证码正确登陆成功进入相应管理员界面表6.2部门删除功能测试表测试用例预测结果测试结果存在子部门删除失败提示不能删除父目录没有子部门删除成功提示删除成功测试结论在毕业设计开发中,我们首先对前端界面进行设计,之后才会在后端进行接口的编写,接口编写完成后在进行接口的测试,测试是为了去人返回数据是否正确,通过这次系统测试,发现系统功能都比较完善,没有什么严重的bug,可以这正常使用。

7总结展望7.1总结经过这次毕业设计的开发,我更加清楚了了解了系统开发的流程,也独立完成了一次系统开。在这次毕业设计的开发过程里,我不仅仅熟悉了人事系统的工作流程和功能需求,同时,也让我对开发的技术有了新的了解,特别是毕业设计用到的Springboot和Java等。与其他一些大型的人事系统相比,此次毕业设计任然显得简陋了许多,但是我们面向的需求不同,我们面向一些中小型企业,跟他们更加简单,快捷的操作体验。7.2展望在人事管理的业务方面,此次毕业设计涉及到的功能比较简单,有一些功能没有体现,例如审批,报销等,本系统都没有涉及到。在系统架构方面,此系统采用B/S架构,方便用户进行使用。在现在的基础上,可以再后期将系统进行功能拓展,同时也对系统进行多端适配,让用户更加随时随地的可以对系统进行使用。

参考文献[1]杜丁超.计算机软件Java编程特点及其技术分析[J].电脑知识与技术,2017,13(36):215-216.

[2]蔡创.计算机软件开发中JAVA编程语言的分析和思考[J].信息技术与信息化,2017(12):80-81.

[3]于宝洋.计算机软件Java编程特点及其技术的思考[J].南方农机,2017,48(23):123+127.

[4]邢俊鑫.基于Java编程语言的计算机软件开发技术[J].电子技术与软件工程,2017(23):47-48.

[5]蒋银.计算机软件Java编程特点及其技术研究[J].通讯世界,2017(21):51-52.

[6]杨兰.计算机软件开发的JAVA编程语言及其实际应用[J].电子设计工程,2017,25(21):49-52+56.

[7]成孝俊.计算机软件开发中JAVA编程语言的应用分析与研究[J].数字技术与应用,2017(10):166-168.

[8]马金鸣.计算机软件开发中JAVA编程语言的应用[J].电子技术与软件工程,2017(17):53.

[9]胡秀丽.计算机软件开发中JAVA编程语言的应用价值分析[J].信息与电脑(理论版),2017(16):88-89.

[10]谌杰辉.探讨计算机软件开发的JAVA编程语言应用[J].科学技术创新,2017(21):140-141.

[11]李国一.计算机软件开发中Java语言的应用[J].信息与电脑(理论版),2017(14):49-50.

[12]梁后军,谢睿.财经类院校非计

温馨提示

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

评论

0/150

提交评论