资源描述
目 录
摘 要 2
第一章 前言 3
1.1 仓库管理系统的背景与意义 3
1.2系统可行性研究 4
第二章 系统分析与设计 5
2.1相关技术介绍 5
2.1.1 J2EE相关原理及技术简介 5
2.1.2 Servlet 5
2.1.3 JSP简介 6
2.1.4 J2EE简介 6
2.1.5 EJB 6
2.1.6 Struts 7
2.1.7 Hibernate 9
2.2系统分析 9
2.2.1系统需求分析 9
2.2.2系统功能设置 10
第三章 数据库设计 12
3.1 E - R图 13
3.2数据表 14
第四章 系统界面与功能实现 18
4.1入库模块的实现 18
4.2出库模块的实现 20
4.3盘点模块的实现 22
4.4计量单位设置模块的实现 23
4.5货物存储信息查询模块的实现 25
第五章 总结 27
参考文献 27
致谢 27
仓库管理系统
摘 要
随着经济的不断繁荣以及加入WTO后市场环境的变化,对企业的生产经营提出了更高的要求,企业必须综合利用各种先进制造技术,在网络与信息技术的支持下,改进现在的生产经营模式和组织结构,才能在市场竞争中赢得更多的份额。随着企业规模的扩大,仓库管理系统将发挥越来越重要的作用。
本文所设计的仓库管理系统以标准的仓库管理模式为蓝本,基于JSP开发出一个可以用于一般单位的仓库管理系统,实现了仓库管理的高效性与安全性。系统主要提供一个仓库业务及其作业管理的信息存储和检索系统。通过入库管理、出库管理、仓库人员管理等功能模块来实现仓库的综合管理。
关键词:仓库管理系统, JSP, 模块化设计,货物登记
第一章 前言
本论文以标准的仓库管理模式为蓝本,根据软件工程的理论,开发出基于JSP的适用于中小单的位仓库管理系统。
论文首先研究了系统开发的可行性,然后进行了需求分析,然后根据需求分析采用了结构化分析方法进行了系统分析设计,并进行了数据库的建模工作,根据模型构建了数据库。后台数据库采用MYSQL完成。基于开放的开发架构JSP实现了系统登录模块、主窗口模块、仓库人员管理模块、入库模块、出库模块等。最后对全文进行了总结,对今后的工作提出了展望。
1.1 仓库管理系统的背景与意义
物流是有形物品从出发点到最终消费点的流动存储活动,具体包括运输、保管、包装、装卸、搬运、流通加工及信息处理,从职能上可以分为:供应物流、生成物流、销售物流、回收物流和废弃物流五个职能。
从70年代开始,计算机技术开始应用到物流领域。随着物流市场和物流信息化的发展,物流软件市场也应运而生并迅速发展起来,国内外出现了一大批物流软件供应商和物流软件。“物流软件作为管理软件,较其它应用软件呈现先进性、高效性、可靠性和安全性等特点;较其它管理软件,如ERP(Enterprise Resource Planning),具有以下特点:实施风险小,实施迅速;效益显著、见效快。
根据物流软件结构分类,就目前物流软件所使用的应用范围来说,物流软件包括如下几个子系统:WMS(Warehouse Management System,仓库管理系统)、TMS(Transportation Management System,运输管理系统)。OMS(Order Management System,定单管理系统)、SMS(Service Management System,服务管理系统)。其中,WMS主要提供了一整套仓库业务以及作业管理系统。通过仓库管理系统可以实现库位分配自动化和智能化;提高仓库作业效率和速度,提供准确的库存信息,并使之与实际库存变化同步。
根据中国物流与采购联合会统计,2001年,中国与物流相关的年总支出为19000亿元人民币,物流成本占GDP的比重为20%左右。我国企业的物流支出成本约占总成本的30%,而国外企业的物流支出成本仅为7%。物流成本的巨大差距,抵消了我国企业在原材料和人工上的成本优势,降低了我国企业的竞争力。国内的很多企业,由于信息的记录、收集、汇总、处理分析还处于比较低的水平,记录中信息分散、格式随意、应用单一,收集中不及时、不全面、不完善、保留不科学,汇总时口径不一、主题多元、结果不一,处理分析方法落后、效率低下、只有短期,难以支持趋势等。
随着企业规模的扩大,管理信息系统也发挥越来越重要的作用。作为企业管理信息系统关键组成部分的仓库管理系统的应用给企业带来巨大的效益。采用仓库管理系统将使企业改变其传统的手工记录模式,应用数据库技术使海量数据的存储与处理成为很方便的事情,这样可大幅缩短主要业务流程的处理时间,提高对市场的响应能力。
仓库管理系统是通过入库业务、出库业务、库存调拨、库存调整,结合批次管理、物料对应、库存盘点、质检管理、实时库存管理等功能综合运用的管理系统,对库存业务的物流和成本管理全过程进行有效控制和跟踪,实现完善的企业仓库信息管理。仓库管理系统的投入,将使仓库的管理更加正规化,为产品的出入库管理部门和销售部门提供了方便,降低了仓库的损耗。企业可以对售出的产品进行跟踪服务,同时也免去了销售人员按以往惯例亲自前往用户处去核实货物情况的麻烦,提高了办事效率,节省了费用,而且还避免了不必要的业务纠纷,维护了企业长期与用户建立的良好信誉。
1.2系统可行性研究
1.技术可行性
根据客户提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发。
本系统基于JavaEE架构,采用了较为成熟的开发模式。前端用Struts1.2,业务逻辑采用EJB3.0 的无状态会话Bean,持久映像层采用hibernate 1.3模式,应用服务器使用了使用最广泛的BEA Weblogic Server。
2.经济可行性
估算新系统的成本效益分析,其中包括估计项目开发的成本,开发费用和今后的运行、维护费用,估计新系统将获得的效益,估算开发成本是否回高于项目预期的全部经费。并且,分析系统开发是否会对其它产品或利润带来一定影响。
(1)支出:
基础投资:
硬件设备:PC机
软件设备:WINDOWS 2000、BEA Weblogic Server 10
其它一次性支出:软件设计和开发费用
经常性支出:软件维护费用、软件使用费用。
(2)效益:
系统的效益可以从经济效益和社会效益两方面考虑。对于仓库管理系统则应着重分析其社会效益。例如,系统投入运行后可以使仓库管理实现科学化、规范化。曾强了工作人员对仓库管理能力、提高了工作效率。
3.运行可行性
新系统的研制和开发是充分得考虑工作人员对仓库的易于管理,管理者方便查询设备信息效率。从而能完全满足使用者的要求。
4.法律可行性
新系统的研制和开发,将不会侵犯他人、集体和国家的利益,不会违反国家政策和法律。
第二章 系统分析与设计
在设计软件系统之前,首先必须确定用户究竟要求软件系统完成什么任务,所以分析阶段的基本任务是了解用户的需求,并将用户的需求用书面形式表达出来。这个阶段还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。系统分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。在全面客观的系统分析的基础上,根据用户提出的系统功能进行相应的功能设计。
2.1相关技术介绍
2.1.1 J2EE相关原理及技术简介
J2EE规范定义了一个完善的应用组件技术框架,作为企业级应用系统基本构造模块的组件就是建立在这个框架之上。从简单的Web应用到复杂的分布式企业级应用,几乎所有的业务应用,都可以在此技术框架基础上构造。本文中使用的组件技术主要有三种类型:JSP、servlet和Enterprise JavaBean。
2.1.2 Servlet
Servlet是一些用来扩展Web服务器功能的Web组件,它基于请求/响应机制。Servlet从客户端(例如Web浏览器)获得请求,然后,将响应结果返回客户端。Servlet的这种特点使它非常适合于Web应用。Servlet和EJB组件的区别在于EJB组件所提供的服务器端组件特性并不能全部适用于Servlet,Servlet更适合于处理简单的请求/响应任务,而且它不需要应用服务器所提供的复杂服务的支持。
2.1.3 JSP简介
JSP(Java Server Pages)是由Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准,JSP技术在Servlet技术基础上发展起来的,它正在飞速发展中,现已成为Java服务器编程的重要组成部分。它虽然还未成型,但是它必将和J2EE(Java 2 Enterprise Edition)一起发展。
JSP是结合markup(HTML和XML)和Java代码来处理一种动态页面。每一页第一次被调用时,通过JSP引擎自动被编译成Servlet,然后被执行,以后每次调用时,执行编译过的Servlet。JSP提供了多种方式访问Java class、Servlet、Applets和Web Server,因此,Web应用的功能可以分成多个明确定义公用接口的组件,通过JSP将它们结合在一起。
2.1.4 J2EE简介
企业级多层应用系统的开发一直面临着重大挑战。开发商和广大程序员一直在努力推动和殷切期待一个成熟的、标准的企业级应用平台来简化和规范企业级应用系统的开发和部署。Java技术的出现,尤其是J2EE(Java2 Platform Enterprise Edition)平台的推出正是这种努力的结果,也使得企业级应用系统的开发由此变得更加快速和方便。需要指出的是,J2EE本身是一个标准,它为不同厂商创建平台产品提供了标准,使不同J2EE平台产品之间的交互成为可能。
SUN及其合作方将J2EE 1.5改名为Java EE 5,但是其架构跟改名前的J2EE没有区别。只是通过增强一些技术使得我们更快、更容易、更简单地开发企业应用程序。
2.1.5 EJB
EJB(Enterprise JavaBeans)是J2EE平台的核心,也是J2EE得到业界广泛关注和支持的主要原因。我们知道,J2EE的一个主要目标就是简化企业级多层应用系统的开发,使得程序员将主要精力放在业务逻辑的开发上。EJB正是基于这种思想的服务器端技术,它本身也是一种规范,该规范定义了一个可重用的组件框架来实现分布式的、面向对象的业务逻辑。EJB的核心思想是将业务逻辑与底层的系统逻辑分开,使开发者只需关心业务逻辑,而由EJB容器实现目录服务、事务处理、持久性、安全性等底层系统逻辑。
根据功能不同,规范中定义了三种Enterprise JvavaBean:会话Bean(Session Bean)、实体Bean(Entity Bean)和消息驱动Bean(Message-Driven Bean)。
会话Bean分为无状态和有状态两种。一般无状态的会话Bean模拟商业逻辑,比如计算价格等。有状态的会话Bean通常模拟一个客户会话,它会临时保存客户信息,根据客户要求调用其它Bean来存取数据。两种会话Bean都不保存状态信息或者数据,当客户断开连接或者服务器关闭时,会话Bean也就随之消失。一个会话Bean的典型例子是网站上的购物车。
实体Bean模拟业务数据,它表示一个数据存储,可以是状态信息或者数据库中的一条记录。实体Bean在客户断开连接或者服务器关闭后,仍有服务保证其数据得以保存。
消息驱动Bean在行为上很象会话Bean。不同的就是仅在需要向这些Bean发送消息时才调用消息驱动Bean,比如在需要的时候发送用户确认信息等。
2.1.6 Struts
1.STRUTS发展
下图是Struts的工作流程,所有的请求都提交给ActionServlet来处理。
图2-1 Struts 工作流程图
Struts框架工具是Apache基金会Jakarta项目中推出的一个子项目。Struts在英文中是支架、支撑的意思,这也体现出Struts在开发Web应用程序过程所起到的重要作用,Struts为Web应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时Struts框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用 Struts 可以简化遵循MVC设计模式的Web应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 JSP/Servlet优点、并具有强可扩展性的Web应用。总之,Struts的出现使得Web应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。
Struts架构一经推出,即受到Java开发群体的广泛重视,从 2004 年开始逐渐升温,并日渐成为Java创建Web应用开发的最流行的框架工具,在目前Java Web程序员的招聘要求中,几乎都提出了对Struts的要求,精通Struts 架构已经成为Java Web程序员必备的技能
2.MVC简介
模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。
A.模型(Model)
模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑。
b.视图(View)
视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。
c.控制器(controller)
控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。
2.1.7 Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
2.2系统分析
2.2.1系统需求分析
1.货物入库和出库的管理
仓库是用来存放货物的,货物进入仓库要进行登记记录,货物从仓库出库也要进行登记记录,这是仓库管理的主要内容。货物进入仓库,从入库申请的人员向执行货物入库的仓库保管员提交货物开始。
入库申请人向仓库管理员提交货物和入库申请单,入库申请单记录本次入库的货物名称、数量、提交货物的单位、执行提交货物的人员以及货物注意事项等信息。库管依据送货人员提供的入库申请单对待入库货物进行检查。若待入库货物与入库申请单信息一致,则允许入库;若不一致,则禁止入库,请提交货物的单位重新出具入库申请单。对允许入库的货物,执行库管要对货物的信息进行登记,这些信息包括入库货物名称、入库数量、入库时间、送货入库人员的信息、执行货物入库的执行人。进行登记后,将货物存入仓库。货物存入仓库后,执行入库操作的库管给提出入库申请的入库人员开具入库单,入库流程结束。
货物从仓库中出库,是从需求货物的出库单位出库人员向执行出库操作的库管提交出库申请开始的。
首先,出库人员向库管提交出库申请单。出库申请记录申请出库的货物名称、申请出库的数量、申请出库的单位、执行出库申请的人员等信息。执行出库的库管首先对出库单的真伪进行检验。对有效的出库单,依据其要求出库的货物名称查找仓库库存货物的信息和此货物的库存数量。如果有此货物,并且其库存数量满足出库申请单的数量,则执行出库操作的库管保存出库申请单并进行出库登记。在出库登记中,执行库管要记录出库货物的名称、出库数量、出库后剩余数量、出库时间、货物去向、出库的仓库、执行出库的库管名称等信息。进行出库登记后,将货物出库。出库结束后,执行库管给提出出库申请的出库人员开具出库单,出库流程结束。
2.出库入库记录的查询
仓库的管理人员要对仓库存储的货物信息、入库记录和出库记录等及时掌握,这样才能及时了解仓库的运行现状,才有可能会使仓库处在良好的运行状态。所以,一般仓库管理过程中要能提供仓库的入库、出库记录的查询功能,供管理人员使用,所以,对入库、出库记录的查询是仓库管理系统的重要功能之一。
3.货物信息的管理
仓库要存放货物,关于这些货物本身的信息,对货物的正常存储是非常重要的,例如,哪些货物需要防潮,哪些货物需要轻搬轻放等,所以,对货物本身的信息的登记、管理是仓库管理的重要内容。
4.其他信息的管理
除了以上提到的一些功能外,仓库管理系统还应该能对一些其他的信息进行管理。例如,对每个仓库来说,都有一些存储位置用来存放货物,仓库管理过程中包括对这些存储位置进行的管理;每个仓库都有一些仓库管理员,对这些仓库管理员的管理也是仓库管理系统的功能之一。
2.2.2系统功能设置
2根据仓库管理系统的需求,划分了系统的功能模块,如图3-1所示:
仓库管理
基础数据
库存管理
员工管理
货物管理
编码设置
添加用户
查询用户
删除用户
货物信息录入
货物信息查询
货物信息盘点
仓库设置
操作类型设置
部门设置
计量单位设置
初期设置
入库操作
盘点信息录入
移库操作
出库操作
图2-2 系统功能概述图
1.入库功能模块
入库功能主要是实现登记入库记录的功能。这些信息应包括入库类型、产品名称、入库数量和入库时间信息、执行入库操作的操作员信息和货物存放仓库的信息等。入库登记功能产生货物的入库记录,为以后进行入库货物的查询和出库操作产生操作数据,供管理人员掌握仓库内存储的货物情况。如图3-2所示
产品入库管理
入库时间
入库数量
产品名称
入库类型
图 2-3 入库功能模块图
2.出库功能模块
出库功能主要是实现登记出库货物信息的功能。这些出库记录包括出库申请单据信息、出库数量和出库时间信息、执行出库操作的库管信息和货物剩余信息等。出库功能依据入库登记功能产生的入库记录产生货物的出库记录,将出库记录存入系统,为以后的出库记录查询以及掌握仓库货物存储情况作基础。如图2-4所示
产品出库管理
出库时间
出库数量
产品名称
出库类型
序号
图2-4 出库功能模块图
3.盘点功能模块
此模块通过定期对仓库信息做清点,有效的了解了货物的流通情况和仓库货物的损耗情况。方便对货物信息的管理。如图2-5所示
产品出库管理
序号
产品名称
产品类型
产品规格
计算单位
产品客户
产品警戒线
库存量
盘点日期
图2-5 盘点功能模块图
4.计量单位设置模块
当新增加计量单位时,在这里输入即可将新增的计量单位信息保存到数据库。如图2-6所示
产品类型
计算单位管理
产品类别管理
客户管理
产品管理
图2-6计量单位设置模块图
5 货物存储信息查询模块
用于查询货物存储表里的信息,即在入出库后对应的操作的部分展示。。如图-6所示。
产品类别管理
盘点日期
产品客户
产品规格
产品类型
图2-7 货物存储信息查询模块图
第三章 数据库设计
数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,即数据库就是相关信息的集合。本章从E-R模型的分析设计为切入点,重点介绍了数据库的设计。
3.1 E - R图
数量
货物存储
仓库
仓库编号
仓库名
仓库地
负责人
货物种类
货物编号
货物规格
货物名称
仓库编号
货物单价
最高进价
货物简称
最低售价
货物信息
建档人
货物重量
更改人
货物体积
更改时间
计算单位
盘点周期
对应供应商
最低库存量
当前时间
安全库存
上次盘点时间
最高库存量
图3-1 仓库、货物E-R图
盘点日期
盘点人
盘点单号
盘点
调整数量
盘点日期
实际数量
账面数量
盘点明细
货物信息
安全库存
最低库存量
上次盘点时间
当期数量
盘点周期
货更改日期
更改人
货物体积
建档人
货物种类
最低售价
最高进价
仓库编号
货物简称
货物单价
货物规格
货物种类
货物编号
最高库存量
货物重量
对应供应商
实际存库量
合理存库量
存库原因
确认人
制单人
仓库编号
图3-2 货物、盘点E-R
3.2数据表
(1) 仓库表(WH)
仓库表主要有仓库编号,仓库名,仓库的负责人,仓库地址。
表3-1 仓库表
列名
数据类型
长度
允许空
默认值
说明
whID
char
4
仓库编号
Name
varchar
20
仓库名
whPerson
varchar
10
负责人
whAddr
varchar
100
仓库地址
(2) 货物信息表 (GDMESS)
货物信息表主要有货物编号,货物名称,货物简称,货物种类,货物规格型号,货物单价,单位重量,单位体积,计量单位,默认供应商,最低库存量,最高库存量,安全库存,仓库编号,最高进价,最低售价,建档人,更改人,更改时间,当前数量,上次盘点时间。
表3-2 货物信息表
列名
数据类型
长度
允许空
默认值
说明
goodsID
char
8
货物编号
goodsName
varchar
30
货物名称
shortName
varchar
20
NULL
货物简称
goodsClass
varchar
10
货物种类
goodsStd
varchar
20
货物规格型号
Price
double
8
货物单价
Weight
double
8
NULL
单位重量
Volume
double
8
NULL
单位体积
unitID
char
8
计量单位
Vendor
varchar
20
默任供应商
lowQuantity
int
8
最低库存量
highQuantity
int
8
最高库存量
safeQuantity
int
8
安全库存
whID
char
8
仓库编号
highPrice
double
8
最高进价
lowPrice
double
8
最低售价
Builder
varchar
10
建档人
modiPerson
varchar
10
NULL
更改人
modiTime
datetime
8
NULL
更改时间
nowQuantity
int
8
当前数量
lastCleckTime
datetime
8
NULL
上次盘点时间
(3) 货物存储表(GDST)
货物储存表主要有货物编号,仓库编号及其数量
表 3-3 货物储存表
列名
数据类型
长度
允许空
默认值
说明
goodsID
char
8
货物编号
whID
cahr
8
仓库编号
Quantity
int
8
数量
(4) 操作类型表(OPST)
操作类型表主要有操作类型编码,操作类型名称
表 3.4 操作类型表
列名
数据类型
长度
允许空
默认值
说明
opeTypeID
char
8
操作类型编码
opeTypeNa
varchar
20
操作类型名称
(5) 库存记录主表(MSTOCK)
库存记录主表主要有单据号,操作类型单据类型,仓库编号,所属部门,业务员,时间,供应商,客户,合计金额,订货单号,收货单号,发票号,发货单号,备注。
表 3.5 库存记录主表
列名
数据类型
长度
允许空
默认值
说明
Code
char
8
单据号
opeTypeID
char
8
操作类型
vouchType
char
8
单据类型
whID
char
8
仓库编号
Depart
char
20
所属部门
Clerk
varchar
20
NULL
业务员
Operator
varchar
20
操作员
opTime
datetime
8
时间
Vendor
varchar
20
NULL
供应商
Customer
varchar
20
NULL
客户
Summ
double
10
合计金额
orderCode
Char
8
NULL
定货单号
receiveCode
Char
8
NULL
收货单号
invoiceCode
Char
8
发票号
dispatchCode
Char
8
NULL
发货单号
Memo
varchar
100
NULL
备注
(6) 库存记录明细表(STOCK)
库存记录明细表主要有单据号,货物编号,计量单位,货物单价,货物数量。
表 3.6 库存明细表
列名
数据类型
长度
允许空
默认值
说明
Code
Char
8
单据号
goodsID
Char
8
货物编号
Unit
Char
8
计量单位
Price
double
8
货物单价
Quantity
Int
8
货物数量
(7) 盘点表(MCHECK)
盘点表主要有盘点单号,盘点日期,盘点人,仓库编号,批准人,制单人。
表 3.7 盘点表
列名
数据类型
长度
允许空
默认值
说明
CVCode
char
8
盘点单号
CheckDate
datetime
8
盘点日期
checkPerson
varchar
20
盘点人
whID
char
8
仓库编号
Opprover
varchar
20
批准人
Maker
varchar
20
制单人
(8) 盘点明细表(CHECKVOUCHS)
盘点明细表主要有盘点单号,货物编号,账面数量,实际数量,盘点日期,调整数量,实际损耗率,合理损耗率,损耗原因。
表 3.8 盘点明细表
列名
数据类型
长度
允许空
默认值
说明
CVCode
char
8
盘点单号
goodsID
char
8
货物编号
bookQuantity
Int
8
帐面数量
actQuantity
Int
8
实际数量
checkDate
datetime
8
盘点日期
adjQuantity
Int
8
调整数量
actualWaste
double
8
实际损耗率
allowWaste
double
8
合理损耗率
Reason
varchar
100
NULL
损耗原因
(9) 计量单位表(UNIT)
计量单位表主要有计量单位编号,计量单位名称。
表 3.9 计量单位表
列名
数量类型
长度
允许空
默认值
说明
unitID
Char
8
计量单位编号
unitName
Varchar
8
计量单位名称
(10) 部门表(DEPT)
部门表主要有部门编号,部门名称,总人数。
表 3.10 部门表
列名
数量类型
长度
允许空
默认值
说明
deptCode
Char
8
部门编号
deptName
Varchar
20
部门名称
Depac
Int
8
NULL
总人数
(11) 员工表(EMP)
员工表主要有员工号,员工姓名,性别密码,联系方式,备注
表 3.11 员工表
列名
数量类型
长度
允许空
默认值
说明
empCode
Char
8
员工号
empName
Varchar
20
员工姓名
empSex
Char
2
NULL
性别
Password
Varchar
20
‘123’
密码
empTel
Varchar
15
联系方式
Memo
Varchar
100
NULL
备注
(12) 移库表(MOVESTOCK)
移库表主要有记录号,货物编号,源仓库,目的仓库,计量单位,数量,移库时间,操作员。
表 3.12 移库表
列名
数量类型
长度
允许空
默认值
说明
autoid
Int
8
记录号
goodesid
varchar
20
货物编号
source
Char
20
源仓库
target
Char
20
目的仓库
unit
Char
20
计量单位
quantity
Int
8
数量
opDate
datetime
8
NULL
移库时间
operator
varchar
20
NULL
操作员
第四章 系统界面与功能实现
4.1入库模块的实现
当某种已有物品进货后,就需要在此输入库存记录信息,并同时输入相应货物入库信息,并加入到库存中,为以后进行入库货物的查询和出库操作产生操作数据,供管理人员掌握仓库内存储的货物情况。界面如图5-1所示。
。
图 4-1入库模块
主要代码:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
String mark = request.getParameter("mark");
String id = request.getParameter("id");
String name = request.getParameter("name");
String str = "";
String sql = "";
InsertUpdateDelBean ib = new InsertUpdateDelBean();
//入库
if(mark != null && mark.equals("add")){
str = "/admin/entrytype_list.jsp";
sql = "insert into entrytype(name) values('"+name+"')";
int flag = ib.insertANDupdateANDdel(sql);
if(flag == -1){
str = "/admin/entrytype.jsp";
request.setAttribute("message", "入库类型名称重复!");
}else{
request.setAttribute("message", "操作成功!");
}
}
if(mark != null && mark.equals("update")){
str = "/admin/entrytype.jsp?mark="+mark+"&id="+id;
sql = "update entrytype set name='"+name+"' where id="+id;
int flag = ib.insertANDupdateANDdel(sql);
if(flag == -1){
request.setAttribute("message", "入库类型名称重复!");
}else{
request.setAttribute("message", "操作成功!");
}
}
RequestDispatcher rd=request.getRequestDispatcher(str);
rd.forward(request,response);
}
4.2出库模块的实现
当库存中某种需要出库的时候,就需要在此输入库存记录信息,并同时输入相应货物出库信息,并保存到相应数据表中。为以后的出库记录查询以及掌握仓库货物存储情况作基础。界面如图
4-2所示
图 4-2产品出库
主要代码:
public class GetouttypeServlet extends HttpServlet {
public GetouttypeServlet() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
Public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
Public void doPost(HttpServletRequest request, HttpServletResponse response)
//从数据库
展开阅读全文