商品销售库存管理系统本科毕业论文.doc

上传人:文库蛋蛋多 文档编号:4021884 上传时间:2023-04-01 格式:DOC 页数:23 大小:1.10MB
返回 下载 相关 举报
商品销售库存管理系统本科毕业论文.doc_第1页
第1页 / 共23页
商品销售库存管理系统本科毕业论文.doc_第2页
第2页 / 共23页
商品销售库存管理系统本科毕业论文.doc_第3页
第3页 / 共23页
商品销售库存管理系统本科毕业论文.doc_第4页
第4页 / 共23页
商品销售库存管理系统本科毕业论文.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《商品销售库存管理系统本科毕业论文.doc》由会员分享,可在线阅读,更多相关《商品销售库存管理系统本科毕业论文.doc(23页珍藏版)》请在三一办公上搜索。

1、商品销售库存管理系统目录1.引言51.1研究背景及意义51.2本课题主要工作52.WEB应用系统53.系统逻辑架构63.1逻辑架构图64.系统功能分析74.1入库管理模块74.2库存管理模块74.3销售管理模块84.4数据统计模块94.5系统设置模块95系统开发语言105.1表现层的开发105.1.1 JSP105.1.2 JS115.1.3 CSS115.2业务逻辑层的开发115.2.1JAVA125.3开发软件136数据库连接技术136.1JDBC136.2数据库连接的封装136.3数据操作的封状146.4数据表设计157系统运行环境178系统特点功能运行图178.1验证码178.2 框架

2、操作界面188.3用户唯一性198.4内存化参数208.5分页显示218.6系统参数229.结束语22商品销售库存管理系统【摘要】网购现在已经成为大众够物的常用途径之一,而在网上开店的商家也是越来越多,而在当今信息化的时代,拥有一套完善的管理系统,对销售可以起到事半功倍的作用。一个数据准确的管理系统,对商品的进货、销售和库存进行较为完善的掌控,采购和销售的计划要有据可寻,对客户进行集中、有效的管理,对历史数据有完善的统计。本系统实现的主要功能有:1、入库管理,提供用户将进货的产品信息分类录入系统,并可对进货进行回退;2、库存管理,提供用户对仓库中的产品进行调拨,并有库存预警的功能;3、销售管理

3、,提供用户录入产品销售记录,销售退回记录和产品报废记录;4、数据统计,可以根据产品号或者时间来统计产品入库,退货,销售,销售退货和报废的统计,以掌握产品的动向;5、系统设置,可以维护系统用户;新增系统参数:仓库,产品大类和小类,产品单位,供应商等。【关键词】WEB应用;三层架构;Jsp;Java。1.引言1.1研究背景及意义目前市面上有很多不同类型的销售库存系统,但主要是面对大型客户,对于一些小型商家来说,可用性不强,而且多数采用C/S结构的,使用前必须进行安装和配置,使用起来不是很友善。而本系统主要是面向一些小型的用户,例如在网上开设在线商户的,提供一个在线平台对经营的产品进行跟踪和管理;而

4、且采用的是B/S架构,不需进行任何安装,通过浏览器进行登录即可使用系统。1.2本课题主要工作本课题的主要工作是实现一套安全、高效、稳定、人性化的商品销售库存存管理系统,提供用户通过浏览器登录系统,在线进行产品的管理,使用户根据系统提供的信息作出准确合理而又快速的销售策略。2.WEB应用系统对于基于Web技术的应用系统,用户直接面对的是客户端浏览器,用户在使用系统时,请求之后的事务逻辑处理和数据的逻辑运算由服务器与数据库系统共同完成,对用户而言是完全透明的。运算后得到的结果再通过浏览器的方式返回给用户。这个过程可分成一些子步骤,每一个子步骤的完成可理解为通过一个单独的应用服务器来处理,这些应用服

