《企业进销存管理系统的设计与实现毕业设计(35页).docx》由会员分享,可在线阅读,更多相关《企业进销存管理系统的设计与实现毕业设计(35页).docx(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-企业进销存管理系统的设计与实现毕业设计-第 29 页毕业设计(论文)企业进销存管理系统的设计与实现学生姓名: 宋泽诚 指导教师: 韩胜菊 专业名称: 计算机科学与技术 所在学院: 信息工程学院 2013年6月目录摘 要IABSTRACTII第一章 前 言11.1研究目的和意义11.2国内外研究现状11.3研究内容和方法2第二章 系统的开发环境及技术简介32.1 系统开发环境32.2系统开发的思想与技术4第三章 系统总体设计73.1 需求分析73.2 总体功能模块83.3系统业务描述8第四章 系统详细设计与实现104.1系统和数据库的配置104.2概念模型设计104.3数据库逻辑模型114.4
2、数据库表结构114.5平台数据表的设计14第五章 系统功能实现205.1程序的类图205.2程序的流程图345.3系统功能实现的主要框架375.4系统功能实现的主要模块41第六章 系统的运行与调试496.1 创建安装项目496.2 添加项目输出506.3 运行项目516.4 系统测试52结 论54致 谢55参考文献56摘 要随着时代的发展,在现代化的商业管理中,需要处理的数据和信息越来越多。大量的数据和繁杂的数据项使得古老的手工处理数据的方式渐渐显得力不从心。甚至有些信息处理的方式在手工处理的模式下是根本无法实现的,只能利用计算机的高运行频率来进行迭代计算。本文的旨意在展示一个平台的框架。这个
3、平台为现代企业的进、销、存管理提供了一个高度集成化的数据处理空间。本文所介绍的进销存管理系统为现代企业贸易过程中的进货、销售、库存提供了一个自由灵活的模版。通过对本系统的进一步业务扩展,可以使企业在管理中进一步降低进货成本,减少盲目进货,合理分配仓库,减少资金占用并增强流通性,提升了企业的市场灵敏度,让企业更具有市场竞争力。本系统采用了当下最流行的技术路线进行开发,基于B/S结构,采用S.S.H框架。开发环境主要使用的是著名的JAVA集成开发环境MyEclipse,采用了大中型企业常用的开源数据库MySQL,使用JSP技术开发前台界面,JAVA语言进行后台业务处理。该系统界面简单、操作方便,容
4、易维护。关键词:进销存管理系统,S.S.H (Struts ,Hibernate ,Spring ),JAVA , JSPABSTRACTInvoicing management system is an important part of business information management, facing the massive commodities information, will be dealt with using human waste a lot of time, manpower and material resources, and the accuracy
5、of data operation. This paper presents an easy Invoicing management system for the entire process to form semi automatic processing. The system is designed to manage enterprises purchase, sales, inventory, accounts and other process. Users through the use of this system can effectively reduce the bl
6、ind for the enterprise to purchase, reduce purchase cost, reasonable control inventory, reduce capital to take up and enhance market sensitivity, enhance the market competitiveness of enterprises.The content of graduation design is to design and implement a web based system, so the system is mainly
7、to J2EE as a development base, the main use of struts2+spring+hibernate and other frame used in combination, using MyEclipse as a development tool, using MYSQL as the database, with Macromedias Dreamweaver as the interface landscaping tools, the use of JAVA language development, page take the JSP dy
8、namic homepage development technology. This system interface is simple, convenient operation, easy maintenance.Keywords: Invoicing management system ,Struts ,Hibernate ,Spring ,JAVA ,JSP第一章 前 言1.1研究目的和意义计算机技术的出现,使人类的生产力有了质的飞跃。计算机技术的出现促成了信息集成化的高度发展,由此进入了知识的经济时代。在知识经济时代,管理信息系统MIS(Management Informatio
9、n System)成为企业的生产和运作不可或缺的管理工具。管理信息系统是一门新的学科,它跨越了管理科学、系统工程学、运筹学、统计学和计算机科学等,在企业中起到了越来越重要的作用。 我国的中小型企业众多,它在我国的经济发展中占有重要的地位。我国的中小企业数量多、分布广、行业跨度大。它面临着国内大型生产企业以及国外进口商品和服务的严峻挑战。国内的大型国企央企及外资企业有着国内中小企业没有的大量的资金、丰富的管理经验、先进的技术手段和雄厚的政治资源。而且国内的大型国企央企及外资企业已经将类似于ERP这样的信息管理系统应用在实际生产中。现状对于中小企业的竞争非常不利。推出这样一套集成化程度高,扩展自由
10、灵活的进销存管理系统,比较符合中小企业的需求。较短地开发周期降低了开发成本,也降低了中小企业信息化管理的费用。在市场经济中,销售是企业运作的重要环节之一。现在的大部分企业销售网络广,分布在各个省市之间,传统的人工传递信息显然已经不适合这个时代的经济发展。本课题通过先进的技术手段把进销存管理系统引入现代企业的信息管理中,通过技术手段把企业每天产生的大量抽象数据转化为直观可见的信息,为企业的决策者提供了真实可靠的决策依据。1.2国内外研究现状国外目前做的进销存管理系统,虽然现在产品都已经相对成熟,(国外情况具体化)但是由于中西文化的差异的存在,进销存管理系统中的财务管理等模块根本无法在企业中使用。
11、国外的财务管理流程跟国内的差距很大。比如说,在国外的财务管理中应收账款和增值税发票是放在一起进行管理的,但是在国内,绝大部分企业都是先产生应收的帐款,然后再进行开票。而且,有时候需要把几笔应收的帐款合在一起进行增值税发票开票。如果把增值税发票纳入营收账款进行管理的话,财务人员便无法对财务流程进行正确操作。而且很多税务报表有由国家财务税务部门的统一标准。根据目前从网上可以查得到的信息显示,目前国内存在的进销存管理系统花样繁多。比如美萍商业进销存管理系统 9.7,其中包含有商品销售管理系统 ,库存管理系(仓库管理系统)。系统界面简洁,操作简单,用户可以轻松上手。由于系统基于C/S结构,大量的冗余数
12、据存储在本地,数据无法得到实时得更新,而且无论从数据的角度还是版本升级的角度来讲,本地更新的代价都相对较大。1.3研究内容和方法研究内容:如何建立运行web上的项目,也就是如何熟悉MyEcplies。如何架设可以解析web内容的服务器,并将web项目发布到服务器上。研究方法:查找资料,熟悉MyEcplies的使用,如何创建基于web的项目,如何架设Tomcat服务器,如何把基于web的项目发布到Tomcat服务器上。本系统实现的对各种繁多商品信息的增、删、改、查的功能,完全满足的企业的日常需求。系统最大限度地实现了易使用性、易维护性。系统运行稳定,安全可靠。界面简洁友好,操作简单灵活。实施规范
13、的进、销、存一体化业务管理。强大的查询分析功能。灵活、细分的权限控制功能(待实现)。本系统是一款将进货、销售、库存进行一体化管理的系统。由供应商管理、商品管理、入库管理、库存管理、销售管理、款项管理和系统管理(待实现)等模块组成。第二章 系统的开发环境及技术简介2.1 系统开发环境2.1.1 MyEclipse在开发本系统中所用到的开发的工具就是知名的Java项目的开发工具MyEclipse。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的一种扩展和延伸,利用MyEclipse,我们可以在对数
14、据库和J2EE的开发与发布,以及在应用程序服务器的整合当中极大地提高系统的工作效率。MyEclipse有完整的编码、调试、测试和发布等单元,完美支持HTML、JSP、JavaScript各种语言,是一个功能十分强大的J2EE集成开发环境。MyEclipse有7个结构单元: J2EE模型,WEB开发工具,EJB开发工具,应用程序服务器连接器,J2EE项目部署支持,数据库支持,MyEclipse帮助整合。这7个单元在Eclipse都有相应的插件来实现这些功能。而在MyEclipse中,这7个单元被模块化设计,使得这7个单元都可以在不影响别的单元的情况下单独进行扩展和升级。换而言之,MyEclips
15、e其实是Eclipse的一个插件,让J2EE的开发环境集成性更高,开发更加快捷高效的一个插件。2.1.2 数据库简介数据库使用的是MySQL开源数据库。MySQL既然是一个开源的数据库,那么显而易见它代码的可移植性很强。使用C语言和C+编写并且通过多种编译器测试的MySQL支持AIX、FreeBSD、HP-UX、Mac OS、OpenBSD、OS/2 Wrap、Solaris、Windows等多种的操作系统 。为多种编程语言提供了API查询。这些编程语言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。支持多线程并且充分利用CPU资源。对SQL语句的优化
16、可以有效提高查询速率,支持常见的多种编码格式,既可以做为应用程序在服务器发布又可以作为其他软件的一个库,并且提供了多种多样连接方式。可以处理拥有上千万条记录的大型数据库。MySQL与其他的大型数据库比如说Oracle、DB2、SQL Server等相比,MySQL功能有限、规模小,但是由于它开放源码,成本低,而且对于中小企业来讲它的功能绰绰有余,受到了广大中小企业用户的欢迎。2.1.3 TomcatTomcat是一个轻量级的服务器程序,它运行时占用很少的系统资源,有这很好的扩展性。并且任何一个程序员可以为它扩展自己喜欢的功能,使得它可以被不断地改进和完善。Tomcat是JSP程序调试的首选服务
17、器。它是Apache服务器的扩展。当配置好Apache服务器后便可以对HTML网页进行访问并处理HTML网页的请求。但是它是独立运行的服务器。当Tomcat配置正确的时候,Apache为HTML页面服务,而Tomcat为JSP和Servlet容器服务。另外,Tomcat和IIS、Apache等Web服务器一样,兼备处理HTML页面的强大功能,并且它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat服务器的默认模式。2.2系统开发的思想与技术2.2.1 JSP技术与MVC模式以及系统的基本框架本系统采用的是JSP技术,是基于MVC模式的开发,使用的是S.S.H框架(str
18、uts2、spring、hibernate)来增加系统的开发速度。所谓的MVC模式是指Model-View-Controller的缩写,中文的翻译为模式-视图-控制器。程序本身就是用struts2和hibernate这两个框架来实现模型层和控制器这两层的代码,jsp实现视图这一层的代码。一般来说程序就是在数据库和页面之间起桥梁作用的,JSP页面的请求先提交到action,再由传递到dao,再由dao进行数据操作将所得值传回到action,再由action将计算结果传回到jsp页面,action主要处理来自jsp页面的请求,dao主要是处理和数据库的交互操作,struts2主要是用在action
19、,处理来自于jsp页面的请求,处理完请求之后跳转回jsp页面。Hibernate主要用在dao,包括对数据库的增、删、改、查等操作,spring框架主要是用来控制程序的流程。2.2.2 S.S.H框架的优点S.S.H框架是J2EE应用中struts2 + spring + hibernate三大免费开源框架的综合使用, 它可以看成是一种工具,也可以是中间件。他是可以用来提高我们的开发效率,提高我们的软件产品的可维护性、可扩展性乃至敏捷性的框架。他们里面有很多的优秀的设计理念及模式的应用。比如说,struts属于MVC的框架,关键是要了解MVC的概念及大致的原理;而hibernate属于ORM的
20、系统,属于数据持久层的解决方案,同样需要对ORM的概念及原理有一个总体地了解。而spring属于应用程序的框架,其核心是IOC容器以及AOP,在Spring中还集成了很多适用的东西,比如说对JDBC的封装、自己的MVC框架、对动态语言的简洁访问等等,它由以下3个框架构成:1.Struts2框架Struts2是Apache组织的一个开放源码的项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层的支持,它采用的主要的技术是Servlet,JSP和Custom tag library。其基本构成如图2.1所示。图2.1 Struts框架工作流程2.Spring框架Spring提
21、供对数据持久层、业务事务层的支持,是一个轻量级的容器。提供了MVC模式的WEB框架,封装了一些常用的企业级服务,提供了一系列封装接口。整合了各种各样的框架,类似于Struts、JSF、Hibernate 等。Spring框架由以下7个部分组成图2.2 Spring框架构成3.Hibernate框架Hibernate 是一个开放源码的 ORM 数据持久层的框架。Hibernate将关系型数据库实现了面向对象的思想,它是一个将数据库表实例化的工具,每一个数据持久化类对应一个数据库表,表中的每行数据对应一个实例。用户只是需要直接使用面向对象的方法操作此数据持久化类的实例,即可以完成对数据库表中数据的
22、插入、删除、修改、读取等操作。图2.3 Hibernate框架第三章 系统总体设计3.1 需求分析3.1.1 问题的提出一个企业赖以生存的根本是企业的产品价值,载体是产品。企业的采购、生产、销售等主要活动全部是围绕这产品进行的。当企业还处于创业阶段的时候,这些活动可以用手工或者简单的文档模式进行记录。随着企业规模地扩大,这些活动产生了大量的信息,如果沿用创业初期记录信息的方式,工作量无疑是巨大的。大量重复的工作增加的人力成本,而且出错率极高,误差交大。企业在采购、生产、销售活动中目前有如下几个主要问题。1. 科技时代的现代化产品往往需要多种的原料,不同规格的产品对原料规格的需求也不同,加之市场
23、竞争的激烈,采购部门需要将供应商信息进行商务智能分析,从而取得最优采购方案。2. 现代企业的产品往往经过了十分繁复的工艺进行制造,面向不同需求的客户有着各式各样的规格。生产是一个中间环节,生产数据承接着库存、销售的数据,需要实时更新。3. 销售部门需要实时了解库存信息,方便调配货物发送。销售订单需要发送给采购部门,以便采购部门进行原材料的制定。4. 各个部门之间不能再进行人工信息传递,这样做既浪费人力资源又容易产生误差。需要有统一的平台统计信息,实时为采购部门更新供应商和原材料信息,为生产部门更新生产计划,为销售部门更新销售订单。5. 历史记录准确的查询,可以更准确的分析和预测市场走向,为企业
24、的决策领导提供有效地实时数据依据。6. 商务智能扩展,提供为数据进行智能分析的接口。7. 清晰的采购生产销售企业活动流程,让各部门人员各司其职,保证信息的准确性、完整性和统一性。3.1.2 问题的分析将企业采购生产销售的活动流程转变为软件流程,通过权限的分配和管理让各部门各司其职。具体流程如下。销 售 部 门 推 广 产 品 , 下 发 产 品 订 单 。 然 后 由 生 产 部 门 定 制 生 产 计 划 , 罗 列 出 所 需 原 材 料 的 清 单 , 交 给 采 购 部 门 。 采 购 部 门 根 据 原 材 料 清 单 , 对 各 个 供 应 商 之 间 的 情 况 进 行 分 析
25、, 制 定 出 采 购 计 划 。 采 购 事 宜 完 成 后 记 录 入 库 , 交 由 生 产 部 门 进 行 生 产 。 生 产 计 划 完 成 后 将 商 品 入 库 , 并 对 销 售 部 门 做 出 提 醒 可 以 调 配 货 物 。 销 售 部 门 从 仓 库 中 调 配 货 物 后 产 生 以 订 单 为 索 引 的 销 售 记 录 。 3.2 总体功能模块 本系统只有系统管理员这一个角色,系统管理员的功能主要包括供应商管理、商品管理、入库管理、库存管理、销售管理和款项的管理。总功能图如图3-1所示。图3-1.系统管理员功能需求分析3.3系统业务描述本系统中暂时只有系统管理员这
26、一个角色。系统管理员可以进行供应商、商品、入库、库存、销售款项等多种管理。用例图如图3-2所示。图3-2.系统业务用例图第四章 系统详细设计与实现4.1系统和数据库的配置系统按照通用的B/S(浏览器、服务器)模式进行设计,如图4-1所示。图4-1.系统设计模式其中数据库的设计在一个信息管理系统中非常重要,数据库结构的设计直接影响了系统实现的效果和运行的效率。合理的设计可以保证数据库执行的效率,保证其数据的完整和统一。4.2概念模型设计概念模型设计指的是实体-联系,即E-R图。E-R方法是使用E-R图来描述显示世界,E-R图包含三个基本组成成分:实体、联系、属性。它可以比较准确地反映现实世界的信
27、息之间的联系,直观易懂,从概念设计上表示一个数据库信息的组织状况。本系统E-R图如图4-2所示。图4-2.系统E-R图4.3数据库逻辑模型商品表(主键、商品是否删除的标志、商品号、商品名、关联的供应商ID)库存表(主键、数量、关联的商品ID)用户表(主键、添加时间、密码、用户权限、真实姓名、用户是否删除标志、用户名)进货表(主键、添加时间、订单号、备注、进货价格、是否删除、进货数量、是否付款状态、关联的商品ID)供应商表(主键、供应商是否删除的标志、联系地址、联系方式、供应商名字)销售表(主键、添加时间、备注信息、价格、数量、付款状态、销售号、是否删除销售记录的标志、关联的商品ID)4.4数据
28、库表结构4-1.商品表名称类型空备注idproductlockshangpinhaoshangpinnamegongyingshangidBigint(20)Int(11)Varchar(255)Varchar(255)Bigint(20)nonoyesyesyes主键商品是否删除的标志,0表示未删除,1表示删除商品号商品名关联的供应商ID,外键4-2.库存表名称类型空备注idshuliangproductidBigint(20)Int(11)Bigint(20)nonoyes主键数量关联的商品ID,外键4-3.用户表名称类型空备注idcreatetimepasswordroleturenam
29、euserlockusernameBigint(20)datetimeVarchar(255)Int(11)Varchar(255)Int(11)Varchar(255)noyesyesnoyesnoyes主键添加时间密码用户权限,0表示系统管理员真实姓名用户是否删除用户名4-4.进货表名称类型空备注idcreatetimedingdanhaoinfojiagejinhuolockshuliangstatusproductidBigint(20)datetimeVarchar(255)Varchar(255)doubleInt(11)Int(11)Int(11)Bigint(20)noyesy
30、esyesyesnononoyes主键添加时间订单号备注进货价格是否删除,0表示未删除,1表示删除进货数量是否付款状态关联的商品ID4-5.供应商表名称类型空备注idgongyingshanglocklianxidizhilianxifangshimingziBigint(20)Int(11)Varchar(255)Varchar(255)Varchar(255)nonoyesyesyes主键供应商是否删除联系地址联系方式供应商名字4-6.销售表名称类型空备注idcreatetimeinfojiageshuliangstatusxiaoshouhaoxiaoshoulockproductidB
31、igint(20)datetimeVarchar(255)doubleInt(11)Int(11)Varchar(255)Int(11)Bigint(20)noyesyesyesnonoyesnoyes主键添加时间备注信息价格数量付款状态,0表示未付款,1表示已付款销售号是否删除销售记录的标志,0表示未删除,1表示删除关联的商品ID,外键4.5平台数据表的设计在本平台采用的数据库是MySql数据库。根据模块的划分,需要设计的数据表有6张,包括:供应商表t_gongyingshang,进货表t_jinhuo,库存表t_kucun,商品表t_product,销售表t_xiaoshou,用户表t_u
32、ser。供应商表t_gongyingshang图4-3.供应商表建表语句为:CREATE TABLE t_gongyingshang ( id bigint(20) NOT NULL auto_increment, gongyingshanglock int(11) NOT NULL, lianxidizhi varchar(255) default NULL, lianxifangshi varchar(255) default NULL, mingzi varchar(255) default NULL, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHA
33、RSET=utf8;进货表t_jinhuo图4-4.进货表建表语句为:CREATE TABLE t_jinhuo ( id bigint(20) NOT NULL auto_increment, createtime datetime default NULL, dingdanhao varchar(255) default NULL, info varchar(255) default NULL, jiage double NOT NULL, jinhuolock int(11) NOT NULL, shuliang int(11) NOT NULL, status int(11) NOT
34、NULL, productid bigint(20) default NULL, PRIMARY KEY (id), KEY FK37BA29DEFB94BF2F (productid), CONSTRAINT FK37BA29DEFB94BF2F FOREIGN KEY (productid) REFERENCES t_product (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;库存表t_kucun图4-5.库存表建表语句:CREATE TABLE t_kucun ( id bigint(20) NOT NULL auto_increment, shuli
35、ang int(11) NOT NULL, productid bigint(20) default NULL, PRIMARY KEY (id), KEY FK9EC6D0E7FB94BF2F (productid), CONSTRAINT FK9EC6D0E7FB94BF2F FOREIGN KEY (productid) REFERENCES t_product (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;商品表t_product图4-6.商品表建表语句:CREATE TABLE t_product ( id bigint(20) NOT NULL a
36、uto_increment, productlock int(11) NOT NULL, shangpinhao varchar(255) default NULL, shangpinname varchar(255) default NULL, gongyingshangid bigint(20) default NULL, PRIMARY KEY (id), KEY FKA91FC0246F41F347 (gongyingshangid), CONSTRAINT FKA91FC0246F41F347 FOREIGN KEY (gongyingshangid) REFERENCES t_go
37、ngyingshang (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;销售表t_xiaoshou图4-7.销售表建表语句:CREATE TABLE t_xiaoshou ( id bigint(20) NOT NULL auto_increment, createtime datetime default NULL, info varchar(255) default NULL, jiage double NOT NULL, shuliang int(11) NOT NULL, status int(11) NOT NULL, xiaoshouhao varc
38、har(255) default NULL, xiaoshoulock int(11) NOT NULL, productid bigint(20) default NULL, PRIMARY KEY (id), KEY FKCA5A4DE5FB94BF2F (productid), CONSTRAINT FKCA5A4DE5FB94BF2F FOREIGN KEY (productid) REFERENCES t_product (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;用户表t_user图4-8.用户表建表语句:CREATE TABLE t_user
39、( id bigint(20) NOT NULL auto_increment, createtime datetime default NULL, password varchar(255) default NULL, role int(11) NOT NULL, truename varchar(255) default NULL, userlock int(11) NOT NULL, username varchar(255) default NULL, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;第五章 系统功能实现 5.1程
40、序的类图5.1.1供应商Gongyingshang类图图5-1.供应商类对应的程序代码:public class Gongyingshang implements Serializableprivate static final long serialVersionUID = 2429695896963809305L;private long id;private String mingzi;private String lianxifangshi;private String lianxidizhi;private int gongyingshanglock;public int getGo
41、ngyingshanglock() return gongyingshanglock;public void setGongyingshanglock(int gongyingshanglock) this.gongyingshanglock = gongyingshanglock;5.1.2进货Jinhuo类图图5-2.进货类对应的程序代码:public class Jinhuo implements Serializableprivate static final long serialVersionUID = 2429695896963809305L;private long id;pr
42、ivate Product product;private double jiage;private int shuliang;private Date createtime;private String dingdanhao;private int status;private String info;private int jinhuolock;public int getJinhuolock() return jinhuolock;5.1.3库存Kucun类图图5-3.库存类对应的程序代码:public class Kucun implements Serializableprivate
43、 static final long serialVersionUID = 2429695896963809305L;private long id;private Product product;private int shuliang;IdGeneratedValue5.1.4商品Product类图图5-4.商品类对应的代码:public class Product implements Serializableprivate static final long serialVersionUID = 2429695896963809305L;private long id;private
44、String shangpinname ;private String shangpinhao;private Gongyingshang gongyingshang;private int productlock;public int getProductlock() return productlock;public void setProductlock(int productlock) this.productlock = productlock;ManyToOneJoinColumn(name=gongyingshangid)public Gongyingshang getGongy
45、ingshang() return gongyingshang;public void setGongyingshang(Gongyingshang gongyingshang) this.gongyingshang = gongyingshang;5.1.5销售Xiaoshou类图图5-5.销售类对应的代码:public class Xiaoshou implements Serializableprivate static final long serialVersionUID = 2429695896963809305L;private long id;private Product product;private double jiage;private int shuliang;private Date createtime;private St