《基于条码的物资管理系统的后台设计与实现(29页).doc》由会员分享,可在线阅读,更多相关《基于条码的物资管理系统的后台设计与实现(29页).doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于条码的物资管理系统的后台设计与实现-第 25 页毕 业 论 文论文题目 基于条码的物资管理系统 的后台设计与实现目录1 绪论11.1 课题背景11.2 项目提出的意义21.3 系统开发工具21.3.1 JSP简介21.3.2 MyEclipse简介21.3.3 数据库简介22 需求分析32.1 可行性分析32.2 系统设计的要求32.3 系统功能需求分析42.4 数据库需求分析43 系统总体设计53.1 系统总体设计53.1.1 系统总体功能模块53.1.2 系统总体结构设计原则53.1.3 系统特点63.2 系统功能总体设计63.3 数据库的设计63.3.1 数据库需求分析63.3.2
2、 数据库概念结构设计73.3.3 数据库逻辑结构的设计94 系统实现154.1 运行环境154.2 系统主界面154.3 员工管理功能的实现174.4 部门管理功能的实现214.5 货品管理功能的实现245 系统测试325.1 测试环境325.2 测试项目326 总结35参考文献36致谢37基于条码的物资管理系统的后台设计与实现摘 要:基于条码的物资管理系统,主要针对企业的需求而开发的,利用计算机的强大优势,比如操作简单、运算速度快、携带方便、存储信息容量大等优点,用编程语言开发出一个实用的系统软件,满足使用者的需求,帮助企业更高效地管理物资,提高经济。这个系统的目的是实现入库,库存和出库的统
3、一管理,通过数字条形码的形式对商品进行编号,以此完成了条码识别技术,方便商品查询。这个系统主要用java语言进行设计开发,采用MyEclipse为开发工具,MySQL作为系统的后台数据库,系统具有兼容性好,速度快和安全性高等特点。关键词: Java Web;JSP;MyEclipse;MySQL;基于条码的物资管理系统1 绪论1.1 课题背景随着社会的进步,国家综合实力的增强,经济的蓬勃发展,尤其是计算机技术的高速发展,计算机已经融入到我们生活中的各个方面,我们已经越来越离不开计算机。人们已经深深地认识到计算机的各种强大功能,认识到计算机对我们人类的重要性。计算机因其运算速度快、存储信息容量大
4、等优点,已被各个行业广泛使用,传统手工模式因其速度慢、效率低等缺点,已逐渐被抛弃,现如今,合理运用计算机技术,对企业的管理有着非常重要的作用,很多企业都开发出了很多基于计算机技术的产品来更好的管理企业中的一切,提高生产效率,促进经济。物资管理系统软件,正是因为计算机技术的强大优势,计算机在很多企业管理应用中都发挥着重要的作用,所以利用计算机技术来实现物资的管理非常有必要。物资管理系统身为计算机应用的一个小部分,应用计算机对物资信息进行统一管理,具有操作方便、存储量大、搜索容易、可靠性大、稳定性强、成本低等优点。这些优点可以提高企业的管理效率,促进经济的发展。1.2 项目提出的意义开发一个物资管
5、理系统,有着很多优点,比如能够实现企业物资的统一管理,加快物资的周转速度,随时查询物资库存量、这样能提高生产效率,还能提高经济效益。基于条码的物资管理系统以物资管理流程和数字条码为基础,建立了企业物资系统的数据模型及信息平台和产品的条码识别平台,对于货物管理有了提高,促进了经济。这个系统的目的是实现企业货品入库,货品出库和货品库存查询的统一管理,通过数字条形码的形式对商品进行编号,以此达成条码识别技术,这样,既可以动态的掌握商品情况,也可以随时了解商品库存量的最新信息,这样子能够减少因乱采购,而导致库存积压的风险。本系统是根据企业的需求,结合企业管理的特点,集入库管理、出库管理、库存管理于一体
6、,专门为企业定做的物资管理系统。本系统具有较强的实用性,发开成本低,系统操作简单,功能齐全。这个系统使用Java语言进行开发,JSP技术作为开发前台的技术,MyEclipse软件作为开发工具,采用MySQL为数据库,系统兼容性好。1.3 系统开发工具1.3.1 JSP简介Java Server Pages(JSP)技术,基于Java的一门技术,近年来,越来越多的软件开发者喜欢使用JSP技术开发软件,JSP主要包括各种指令和各种内置对象1。1.3.2 MyEclipse简介MyEclipse软件是一个可以用于开发J2EE和Java的 Eclipse 插件集合,开发者们可以利用它,在数据库和Jav
7、aEE的开发、设计、发布等多个方面,大大地提高工作效率。1.3.3 数据库简介数据库主要以数据为对象,依照特定的数据模型,在计算机系统中进行组织、存储和使用数据的数据集合,能够对数据进行增删改查等操作。在电子商务中,通过使用Web技术,它可以实现Web服务器与数据库系统的链接,然后完成查询和数据处理等。用户可以使用熟悉的浏览器来查询所需的数据2。MySQL是当今社会上比较常用和实用的关系型数据库管理系统,MySQL数据库是一种关联数据库的管理系统,主要将那些数据依次保存在不同的数据表中,而不是将所有的数据都保存在一个大基地内,这样就可以提高灵活性。MySQL数据库的体积极小、拥有成本极低,因其
8、开放源码这一优势,很多网站和系统的开发者都选择MySQL作为网站数据库。3。2 需求分析要开发一个软件系统,首当其冲的就应该先对这个系统进行需求分析,这样才能设计出满足用户需求的软件系统。现在就来对基于条码的物资管理系统进行详细的需求分析。2.1 可行性分析可行性分析,有些人也可以称它为可行性研究,简单地说,就是要求在调查系统的基础上,针对开发这个新系统是否有必要和有意义等,从技术、经济和社会等这些方面对新系统的开发进行详细的分析和研究,尽量不要出现不必要的失误等,由此保证新系统的设计和开发成功。所以,可行性分析的主要目的就是要求我们尽量用最小的代价在最短的时间内确定问题是否能够顺利解决。本系
9、统主要从以下几点进行可行性分析。(1)技术可行性:本系统仅需要一台装有MyEclipse、Tomcat以及数据库软件的计算机即可。(2)经济可行性:基于条码的物资管理系统主要是为仓库管理员开发设计和使用的系统,安装上这个应用软件,就可随时地使用这个系统,操作简单,系统成本低,在经济上完全可行。(3)操作可行性:界面的设计已经考虑过使用者的使用习惯,界面的设计简单,操作容易;物资入库、出库、盘点等操作简单,方便。所以,由此可知,本系统的开发目标很明确了,在经济、技术和管理等各个方面都是可以和有必要的,因此系统的开发是完全可行的和有意义的4。2.2 系统设计的要求现在对系统的设计要求进行详细的介绍
10、:(1)合理的设计数据库 设计数据库时,要充分考虑各种因素,应该要合理地减少数据的冗余,设计的数据表要通熟易懂,数据表之间联系紧密。(2)设计出友好的界面 开发者必须根据用户的要求、习惯等设计出友好的界面,给使用者一个满意的视觉效果。(3)实现基本功能和一些特殊功能的操作该系统要求除了能实现物资的入库、出库等基本功能之外,还要求能够根据用户的需要进行操作5。2.3 系统功能需求分析在本系统中,只有管理员可以登录并进行操作,管理员拥有查询员工、增加员工、增加部门、查询部门、查询货品、新增货品、货品入库和货品出库等功能。管理员可以通过账号密码登录本系统,可以随时查询员工,了解员工的基本信息,比如员
11、工的姓名、爱好、年龄、电话等,也可以对员工进行修改、删除等操作;新增员工时,必须填写员工的详细资料,所在部门、住址等;管理员还可以直接查询每个部门所拥有的员工及其基本信息。管理员可以查询部门和新增部门。查询部门时,各个部门的详细信息都会显示出来,管理员还可以通过输入查询条件,直接快速地查询到所要找的部门及其部门信息,当然,管理员可以修改、删除各个部门。新增部门时,填写新增部门的基本信息,然后返回到部门查询界面,以便显示刚新增的部门的信息。货品管理是本系统最重要的功能,货品分为普通货品和高级货品,管理员可以直接查询普通货品和高级货品里的所有货品,管理员可以修改、删除货品,查看货品的详细信息。新增
12、货品时,除了填写货品的详细信息外,系统会自动生成属于该物品的条形码,通过该条形码,可以快速的查询到该货品。入库、出库时,除了填写入库、出库的基本信息外,本系统还可以直接计算库存量,就是经过入库、出库后,计算出该货品的剩余量,这样子就可以随时掌握仓库的数据,以免出现库存不足或者库存积压等缺点。另外,入库、出库时的详细信息可以导出为Excel文件,打印出来,方便查看和使用6。2.4 数据库需求分析一个系统的成功很大一部分取决于前期该系统所做的需求分析,因为需求如果做好了,需求没什么问题,那么编写出来的软件系统就不会有太大的问题,而且软件的需求体现了客户的需求,做好需求分析,对于以后的程序开发完善和
13、程序的使用都是及其重要的。本系统采用MySQL作为数据库,其强大的服务器平台,高性能服务器结构能够满足以上的要求7。3 系统总体设计3.1 系统总体设计3.1.1 系统总体功能模块通过前面的功能需求分析,画出本系统的功能模块图,如图3-1所示:图3-1 系统的功能模块图3.1.2 系统总体结构设计原则系统总体结构设计一般应遵循以下原则:系统的子系统必须具有相对的独立性,子系统之间的数据依赖应该尽可能的小8。3.1.3 系统特点本系统的主要特点如下:(1)本系统完全基于JAVA Web技术,只要有一台电脑并且能联网就可以浏览本网(2)采用JSP技术和MYSQL数据库开发,具有代码易懂、可扩展性高
14、、性能高。(3)本系统可以通过浏览器登录管理系统,维护起来很是方便。(4)各个功能模块的独立性很强,完全可以根据实际情况随时任意组合。(5)界面友好,给使用者的视觉效果很不错,操作也很简单。(6)支持所有的Windows系列操作系统以及移动终端网页访问。3.2 系统功能总体设计本系统主要完成以下几个功能:(1)登陆功能:管理员登陆网站管理系统的一切。(2)员工管理:包括员工查询、员工新增和部门员工等功能。(3)部门管理:包括部门查询和部门新增等功能。(4)货品管理:包括高级货品查询、普通货品查询、货品新增、货品入库和货品出库等功能。可以通过输入条形码查询货品,可以查看和修改货品的详细信息。货品
15、入库、出库时各种信息的输入和查询,可以查看各个物品入库或者出库后的库存量。(5)导出功能:可以导出货品入库、出库时的详细信息,导出后为Excel文件。3.3 数据库的设计设计数据库系统时应该首先了解用户各个方面的需求,这样设计出的系统才不出出现太多问题。数据库设计一般包括如下几个步骤:(1)数据库需求分析(2)数据库概念结构设计(3)数据库逻辑结构设计3.3.1 数据库需求分析通过对一般物资管理系统的需求的研究,对物资管理工作过程的内容和数据流程的详细分析,本系统设计的数据项和数据结构如下所示:(1)员工基本信息,包括的数据项有:姓名、性别、年龄、联系电话等。(2)员工新增,包括的数据项有:姓
16、名、QQ、所在部门、年龄、住址、邮箱等。(3)员工查询,包括的数据项有:序号、员工姓名、最后修改时间等。(4)部门查询,包括的数据项有:序号、编号、名称、类型、创建时间等。(5)部门新增,包括的数据项有:部门名称、类型、编号层次、说明等。(6)货品新增,包括的数据项有:条码、名称、类型、数量、价格、所在区域、货品单位、录入员工、货品级别、说明等。(7)货品查询,包括的数据项有:普通货品查询、高级货品查询、操作、入库、出库等。(8)货品入库,包括的数据项有:条码、货品名称、类型、库存数量、入库数量、入库价格、所在柜、录入员工、录入说明等。(9)货品出库,包括的数据项有:条码、货品名称、类型、库存
17、数量、出库数量、出库价格、出库说明、录入员工、提货人、提货人联系电话等。3.3.2 数据库概念结构设计现在获得了上面所介绍的各种数据项和数据结构之后,就可以根据用户的需要,设计出各种实体和它们之间的关系。本系统根据上面的设计规划出的实体有:货品基本信息实体、货品新增基本信息实体、货品入库信息实体、货品出库信息实体、员工基本信息实体、部门基本信息实体等。各个实体具体的描述E-R图:图3-2 货品基本信息的实体E-R图图3-3 货品新增的基本信息的实体E-R图图3-4 货品入库信息的实体E-R图图3-5 货品出库信息的实体E-R图图3-6 员工基本信息的实体E-R图图3-7 部门基本信息的实体E-
18、R图3.3.3 数据库逻辑结构的设计现在可以将以上的数据库概念结构转变为实际数据模型,即数据库的逻辑结构如下所示:基于条码的物资管理系统的数据库中各个数据表的设计,下面一一介绍:(1)货品基本信息表easy_goods_info该表用来存放货品的具体信息,如表3-1所示:表3-1 货品基本信息表字段数据类型Null含义说明idbigint(20)否货品IDgoods_codevarchar(50)否货品的条形码goods_namevarchar(50)否货品的名称goods_typevarchar(50)否货品类型goods_quantityvarchar(20)是货品数量goods_pric
19、evarchar(20)是货品的价格goods_unitvarchar(50)是货品单位goods_descvarchar(255)是货品介绍goods_locationvarchar(50)是所在地方goods_creator_idvarchar(20)是创建货物的人员idgoods_creator_namevarchar(50)是货品录入员goods_creator_timetimestamp否录入时间statusvarchar(2)是货品的状态extends1varchar(100)是扩展字段extends2varchar(100)是扩展字段extends3varchar(100)是扩展
20、字段(2)入库货品信息表easy_goods_info该表用来存放入库货品的各种信息,如表3-2所示:表3-2 入库货品信息表字段数据类型Null含义说明idbigint(20)否主键idgoods_idbigint(20)否货物idgoods_codevarchar(50)否货品条形码goods_namevarchar(50)否货品名称goods_typevarchar(50)是货品类型goods_add_quantityvarchar(20)是入库数量goods_add_pricevarchar(20)是入库价格goods_add_descvarchar(255)是货品说明goods_lo
21、cationvarchar(50)是所在区域goods_adder_idvarchar(20)是录入员idgoods_adder_namevarchar(50)是货品录入员 续表3-2字段数据类型Null含义说明goods_add_timetimestamp否录入时间extends1varchar(100)是扩展字段extends2varchar(100)是扩展字段extends3varchar(100)是扩展字段(3)出库货品基本信息表easy_goods_input该表用来存放出库货品的各种信息,如表3-3所示:表3-3 出库货品信息表字段数据类型Null含义说明idbigint(20)否
22、主键idgoods_idbigint(20)否goods_codevarchar(50)否货品条形码goods_namevarchar(50)否货品的名称goods_typevarchar(50)否货品类型goods_out_quantityvarchar(20)是出库数量goods_out_pricevarchar(20)是出库价格goods_out_descvarchar(255)是货品说明goods_taker_idvarchar(20)是所在区域goods_taker_namevarchar(50)是记录员goods_buyer_namevarchar(50)是提货人goods_buy
23、er_phonevarchar(50)是提货人电话goods_add_timetimestamp否出库时间extends1varchar(100)是扩展字段extends2varchar(100)是扩展字段(4)部门基本信息表easy_sys_org该表用来存放部门的基本信息,如表3-4所示:表3-4 部门基本信息表字段数据类型Null含义说明idbigint(20)否序号org_namevarchar(50)否部门名称org_name_oldvarchar(50)是原部门名称 续表3-4字段数据类型Null含义说明org_codevarchar(20)是部门编号org_orderint(2)
24、是部门排序org_short_namevarchar(50)是部门简称leaftinyint(1)是子部门org_levelint(2)是部门层级parent_org_idbigint(20)是父部门idparent_org_namevarchar(50)是父部门名称org_statusvarchar(2)是部门状态create_timevarchar(20)是部门创建时间last_modify_timevarchar(20)是最后修改时间extends1varchar(50)是扩展字段extends2varchar(50)是扩展字段extends3varchar(50)是扩展字段(5)员工基
25、本信息表easy_sys_user该表用来存放员工的基本信息,如表3-5所示:表3-5 员工基本信息表字段数据类型Null含义说明idbigint(20)否序号user_namevarchar(50)否员工姓名user_sexvarchar(50)是性别user_agevarchar(20)是年龄emailint(2)是邮箱mobilevarchar(50)是联系电话statustinyint(1)是状态lastModifyTimeint(2)是最后修改时间addressvarchar(50)是员工住址extends1varchar(50)是扩展字段extends2varchar(50)是扩展
26、字段extends3varchar(50)是扩展字段createTimedatetime是创建时间(6)人员登陆所需账户信息表easy_sys_account人员登陆所需账户信息表和人员信息表多对一关系,即一个人可以有多个账户,登陆的用户名和密码保存在这里,如表3-6所示:表3-6 人员登录所需账户信息表字段数据类型Null含义说明idbigint(20)是主键iduser_idbigint(20)是用户idaccountDescvarchar(255)是账户描述accountNamevarchar(50)是登录名passwordvarchar(50)是登陆密码 imagevarchar(20
27、)是照片registTimetimestamp是注册时间lastModifyTimetimestamp是最后修改时间extends1varchar(100)是扩展字段extends2varchar(100)是扩展字段extends3varchar(100)是扩展字段(7)人员分组群组表easy_sys_group 如表3-7所示:表3-7 人员分组群组表字段数据类型Null含义说明idbigint(20)是主键idgroup_namevarchar(50)是群组名称group_descvarchar(100)是群组描述group_statusvarchar(2)是群租状态create_time
28、datetime是群组创建时间(8)系统资源表easy_sys_resource主要存放连接地址,如表3-8所示:表3-8 系统资源表字段数据类型Null含义说明idbigint(20)是主键idparent_resourcer_idbigint(20)是资源idresourcer_namevarchar(50)是资源名称resourcer_descvarchar(50)是资源描述parent_resourcer_namevarchar(50)是父资源名称 续表3-8字段数据类型Null含义说明resource_urivarchar(100)是路径resource_flagvarchar(50
29、)是标识resource_levelint(11)是层级resource_typevarchar(20)是类型resource_statusvarchar(2)是状态resource_iconvarchar(50)是图标create_timedatetime是创建时间resource_orderint(11)是排序resource_eventvarchar(50)是点击操作事件extends1varchar(50)是扩展字段extends2varchar(50)是扩展字段(9)系统角色表easy_sys_role每个人在系统中都有一种身份角色,如表3-9所示:表3-9 系统角色表字段数据类型N
30、ull含义说明idbigint(20)是主键idrole_namevarchar(50)是角色名称parent_role_idbigint(20)是父级角色idparent_role_namevarchar(50)是父级角色名称Role_levelint(11)是角色层级Role_typevarchar(50)是角色类型statusvarchar(2)是角色状态extends1varchar(50)是扩展字段extends2varchar(50)是扩展字段(10)账户信息表easy_user_accounts如表3-10所示:表3-10 账户信息表字段数据类型Null含义说明idbigint(
31、20)是主键id_namevarchar(50)是姓名user_sexvarchar(1)是性别 续表3-10字段数据类型Null含义说明user_ageInt_(11)是年龄emailvarchar(50)是邮箱mobilevarchar(11)是联系方式statusvarchar(2)是状态lastModifyTimetimestamp是最后修改时间addressvarchar(50)是地址extends1varchar(50)是扩展字段extends2varchar(50)是扩展字段extends3varchar(50)是扩展字段4 系统实现4.1 运行环境运行要求如下:(1)软件环境:
32、客户端: WindowsXP/windows 7,Internet Explorer(IE)等服务器端: Windows2003以上,Internet Information Server (IIS)6.0及其以上版本,IE等。数据库:MySQL,运行于服务器端。(2)硬件环境:服务器 CPU:酷睿双核4.0HZ以上 ,内存:2G以上客户机 CPU:intel双核以上,内存:2G以上4.2 系统主界面在浏览器里输入网址,打开主界面,输入用户名、密码就可以登录本系统,如图4-1和4-2所示:图4-1 系统登录界面图4-2 系统主界面其流程图如图4-3所示:图4-3 系统登录流程图4.3 员工管理
33、功能的实现(1)员工查询管理员登陆账号进入系统后,可点击左侧菜单栏中的员工管理,就会出现员工查询、员工新增、部门员工等功能,点击员工查询,就可以显示所有员工的基本信息,还可以输入查询条件,查询特定的员工。如图4-4所示:图4-4 员工查询页面具体的代码实现如下:RequestMapping(value=Url.EASY_EMPLOYEE_SEARCH)ModelAttribute(employee)EasySysUser employee)if(pager = null)pager = new Pager();pager = empService.findEmpByPager(pager, e
34、mployee);model.put(employee, employee);model.put(pager, pager);return View.EASY_EMPLOYEE_SEARCH;RequestMapping(value=Url.EASY_EMPLOYEE_DETAIL)public String empDetail(ModelMap model,RequestParam(value=id,defaultValue=0)Long id)EasySysUser employee=null;if(null != id & id.longValue()0)employee = empSe
35、rvice.findEmpById(id);model.put(employee, employee);(2)员工新增管理员登陆系统后,点击员工管理下的员工新增,就可以填写员工的基本信息,新增员工,保存后会跳转到员工查询模块,以便显示新增的员工,如图4-5、图4-6、图4-7和图4-8所示所示:图4-5 员工新增页面图4-6 员工新增、编辑页面图4-7 员工保存页面图4-8 员工查询页面部分代码实现如下:this.id = id;this.userName = userName;this.userSex = userSex;this.userAge = userAge;this.email =
36、 email;this.telephone = telephone;this.mobile = mobile;this.faxNo = faxNo;this.createTime = createTime;this.lastModifyTime = lastModifyTime;this.idCard = idCard;this.address = address;this.extends1 = extends1;this.extends2 = extends2;this.extends3 = extends3;this.extends4 = extends4;this.extends5 =
37、extends5;this.easySysAccounts = easySysAccounts;this.easySysAccounts_1 = easySysAccounts_1;(3)部门员工管理员登陆系统后,点击员工管理下的部门员工,就可以查看部门员工信息列表,如图4-9所示:图4-9 部门员工页面4.4 部门管理功能的实现(1)部门查询管理员登陆系统后,点击部门管理下的部门查询,就可以查询部门的基本信息,还可以输入查询条件,查询特定的部门,还可以查看部门的详细信息,如图4-10、4-11所示:图4-10 部门查询页面图4-11 部门详细信息页面部分代码的实现如下:RequestMapp
38、ing(value=Url.EASY_DEPART_LIST)public String departList(ModelMap model,Pager pager,ModelAttribute(department)EasySysOrg department)Map likeMap = new HashMap();if(null != department)if(null != department.getOrgCode()likeMap.put(orgCode, department.getOrgCode();if(null != department.getOrgName()likeMa
39、p.put(orgName, department.getOrgName();if(StringUtils.isNotEmpty(department.getExtends1() & null != department.getExtends1()likeMap.put(extends1, department.getExtends1();pager.setLikeMap(likeMap);pager = departService.findByPage(pager);model.put(pager, pager);model.put(department, department);retur
40、n View.EASY_DEPART_LIST;(2)部门新增管理员登陆系统后,点击部门管理下的部门新增,就可以填写部门基本信息,新增部门,保存成功后,就会跳到部门查询以显示新增的部门,如图4-12所示:图4-12 部门新增页面图4-13 部门新增保存页面图4-14 部门查询页面具体代码的实现如下:public void setId(Long id) this.id = id;public String getOrgName() return this.orgName;public void setOrgName(String orgName) this.orgName = orgName;p
41、ublic String getOrgNameOld() return this.orgNameOld;public void setOrgNameOld(String orgNameOld) this.orgNameOld = orgNameOld;4.5 货品管理功能的实现(1)货品查询管理员登陆系统后,点击货品管理下的高级货品或者普通货品,都可以直接查询各自种类的货品,可以查询某一货品的详细信息,也可以修改、删除、入库、出库该货品,还可以输入特定条件查询特定货品,如图4-15、4-16、4-17和4-18所示:图4-15 高级货品查询页面图4-16 高级货品详细信息查询页面图4-17 普通货品查询页面图4-18 普通货品详细信息查询页面具体代码的实现如下所示:public interface EasyGoodsInfoService * 根据条件查寻货品信息 * param goods * returnpublic List findGoodsInfo(EasyGoodsInfo goods); * 分页查找货品信息 * param pager * param goods * returnpublic Pager findGoodsInfoByPager(Pager pager,EasyGoodsInfo goods); * 保存货品信息 * param goods