5、务器在最终得到用户所需的结论之前,相互之间还会进行一定的数据交流和传递(请参见图1)。图1 WEB应用系统物理架构图3.系统逻辑架构3.1逻辑架构图图2 3层系统逻辑架构图三层架构(3-tier application) (如图2所示)通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL),区分层次的目的即为了“高内聚,低耦合”的思想:1、表现层(Presentation Layer):通俗讲就是展现给用户的操作界面,即用户在使用一个系统的时候他的所见所得,完成的主要功能是业务数据的输入和输出2、业务逻辑层(Business Control L

6、ayer):业务功能的应用逻辑,在这一层按照不同业务的要求完成对数据的加工、处理、转发存储,也可以说是对数据层的操作。3、数据访问层(Data Model Layer):该层所做事务直接操作数据库,针对数据的增、删、改、查。3.2 分层架构概述在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。系统主要功能和业务逻辑都在业务逻辑层进行处理。所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。三

7、层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。4.系统功能分析4.1入库管理模块入库管理模块一共有4个功能菜单(如图3所示)。产品入库:提供用户录入产品的入库记录,新产品入库和已有产品入库展示在同一大页面上,但分布在不同的表格。假如在新产品入库录入已有产品的记录,系统会有错误提示,需用已有产品入库进行录入。产品第一次入库时必须录入产品货号,此号用来判断新/旧产品的入库。入库记录查询:查询产品入库功能的操作记录。产品退货:此功能会先把仓库中产品数量大

8、于零的产品查找出来,提供给用户选择进行退回给发货商家。退货记录查询:查询产品退货录入的记录。图3 入库管理4.2库存管理模块库存管理模块一共有4个功能菜单(如图4所示)。库存查询:按产品货号和所在仓库为查询条件来显示产品记录,主要显示产品目前在仓库的数量和其总量(总量是指产品在所有仓库中数量的总和,因为同一产品号的产品有可能入库在不同的仓库)。统计产品总量的公式=入库总量-产品退货总量-产品销售总量+销售退货总量-产品报废总量。库存调拨:把库存查询中的记录查询出来显示给用户进行调拨,产品数量必须大于零才能进行调拨,否则提示错误。调拨是指产品从一个仓库调到另外一个仓库,产品的总数量是不变,但调出

9、仓库的数量会减少,调入仓库的数量会增加。调拨记录查询:查询库存调拨的操作记录。库存预警:在产品入库时,可以录入一个库存预警的值(假如录入0代表不报警),当产品总量小于此值时,这里会列出所有库存预警的产品记录。除此外,用户在登录时,假如有产品预警,会把所有预警的产品记录以弹出窗口的形式进行显示。图4 入库管理4.3销售管理模块销售管理模块一共有6个功能菜单(如图5所示)。产品销售:按产品货号和所在仓库为查询条件来显示产品记录,提供给用户选择来录入销售记录,产品所在仓库的数量必须大于0才能查询出来进行销售。销售记录查询:查询产品销售的操作记录。销售退货:将产品销售的记录查找出来,提供用户录入客户退

10、回来的产品记录。退货记录查询:查询销售退货的操作记录。产品报废:按产品货号和所在仓库为查询条件来显示产品记录,提供给用户选择来录入报废记录,产品所在仓库的数量必须大于0才能查询出来进行报废。报废记录查询:查询产品报废的操作记录。图5 销售管理4.4数据统计模块数据统计模块一共有5个功能菜单(如图6所示)。产品入库统计:以产品货号为主索引,统计入库的产品总量(即同一产品货号在各个仓库中的数量总和),这里只统计入库的记录,不作其他加减的加工。产品销售统计:以产品货号为主索引,统计销售的产品总量,需要考虑销售退货的记录,减去退货的这部分数量才是真正销售出去的总量。产品退货统计:以产品货号为主索引,统

11、计入库产品退回给发货厂商的总量。销售退货统计:以产品货号为主索引,统计产品销售后,客户退回来的产品总量。产品报废统计:以产品货号为主索引,统计产品入库后,对产品进行报废的总量。图6 数据统计4.5系统设置模块系统设计模块一共有6个功能菜单(如图7所示)。用户管理:可以重置用户密码并增加新的用户。仓库管理:添加新的仓库,添加时会对仓库名称进行检查,如时已有则不允许重复添加。产品大类管理:添加新的产品大类,添加时会大类名称进行检查,如时已有则不允许重复添加。产品小类管理:添加新的产品小类,添加前需选择对应的产品大类(大类和小类有对应联动的关系),并对小类名称进行检查,如时已有则不允许重复添加。产品

