jsp仓储管理系统设计程序源代码+说明文档出库入库库存管理
小组成立这初,想着借鉴一下以上那些管理系统软件设计一个工业、商业企业均可使用的仓储物资管理系统,那样子首先得给仓库分类,如仓库可分为材料库、成品库,入库方式可分为原材料入库、产成品入库、生产易耗品入库、调拨入库等,甚至还涉及到发票税金以及管理员权限方面。后来经过小组成员的讨论,要开发一个系统实现那些功能在这短短的几个星期里实在难于实现。原先列出的十几张表删了又删,最后只留下了五张表。最后决定下来的方案只能在一定程度上实现仓储物资管理系统的基本功能。2.2系统功能我们设计的仓储物资管理系统从功能上实现如下三大板块的功能:一.数据写入包括 “新产品入库”“填写客户资料”“填写供应商资料”二.数据修改包括“普通入库”,“删除记录”“已有产品入库”三.数据查询包括“库存查询”,“出库单查询”,“入库单查询”,“单件物品查询”“查询客户资料”,“查询供应商资料”2.3需求分析简略图关系模式存取方法选择存取方法是快速存取数据库中数据的技术。数据库管理系统一般都是提供多种存取方法。
一 软件运行环境
运行环境 | 基本配置 |
操作系统 | Window98/2000/XP |
CPU | Penitium166以上兼容机种 |
内存容量 | 64M |
硬盘容量 | 780M |
服务器软件 | resin3.0.8 |
数据库软件 | Access 2003 |
开发工具 | JDK1.5,Macromedia Dreamweaver MX 2004 |
开发语言 | html,CSS,jsp,javascript |
二 需求分析
2.1项目背景
本学期的学习我们接触了一些企业管理的系统软件,如速达3000和用友ERP等。小组成立这初,想着借鉴一下以上那些管理系统软件设计一个工业、商业企业均可使用的仓储物资管理系统,那样子首先得给仓库分类,如仓库可分为材料库、成品库,入库方式可分为原材料入库、产成品入库、生产易耗品入库、调拨入库等,甚至还涉及到发票税金以及管理员权限方面。后来经过小组成员的讨论,要开发一个系统实现那些功能在这短短的几个星期里实在难于实现。原先列出的十几张表删了又删,最后只留下了五张表。最后决定下来的方案只能在一定程度上实现仓储物资管理系统的基本功能。
2.2系统功能
我们设计的仓储物资管理系统从功能上实现如下三大板块的功能:
一.数据写入
包括 “新产品入库”“填写客户资料”“填写供应商资料”
二.数据修改
包括“普通入库”,“删除记录”“已有产品入库”
三.数据查询
包括“库存查询”,“出库单查询”,“入库单查询”,“单件物品查询”
“查询客户资料”,“查询供应商资料”
2.3需求分析简略图
仓储管理 |
更新 |
业务查询 |
仓库货品资料管理 |
查询 |
出库 |
入库 |
基本资料 查询 |
图2.1.需求分析简略图
三.概念设计
3.1业务流程
供应商 |
入库 |
仓库 |
出库 |
客户 |
图2.业务流程
3.2各实体E—R图
供应商 |
供应商名 |
地址 |
电话 |
供应商编号 |
图2.2.供应商资料E—R图
顾客 |
顾客名 |
地址 |
电话 |
顾客编号 |
图2.3.顾客资料E—R图
入库单 |
日期 |
货品号 |
货品名 |
单号 |
数量 |
图2.4. 入库单E—R图
出库单 |
日期 |
货品号 |
货品名 |
单号 |
数量 |
图2.5 出库单E—R图
货品 |
货品名 |
供应商 |
录入日期 |
编号 |
余量 |
图2.6 货品资料E—R图
管理员 |
账号 |
密码 |
图2.7 管理员信息E—R图
3.3仓储存储系统总E—R图
供应商 |
入库 |
仓库 |
出库 |
客户 |
入库单 |
出库单 |
图3.1. 仓储存储系统总E—R图
3.4数据字典
数据字典表
字段名 | 数据类型 | 含义说明 | 空值情况 | 备 注 |
bid | 文本(50) | 顾客号 | 不可为空 | |
bname | 文本(50) | 顾客名 | 可为空 | |
badress | 文本(50) | 顾客地址 | 可为空 | |
bel | 文本(50) | 顾客电话 | 可为空 | |
sid | 文本(50) | 供应商号 | 不可为空 | |
sname | 文本(50) | 供应商名 | 可为空 | |
sadress | 文本(50) | 供应商地址 | 可为空 | |
stel | 文本(50) | 供应商电话 | 可为空 | |
fno | 文本(50) | 入库单号 | 不可为空 | |
fdate | 日期/时间(短日期) | 入库日期 | 可为空 | |
pid | 文本(50) | 货品号 | 不可为空 | |
number | 文本(50) | 货品数量 | 可为空 | |
sname | 文本(50) | 供应商名 | 可为空 | |
ofno | 文本(50) | 出库单号 | 不可为空 | |
ofdate | 日期/时间(短日期) | 出库日期 | 可为空 | |
bname | 文本(50) | 顾客名 | 可为空 | |
pname | 文本(50) | 货品名 | 可为空 | |
redat | 日期/时间(短日期) | 录入日期 | 可为空 | |
rest | 文本(50) | 余量 | 可为空 | |
username | 文本(18) | 管理员用户名 | 不可为空 | |
userpwd | 文本(18) | 密码 | 可为空 |
3.5 数据库的逻辑设计
1)E-R图转换为关系表
仓储物资管理系统(实体转化为关系模式)
供应商(供应商号,供应商名,供应商地址,供应商电话)
客户(客户号,客户名,地址,客户电话)
入库单(入库单号,入库日期,货品号,数量,供应商)
出库单(出库单号,出库日期,货品号,数量,顾客)
货品(货品号,货品名,供应商,录入日期,余量)
管理员(用户名,密码)
2)基本表关系信息:
数据库表名1:suplier(供应商资料表)
字段名 | 数据类型 | 含义说明 | 空值情况 | 备 注 |
sid | 文本(50) | 供应商号 | 不可为空 | 主键 |
sname | 文本(50) | 供应商名 | 可为空 | |
sadress | 文本(50) | 供应商地址 | 可为空 | |
stel | 文本(50) | 供应商电话 | 可为空 |
数据库表名2:buyer(顾客资料表)
字段名 | 数据类型 | 含义说明 | 空值情况 | 备 注 |
bid | 文本(50) | 顾客号 | 不可为空 | 主键 |
bname | 文本(50) | 顾客名 | 可为空 | |
badress | 文本(50) | 顾客地址 | 可为空 | |
bel | 文本(50) | 顾客电话 | 可为空 |
数据库表名3:inform(入库单表)
字段名 | 数据类型 | 含义说明 | 空值情况 | 备 注 |
fno | 文本(50) | 入库单号 | 不可为空 | 主键 |
fdate | 日期/时间(短日期) | 入库日期 | 可为空 | |
pid | 文本(50) | 货品号 | 可为空 | |
number | 文本(50) | 货品数量 | 可为空 | |
sname | 文本(50) | 供应商名 | 可为空 |
数据库表名4:outform(入库单表)
字段名 | 数据类型 | 含义说明 | 空值情况 | 备 注 |
ofno | 文本(50) | 入库单号 | 不可为空 | 主键 |
ofdate | 日期/时间(短日期) | 入库日期 | 可为空 | |
pid | 文本(50) | 货品号 | 可为空 | |
number | 文本(50) | 货品数量 | 可为空 | |
bname | 文本(50) | 供应商名 | 可为空 |
数据库表名5:products (产品信息表)
字段名 | 数据类型 | 含义说明 | 空值情况 | 备 注 |
pid | 文本(50) | 货品号 | 不可为空 | 主键 |
sname | 文本(50) | 供应商名 | 可为空 | |
pname | 文本(50) | 货品名 | 可为空 | |
redat | 日期/时间(短日期) | 录入日期 | 可为空 | |
rest | 文本(50) | 余量 | 可为空 |
数据库表名6:user_table (用户信息表)
字段名 | 数据类型 | 含义说明 | 空值情况 | 备 注 |
username | 文本(18) | 管理员用户名 | 不可为空 | 主键 |
userpwd | 文本(18) | 密码 | 可为空 |
3.6 数据库物理设计
1)关系模式存取方法选择
存取方法是快速存取数据库中数据的技术。数据库管理系统一般都是提供多种存取方法。常用的存取方法有三类。第一类的索引方法,目前主要是B+树索引方法,B+树索引方法是数据库中经典的存取方法,使用最普遍;第二类是聚簇(Cluster)方法;第三类是HASH方法。在本系统中的存取方法采取的是索引方法。
2)确定数据库的存储结构
确定数据库物理结构主要指确定数据的存放位置和存储结构,包括:确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。
1.确定数据的存放位置
为了提高系统性能,应该根据应用情况将数据的易变部分和稳定部分、经常存取部分和存取频率较低部分分开存放。本系统数据库的数据文件和日志文件存储在“%System%\mydb”文件夹中。当应用环境改变或对数据库系统提供的方法或参数有进一步了解时,再对数据进行适当的物理安排。
2.确定系统配置
DBMS产品一般都提供了一些系统配置变量,存储分配参数,供设计人员和DBA对数据库进行物理优化。初始情况下,系统都为这些变量赋予了合理的默认值。但是这些值不一定适合每一种应用环境,在进行物理设计时,需要重新对这些变量复制,以改善系统的性能。在本系统中,系统配置采用Access的默认值,并没有使系统性能达到最佳,日后可以的话再对变量、参数进行修改调整。
四、系统实施与维护
4.1 数据载入和系统的编码调试
一般数据库系统中,数据量都很大,而且数据来源于部门中的各个不同的单位,数据的组织方式、结构和格式都与新设计的数据库系统有相当的差距。组织数据录入就要将各类源数据从各个局部应用中抽取出来,输入计算机,再分类转换,最后综合成符合新设计的数据库结构的形式,输入数据库。因此这样的数据转换、组织入库的工作是相当费力、费时的。
为提高数据输入工作的效率和质量,应该针对具体的应用环境设计一个数据录入子系统,由计算机来完成数据入库的任务。在源数据入库之前进行检验,以防止不正确的数据入库,比如日期的输入。因为对嵌套与控件的技术不是很熟悉,本系统在这方面做得不是很好。
数据库应用程序的设计应该与数据库设计同时进行,因此在组织数据入库的同时还要调试应用程序。如果调试的结果与设计目标不符,则要返回物理设计阶段,重新调整物理结构,修改系统参数。某些情况下甚至要返回逻辑设计阶段,修改逻辑结构。有调试时有两点要注意:1、先输入小批量数据做调试用,待调试运行基本合格后,再大批量输入数据,再大批量输入数据,逐步增加数据量,逐步完成评价;2、在调试前应做好数据的恢复功能,做好转存与备份工作,以免造成不必要的损失。
本系统利用Access数据库进行数据的载入,同时利用JSP语言进行应用程序的开发,并在resin服务器环境下调试通过。
4.2 系统运行与维护
系统调试成功后,开始投入运行。没有什么系统是可以一蹴而就的,由于环境在不断变化,在数据库系统运行过程中必须不断地对其进行评价、调整与修改。包括:数据库的转储和恢复、数据库的安全性、完整性控制、数据库性能的监督、分析和改进、数据库的重组织和重构造。
五、用户使用说明
5.1 仓储管理员系统使用说明
1)学生用户登录
如图5-1,这是仓储系统的打开界面。点击按钮即可进入管理员注册或登录界面。
图5.1 系统进入页面
在输入框中输入管理员的帐号和密码,即可登录。点击系统注册可以注册新的用户。
图5.2系统注册页面
图5.3系统登录页面
2)主页界面
如图5-2,仓库存储管理系统的主界面清楚标明了该系统的基本功能。在页面的左侧是系统的导航栏,分别有“产品入库”、“产品出库”、“查询”、“供应商与客户”四个选项。
图5.4 仓储管理系统主界面
3)信息维护
如图5-3,这是系统的“供应商与客户”页面。在页面中刘的菜单中,设有“填写客户资料”、“查询客户资料”、“填写供应商资料”、“查询供应商资料”四个项目,选择相应的项目即可进行相应操作。而关于客户资料与供应商资料以及产品的删除功能,本系统放在了出入库操作的项目中。
图5.5 系统“供应商与客户”页面
4)业务操作
本系统通过“产品出库”与“产品入库”对产品的数量进行增减操作,对产品的品种进行增删操作。“产品入库”包括“已有产品入库”与“新产品入库”;“产品出库”包括“普通入库”与“删除记录”(即对仓库里库存量为零的货品记录进行删除)。
图5.6“产品出库”与“产品入库”的选择页面
进入入库单的填写页面,在这里可以对入库单单号、入库日期、生产商、产品编号、产品数量进行登记。确认入库后则入库单填写成功。刷新页面,在库存里可以见到新增加的产品已入库。出库单的操作与入库单的操作类同,在此不再详述。
图5.7入库单填写页面
图5.8出库单填写页面
5)业务查询
业务查询功能可能过“入库单资料查询”,“出库单资料查询”,“单件货品资料查询”完成。下面是这三种查询的查询窗口。
图5.9入库单资料的查询
图5.10出库单资料的查询
图5.11单件货品资料查询
图5.12货品资料查询结果
图5.13客户资料的查询
图5.14客户资料查询结果
图5.15客户资料填写页面
图5.16更新后的客户资料页面
6)退出系统
按下系统导航栏的“退出系统”选项即可退出系统。
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>仓储信息管理系统索引</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
}
-->
</style></head>
<body>
<div align="center">
<p> </p>
<p> </p>
<p> </p>
<table width="52%" border="0.1">
<tr>
<td height="396" background="images/index.gif"><div align="center">
<p> </p>
<p align="left"> </p>
<p align="left"> <a href="zhuce1.html" target="_top"><img src="images/zhucetittle.gif" width="132" height="28" border="0" /></a></p>
<p align="left"> <a href="denglu1.html"><img src="images/denglutittle.gif" width="136" height="29" border="0" /></a></p>
</div></td>
</tr>
</table>
</div>
</body>
</html>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>仓储信息管理系统索引</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
}
-->
</style></head>
<body>
<div align="center">
<p> </p>
<p> </p>
<p> </p>
<table width="52%" border="0.1">
<tr>
<td height="396" background="images/index.gif"><div align="center">
<p> </p>
<p align="left"> </p>
<p align="left"> <a href="zhuce1.html" target="_top"><img src="images/zhucetittle.gif" width="132" height="28" border="0" /></a></p>
<p align="left"> <a href="denglu1.html"><img src="images/denglutittle.gif" width="136" height="29" border="0" /></a></p>
</div></td>
</tr>
</table>
</div>
</body>
</html>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>仓储信息管理系统索引</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
}
-->
</style></head>
<body>
<div align="center">
<p> </p>
<p> </p>
<p> </p>
<table width="52%" border="0.1">
<tr>
<td height="396" background="images/index.gif"><div align="center">
<p> </p>
<p align="left"> </p>
<p align="left"> <a href="zhuce1.html" target="_top"><img src="images/zhucetittle.gif" width="132" height="28" border="0" /></a></p>
<p align="left"> <a href="denglu1.html"><img src="images/denglutittle.gif" width="136" height="29" border="0" /></a></p>
</div></td>
</tr>
</table>
</div>
</body>
</html>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>仓储信息管理系统索引</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
}
-->
</style></head>
<body>
<div align="center">
<p> </p>
<p> </p>
<p> </p>
<table width="52%" border="0.1">
<tr>
<td height="396" background="images/index.gif"><div align="center">
<p> </p>
<p align="left"> </p>
<p align="left"> <a href="zhuce1.html" target="_top"><img src="images/zhucetittle.gif" width="132" height="28" border="0" /></a></p>
<p align="left"> <a href="denglu1.html"><img src="images/denglutittle.gif" width="136" height="29" border="0" /></a></p>
</div></td>
</tr>
</table>
</div>
</body>
</html>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>仓储信息管理系统索引</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
}
-->
</style></head>
<body>
<div align="center">
<p> </p>
<p> </p>
<p> </p>
<table width="52%" border="0.1">
<tr>
<td height="396" background="images/index.gif"><div align="center">
<p> </p>
<p align="left"> </p>
<p align="left"> <a href="zhuce1.html" target="_top"><img src="images/zhucetittle.gif" width="132" height="28" border="0" /></a></p>
<p align="left"> <a href="denglu1.html"><img src="images/denglutittle.gif" width="136" height="29" border="0" /></a></p>
</div></td>
</tr>
</table>
</div>
</body>
</html>
七、参考文献
王珊 萨师煊. 《数据库系统概论》(第四版). 高等教育出版社. 2006-5
苏俊. 《Java程序设计》. 机械工业出版社. 2006-6