12、单位管理:添加新的产品单位,添加时会对产品单位名称进行检查,如已有则不允许重复添加。供应商管理:添加新的产品单位,添加时会对产品单位名称进行检查,如已有则不允许重复添加。图7 系统设置5系统开发语言5.1表现层的开发本系统前端页面的显示,即表现层基本都是用jsp语言来编写实现的。5.1.1 JSPJSP(Java Server Pages)一种动态网页技术标准。它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。在jsp文件中,通过request对象来处理传送过来的信息,该对象封装了用户提交

13、的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息,它是HttpServletRequest的实例。用法可见图8所示(截取自本系统的程序代码),通过request的常用方法getAttribute来接收业务逻辑层传送过来的Hashtable。图8 代码截图5.1.2 JS在编写.jsp程序文件时,一般还会广泛应用到JavaScript脚本(一种计算机脚本语言,主要在web浏览器(客户端)解释执行),我们习惯性会把经常用到的一些公用JavaScript脚本写到.js(JavaScript缩写)文件中,归到公用调用模块。本系统的日期控件就是通过.js来实现的(实现

14、效果如图9所示),在.jsp通过以下语言来直接调用:图9 日期控件实现效果图5.1.3 CSS为了让展现给用户操作的页面更加美观,我们还会应用到.css对页面进行加工。级联样式表(Cascading Style Sheet)简称“CSS”,通常又称为“风格样式表(Style Sheet)”,它是用来进行网页风格设计的。在使用时,只需要在.jsp文件中插入以下语言即可调用:5.2业务逻辑层的开发本系统的业务逻辑处理是通过java语言来编写实现的。.java文件通过编译后生成后缀为.class文件,可以发布到WEB应用服务器上的Java应用程序,亦即是常说的Servlet。Servlet是一种服务

15、器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。5.2.1JAVA业务逻辑处理主要使用了BSDF 核心类。如图2所示:Servlet,Command Interface, Command和DataHome/DataBean都继承了BSDF 核心类。

16、这些核心类提供了标准的系统结构和公用服务。在BSDF核心类中,最主要的一个程序:GenericHttpServlet,继承了HttpServlet类,实现Serializable类(如图10所示)。以下简单介绍业务逻辑层的java类设计逻辑:抽象类,该类可以作为所有业务小服务程序的超类。在此提供了 Session 检查,页面前送等公用方法,并定义了业务方法的统一接口(图10);此类还覆盖了其超类 HttpServlet 的doGet和doPost方法;本系统调用的是doPost方法。图10 程序截图抽象类GWGenericServlet 图11所示,继承核心类GenericHttpServle

17、t,系统日志,异常处理,异常信息提示都在此类处理。图11 程序截图抽象类GWServlet图12所示,继承GWGenericServlet,定义类业务交易参数,例如会话session和调用创建数据库工厂等。图12 程序截图最底层的业务逻辑处理类图13所示,继承GWServlet。(这只是其中举例的一个类,不同的业务功能会创建不同的类去实现)图13 程序截图5.3开发软件本系统在开发过程中主要使用到以下的开发软件(如表1所示):表1 开发软件表软件名称版本描述UltraEdit14.2.0.0主要用于编写.jsp, .js, .cssMyEclipse Enterprise8.0用于java开发

18、MySql5.1.0数据库WinXPSP3操作系统(软件运行平台)6数据库连接技术6.1JDBC本系统采用的是MySql数据库,连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。6.2数据库连接

19、的封装数据库连接工厂类JdbcConnFactory(如图14所示),方法createConn()实现对数据库的连接。图14 数据库连接工厂类6.3数据操作的封状设计逻辑:对每张数据表建立一个字段定义类(图15所示中不带Home的就是)和对数据进行增、删、改、查的操作方法类(图15所示中带Home的就是)。图15 数据操作类字段定义类会继承JdbcDataBean类(祖先类),如图16所示。每一个字段定义类的实例是数据库表中的一条记录数据的载体,同时也可作为一个显示Bean(在字段类中加入显示/格式转换逻辑),以简化开发。每一个字段类都有相关的存储方法,如:update(),persist()

20、。这些方法可将内存中的数据自动写入数据库,以保持内存数据和数据库数据的一致性。图16 JdbcDataBean类操作方法类会继承JdbcDataHome类(抽象祖先类),如图17所示。对于只用数据库的应用系统,可以使用这种 JDBC DataHome/DataBean 的设计框架。JdbcDataHome 提供了一系列公用方法,可用于数据库的查询、更新、添加等各种操作。图17 JdbcDataHome类6.4数据表设计表2 用户表(JXCUSER)待添加的隐藏文字内容1字段名 中文名 类型 长度 键字 空值 值域 USERID用户标识CHAR8YUSERPWD用户密码CHAR60USERNAM

21、E用户姓名CHAR30USERAUT用户权限CHAR20USERSEX性别CHAR1F-女M-男USERCERNO证件号码CHAR20USERCERTYPE证件类型CHAR201- 身份证02- 临时身份证USERMOBPHONE联系电话CHAR20YUSERADDRESS联系地址CHAR60YUSERSALARY薪酬CHAR10YUSERISLOCK用户加锁CHAR10- 解锁1- 加锁default:0USERPWDERR密码错误次数CHAR1密码错误次数最多3次default:0表3 产品入库记录表(JXCPRODUCT)字段名 中文名 类型 长度 键字 空值 值域 PRDTPK流水号B

22、IGNITY自动+1PRDTNUMBER产品号码CHAR60PRDTNAME产品名称CHAR40PRDTTYPE产品类型CHAR2BCLASSID产品大类CHAR4对应JXCCODEBASE.CODENOSCLASSID产品小类CHAR4对应JXCCODEBASE.CODENOSTATUS状态CHAR2SELLPRICE指导卖价CHAR10YORGPRICE进货价CHAR10YQUANTITY数量INTUNIT单位CHAR10对应JXCCODEBASE.CODENOSTANDARDS规格CHAR30Y对应JXCCODEBASE.CODENOSTOWAGE仓库CHAR10COMMISION提成C

23、HAR8YCOMMISIONTYPE提成类型CHAR2YEXCHANGEPTS兑换积分CHAR8YREMAINALARM库存预警数量CHAR4YREMARKS备注CHAR80YPRDTDATE时间戳TIMESTAMP自动生成格式: YYYY-MM-DD HH:MM:SSOPERATER经办人CHAR20YSTORAGEDT入库日期CHAR8Y格式: YYYYMMDDSUPPLIER供应商CHAR60Y对应JXCCODEBASE.CODENOSUMQUANTITY产品总数量INTYIFMAIN主标志CHAR11-首次入库的产品2-已有产品入库9-库存调拨表4 产品操作表(JXCPRDTSTATE

24、)字段名 中文名 类型 长度 键字 空值 值域 STATEPK流水号BIGINTY自动+1PRDTPK产品入库记录流水号BIGINT对应JXCPRODUCT.PRDTPKPRDTNUMBER产品号码CHAR60同JXCPRODUCT.PRDTNUMBERPRDTSTATE操作类型CHAR211-产品退货21-产品调拨31-产品销售41-顾客退货51-产品报废SELLPRICE销售价格CHAR10YQUANTITY数量INTMEMBER购买顾客CHAR20YREMARKS备注CHAR80YOPERATOR经办人CHAR20OPERATEDT经办日期CHAR8YYYYMMDDSTOWAGE出货仓库

25、CHAR4STOWAGEIN入货仓库CHAR4YCUSREJQTY销售退货数量INT表5 参数表(JXCCODEBASE)字段名 中文名 类型 长度 键字 空值 值域 CODEID参数标识CHAR20Y产品大类-BCLASS产品小类-SCLASS产品单位-UNIT仓库-STOWAGE供应商-SUPPLIERCODENO参数编号CHAR4Y000100020003CODENAME参数名称CHAR40IFVALID参数状态CHAR10- 无效1- 有效RELCODEID关联参数标识CHAR20Y小类会用到,对应的大类CODEID7系统运行环境本系统可发布到TOMCAT,IBM WebSphere(

26、WINNT版)这些常用的WEB服务器上。由于本系统针对的是中小型客户,对硬件配置要求不需很高,WEB应用服务器平台可以架设在双核CPU,4G内存的PC服务器上,PC服务器操作系统可采用WIN XP或2003 Server等。8系统特点功能运行图8.1验证码登录首页需输入验证码(如图18所示),提高系统的稳定性,防止自动登录软件的攻击。图18 系统登录首页要实现上面验证码的功能,需要对应用系统的web.xml文件进行配置(如图19所示),在启动系统服务的时候调用验证码的程序。图19 验证码程序在web.xml中的配置8.2 框架操作界面系统采用了框架显示的操作界面,分为四块(如图20所示)。顶部

27、和底部:顶部显示常用的功能菜单,底部显示一些基本信息;中间分成左右两部分:左边显示系统全部功能菜单,右边是主界面。图20 框架操作界面8.3用户唯一性用户登录时,系统会对其进行唯一性的检查,假如系统中已存在同一活动的用户,会把已登录的用户的会话置为无效,以新登录用户为准。如图21所示为用户登录成功后的首页;假如此时在其他地方有同一用户登录,系统会把图22已登录的用户签退,假如此时用户点击系统任何功能菜单,会有图21的提示。图21 登录系统成功首页图22 系统功能运行截图8.4内存化参数系统中一些经常用到的参数,如图23所示,红色框中的产品大类,产品小类,加入仓库,产品单位,供应商这些下拉的选项

28、,是以参数的形式保存在数据表中,然后在启动应用系统的服务时,会调用内存化参数的类,把这些参数从数据表查找出来,放置在内存中,需要使用时,直接从内存读取即可。参数化不但可以提升系统运行速度,还可以减轻对数据库的压力,保证系统的稳定性。对于“产品大类”和“产品小类”这两个下拉选项,是进行了联动处理的,即选择不同的大类,会调出不同的小类,在jsp页面即可完成处理,而不用刷新页面。图23 系统功能运行截图8.5分页显示分页显示数据记录(如图24所示),可以减轻查询时对数据库的压力,系统默认每页显示10条记录,通过修改配置文件可以变动每页显示的记录条数。图24 记录分页显示8.6系统参数数据库连接的参数

29、,如图25中第一个红色框里面的内容。而分页显示中,每页可显示的最大行数也是可进行配置的,如图25中第二个红色框里面的内容。管理员要对用户进行重置密码,重置后的默认密码也是配置在参数文件中,如图25中第三个红色框里面的内容。对于此参数配置文件,在启动应用系统服务的时候,会通过程序把系统参数给读取出来放置在服务器内存里,在系统需要使用时,直接从内存读取即可,优化了系统的资源使用。图25系统参数配置文件9.结束语虽然本系统未能如市面上专业的C/S架构商品销售库存存软件那样功能强大和完善,但由于采用B/S的架构,不需进行任何安装和配置,通过浏览器进行登录即可使用系统,为用户提供更友善的使用性,例如在网

30、上开设在线商户的用户,提供一个在线平台对经营的产品进行跟踪和管理,无论身处何地,只要连上网络,即对库存了解得一清二楚,从而制定更好,更灵活的经营策略。【参考文献】1(美)Ken Arnold, James Gosling, David Holmes. The Java Programming LanguageM. 人民邮电出版社。ISBN:7-115-15297-7.2(美)Marty Hall, Larry Brown. Core Servlets and JavaServer PagesM. 清华大学出版社。 ISBN:7-302-08627.3(美)Nicholas C.ZAKAS. J

31、avaScript高级程序设计M。人民邮电出版社。ISBN:7-115-15209-8.4(美)Khawar Zaman Ahmed, Cary E. Umrysh. 用J2EE和UML开发Java企业级应用程序M。清华大学出版社。ISBN:7-302-05595-5.5(英)Ben Forta. SQL必知必会M。人民邮电出版社。ISBN:978-7-115-16260-1/TP6黄嘉辉。Java网络程序设计M。清华大学出版社。ISBN:7-302-05870-9.7(美)BruceEckel. Java编程思想M。机械工业出版社。ISBN:7-111-10441-2.8(美)Philip Heller, Simon Roberts. Java2高级开发指南M。电子工业出版社。ISBN:7-5053-4999-6.9(美)Danny Goodman. JavaScript宝典M。电子工业出版社。ISBN:7-5053-7165-7.10Joseph L. Weber. (美)Java2编程详解M。电子工业出版社。ISBN:7-5053-5323-3.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号