- 557.16 KB
- 2022-05-16 18:34:29 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
哈尔滨德强商务学院管理信息系统课程实训论文题目:仓库管理系统的开发与实现学号:2008512400姓名:张丽丽班级:一专业:信息管理与信息系统指导教师:王知强2010年12月II
仓库管理系统的开发与实现摘要本文描述了仓储信息管理系统的设计与实现,描述并讲解了数据库技术及本系统应用到的其他技术。本系统的整体设计由JSP实现,以MySQL为后台数据服务器,增加系统的安全性和完整性,提高了系统响应的速度。整个软件系统基于浏览器/服务器(B/S)模式。本系统界面设计大方、简洁、实用,操作简单方便,是一款完全适合普通物流中心仓储信息管理的软件。能实现入库、出库、盘点和库存控制等仓储的智能化管理,可以提高库存管理的效率。同时通过入库单、出库单、盘点单等各种单据使物主能够浏览自己的货物情况,便于向物流企业反馈信息。关键词:仓储管理、库存控制、数据库设计前言一.课题研究背景随着IT技术的不断发展和成熟,信息的重要性日渐显现。市场信息化的日益扩大,使自动化管理水平,以最快的速度和最准确的数据获得信息并及时作出反馈,使公司能够在同每个公司的仓储部门先前的简单手工工作日趋没落,难以跟上市场的步伐。为了提高企业的类型的企业竞争中立于不败之地,信息产业的开发和科学管理的运用刻不容缓。基于此形势,许多公司针对企业仓储部门实行基于关系数据库的信息管理制度,并以此为最高管理层提供决策服务。为此,本小组也以适应当前企业信息管理制度而尝试开发了本仓储管理系统。二.本系统的主要工作内容主要进行了以下几项工作:(1)对项目需求进行调研,确定系统需求;(2)对系统的功能模块进行进一步划分,对系统所需实现的功能进行详细分析和总体设计;(3)对数据库进行设计,使用HTML进行页面设计,使用JSP、JavaScript等技术对每个功能模块编写相应代码实现相应功能,使用JDBC技术连接后台数据库;三.本论文的主要内容本论文的主要内容为:(1)阐述了本系统所运用的相关技术,开发背景及环境,系统需求分析,系统总体结构及主要实现功能;(2)详细讲解了本人负责的系统任务:数据库设计,产品库存管理模块等。II
目录第一章相关技术简介………………………………………………………..11.1SQL语言基础…………………………………………………….11.1.1SQL简介…………………………………………………....11.1.2SQL查询……………………………………………………11.1.3SQL数据更新………………………………………………21.2JSP动态网页技术………………………………………………...21.3Struts框架技术…………………………………………………...31.4JavaScript技术…………………………………………………....31.5B/S模式体系架构………………………………………………...31.6CSS………………………………………………………………..41.7JDBC访问数据库………………………………………………..4第二章系统开发及使用环境……………………………………………….52.1系统开发平台……………………………………………………52.1.1操作系统…………………………………………………...52.1.2开发工具…………………………………………………...52.2硬件环境…………………………………………………………62.3软件运行平台……………………………………………………6第三章系统总体设计……………………………………………………….73.1可行性分析……………………………………………………....73.2系统需求分析…………………………………………………....83.3系统概要设计…………………………………………………….83.3.1系统结构设计….…………………………………………8第四章系统详细设计………………………………………………………134.1详细设计说明…………………………………………………..134.2数据库详细设计………………………………………………...134.2.1数据库概念结构设计……………………………………...134.2.2数据库逻辑结构设计……………………………………...154.2.3系统有关数据表…………………………………………..184.3产品库存管理模块详细设计…………………………………...214.3.1模块功能…………………………………………………..214.3.2部分功能展示及实现代码………………………………..21结论………………………………………………………………………….26参考文献…………………………………………………………………….27II
第一章相关技术简介主要运用的技术:SQL数据库技术,JSP动态网页技术,Struts框架技术Javascript脚本语言,CSS,JDBC数据库连接技术等。1.1SQL语言基础1.1.1SQL简介用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言——SQL。SQL的全称是StructuredQueryLanguage,即结构化查询语言。SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。例如关系数据库产品DB2、ORACLE等都实现了SQL语言。同时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与SQL的接口软件。这样SQL语言很快被整个计算机界认可。SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。SQL语言可以完成许多功能,例如:●查询数据●在数据库表格中插入、修改和删除记录●建立、修改和删除数据对象●控制对数据和数据对象的存取●确保数据库的一致性和完整性等1.1.2SQL查询数据查询是关系运算理论在SQL语言中的主要体现,SELECT语句是SQL查询的基本语句,当我们在对一个数据库进各种各样的操作时,使用的最多的就是数据查询,在以SQL为基础的关系数据库中,使用的最多的就是SELECT查询语句。SELECT语句的完整句法如下:SELECT目标表的列名或列表达式序列FROM 基本表和(或)视图序列[WHERE行条件表达式][GROUPBY列名序列][HAVING组条件表达式][ORDERBY列名[ASC│DEAC]…]25
我们在SELECT语句中还使用了大量的保留字和通配符以进行各种各样的条件查询。在系统中有大量的查询按钮,其使用了大量的查询语句,而且这些查询语句大部分使用的是模糊查询,所以大量的使用了模式匹配符LIKE(判断值是否与指定的字符通配格式相符)。在包含LIKE的查询语句中可以使用两个通配符:%(百分号):与零个或多个字符组成的字符串匹配;_(下划线):与单个字符匹配。系统中的条件判断往往包含多个条件,这时就需要使用逻辑运算符NOT、AND、OR(用于多条件的逻辑连接),谓词ALL以及保留字DISTINCT等等。作为SELECT语句还有很多的使用方法,这里就不再叙述。1.1.3SQL数据更新使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作,现做一个简单地介绍。●数据插入往数据库的基本表中插入数据使用的是INSERT语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下:INSERTINTO基本表名(列表名)VALUES(元组值)●数据删除往数据库的基本表中删除数据使用的是DELETE语句,其句法如下:DELETEFROM基本表名[WHERE条件表达式]在些作一点说明,删除语句实际上是“SELECT*FROM基本表名[WHERE条件表达式]”和DELETE操作的结合,每找到一个元组,就把它删除。此外,DELETE语句只能从一个基本表中删除元组,WHERE子句中条件可以嵌套,也可以是来自几个基本表的复合条件。●数据修改当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下:UPDATE基本表名SET列名=值表达式[,列名=值表达式…][WHERE条件表达式]在Delphi中使用SQL语句是很方便的,一般来说,都是通过TQuery组件来使用SQL语言的。有一点要进行说明,虽然通过TQuery组件来使用SQL语言很方便,但考虑到自己对不同组件的理解程度、个人习惯以及其它各个方面,在本系统中我们采用的是ADO组件来对数据库进行操作。最简单的方法比如在TADOQuery组件的SQL属性中就可以键入SQL语句,至于详细的使用方法在后面进行介绍。 1.2JSP动态网页技术:JSP(JavaServerPages)技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的JAVA25
程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。1.3Struts框架:Struts是Apache基金会Jakarta项目组的一个OpenSource项目,它采用MVC(Model-View-Controller)模式,能够很好地帮助java开发者利用J2EE开发Web应用。和其他的java架构一样,Struts也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Structs框架的核心是一个弹性的控制及JakartaCommons的一些类库。Struts有一组相互协作的类(组件)、Servlet以层,基于如JavaServlets,JavaBeans,ResourceBundles与XML等标准技术,以及jsptaglib组成。基于struts构架的web应用程序基本上符合JSPModel2的设计标准,可以说是一个传统MVC设计模式的一种变化类型。它的目的是为了帮助我们们减少在运用MVC设计模型来开发Web应用的时间。1.4JavaScript:Javascript是一种面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言遗留的速度问题,为客户提供更流畅的浏览效果。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。Javascript短小精悍,又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。1.5B/S模式体系架构即浏览器/服务器模式体系架构。近年来,随着Internet/Intranet的迅猛发展,企业纷纷建立自己的Internet,以加强企业内部的联系,增强企业竞争力。Internet/Intranet中不断出现的网络新技术,带给OA全新的应用模式。C/S模式与B/S模式的优劣比较见表:B/S模式C/S模式25
具有分布式的特点,可以随时随地的进行业务处理。业务扩展简单方便,通过增加网页即可增加服务器功能。维护简单方便,只要改变网页,即可实现所有用户的同步更新。开发简单,共享性强。由于客户端与服务器的直接相连,没有中间环节,因此响应速度快。客户操作界面设计人性化,具有直观,简单,方便的特点,可以满足客户个性化的需求。同时由于开发是针对性的,因此操作界面漂亮,样式多样,可以充分满足客户自身的个性化要求个性化特点明显降低,无法实现具有个性化的设计要求。操作的习惯性是以鼠标为最基本的操作方式,无法满足快速操作的要求。页面动态刷新,响应速度明显下降。专用性的打印输出难以实现,有以对票据等的打印,难以实现套打输出,难以实现某些特殊功能要求由于是针对性的开发,因此缺少通用性的特点,业务变更或者改变不够灵活,需要重新开发,增加了维护和管理的难度。需要专门的客户端安装程序,分布功能弱。兼容性差,对于不同开发工具之间很难兼容,开发成本较高。表1-1C/S模式与B/S模式的比较1.6CSS:CSS,指层叠样式表(CascadingStyleSheets),样式定义如何显示HTML元素,样式通常存储在样式表中,把样式添加到HTML中,是为了解决内容与表现分离的问题。外部样式表可以极大提高工作效率。外部样式表通常存储在CSS文件中,多个样式定义可层叠为一。样式表定义如何显示HTML元素,就像HTML3.2的字体标签和颜色属性所起的作用那样。样式通常保存在外部的.css文件中。通过仅仅编辑一个简单的CSS文档,外部样式表使你有能力同时改变站点中所有页面的布局和外观。1.7JDBC访问数据库:JDBC(JavaDataBaseConnectivity),即java数据库连接,是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序。第一章系统开发使用环境25
2.1系统开发平台2.1.1操作系统:WindowsXP2.1.2开发工具:(1)Eclipse6.6Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。 EclipseSDK(软件开发者包)是EclipsePlatform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到EclipsePlatform中的工具。EclipseSDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以CPL发布,第三方组件有各自自身的许可协议。(1)MySQL5.0.18:MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器(C/S)结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。MySQL是一个精巧的SQL数据库管理系统,由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。可以使用命令行工具管理MySQL数据库(命令mysql和mysqladmin)。(2)tomcat5.0:Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP25
页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。(1)jdk-1_5_0_05:JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的JavaSDK。JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。2.1.3图形化工具:navicatformysql:NavicatMySQL是一个强大的MySQL数据库服务器管理和开发工具。它可以与任何3.21或以上版本的MySQL一起工作,并支持大部分的MySQL最新功能,包括触发器、存储过程、函数、事件、视图、管理用户,等等。其精心设计的图形用户界面(GUI),NavicatMySQL可以让你用一种安全简便的方式快速并容易地创建,组织,访问和共享信息。它可以使用户连接到本地/远程服务器,提供了几种实用工具,例如数据结构同步、导入/导出、备份和报告,使维护数据的过程很容易。2.2硬件环境CPU:IntelPentium或以上内存:512MB或以上硬盘40GB或以上显示器无要求2.3软件运行平台操作系统:Windows2003/XP25
第一章系统总体设计软件系统的总体设计大约要经历可行性分析,需求分析,概要设计,详细设计,编码,测试以及维护等七个阶段。下面所要做的是进行可行性分析、软件需求分析,概要设计和详细设计。由于任务分配问题,系统详细设计将在下一章作具体讲解,编码过程将在详细设计一章中论述,而测试和维护过程不在本文叙及。3.1可行性分析:当接受一个软件开发任务,就进入软件生命的第一个阶段,即进行可行性的研究。并不是所有问题具有简单的解决办法,许多问题不能在预定的规模之内解决。因此通过可行性的研究分析可以知道问题。有无可行性的解决方法,进而避免人力、物力和才力的浪费。在现行系统初步调查的基础上就可以提出新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。系统目标应充分体现,直接为仓库管理系统服务,并且,程序可以分期分批实现。但是,需要指出的是,系统目标是不可能在总体规划阶段就提得非常具体,它还将在开发过程中逐步明确和定量化。以达到更加出色的程序系统。可是,目标的提法不尽相同,例如:•提高仓库管理效率,减轻劳动强度;•提高信息处理速度和准确性;•为仓库管理者提供更方便、科学的服务项目。系统的目标确定后,就可以从以下四方面对能否实现新系统目标进行可行性分析:(1)技术可行性根据当初提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。考虑给予的开发时间有限,预计在规定期完成开发的系统难免不完善之处。(2)运行可行性新系统的研制和开发是充分考虑工作人员对仓库的易于管理,管理者方便查询设备信息效率。从而能完全满足使用者的要求。25
3.2 系统需求分析在经过前一阶段的分析之后,我们确定了开发课题为仓储管理。结合此前论述的项目开发背景、可行性分析,我们确定本系统需满足一下功能需求:(1)用户(经销商和分销商)注册登陆。(2)在经销商管理界面,经销商用户可实现以下功能:可注册经销商账户和分销商账户,并管理经销商和分销商用户信息,可对其账户信息进行添加、删除等操作。进行产品管理,包括对产品类型、品牌等信息的查看添加修改删除等操作。进行产品库存管理,包括查看产品在库信息,进行产品分配、入库操作,查看入库信息及详细信息,并进行修改删除等。进行产品分配管理,包括产品分配信息查询,分销商产品配额查询等。(3)分销商管理界面,用户可进行分销商账户注册修改删除等操作,查看产品在库、已售,个人产品配额等信息。3.3 系统概要设计在软件需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标系统的逻辑模型。现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求。首先,我们需要描述的是系统的总的体系结构。3.3.1 系统结构设计系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。 将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。在系统的概要设计中我们采用结构化设计(StructureDesign,简称SD),SD以需求分析阶段产生的数据流图DFD为基础,按一定的步骤映射成软件结构。我们首先将整个系统化分为几个小问题,小模块,在系统中,我们设计了用户管理、产品管理,产品库存管理、产品分配管理、分销商管理5个小模块。然后,进一步细分模块,添加细节。比如,用户管理我们又将其分为经销商用户管理,分销商用户管理,每个用户管理又可分为用户注册、用户删除、信息修改等;产品库存管理分为产品在库信息,产品入库,入库查询等等。25
以下为图3-1至图3-3为系统的结构图:登陆系统经销商登陆分销商登陆系统结构图3-1经销商登陆用户管理产品管理产品库存管理产品分配管理分销商管理系统结构图3-2在得到系统的第一层功能模块图后,经过进一步地细化,得到系统的子功能模块图:25
修改信息删除用户添加新用户修改用户信息删除用户经销商用户管理经销商用户分销商管理新用户注册系统结构图3-2-1产品管理产品类型产品品牌产品信息添加修改删除添加删除修改查询添加修改系统结构图3-2-225
查询入库信息查询详情修改信息删除信息查询添加入库分配产品库存管理产品在库信息产品入库入库查询产品入库系统结构图3-2-3产品分配管理分配信息查询分销商产品配额查询系统结构图3-2-425
分销商注册修改信息删除信息详细信息分销商管理分销商信息管理查询分销商信息系统结构图3-2-5查看详情修改查看配额分配生育配额、已售等数据分销商登陆分销商信息管理分销商配额管理系统结构图3-325
第一章系统详细设计4.1详细设计说明:由于系统由本小组3人共同开发完成,因此本文详细设计部分只介绍本人负责的系统模块。4.2数据库详细设计:4.2.1数据库概念结构设计实例根据上面的设计规划出的实体有库存实体、用户实体、分销商实体、分配实体、入库实体、产品实体等,各实体的E-R图及其关系描述如下:现有库存已售现有库存已分配库存总数产品类型 图4-1现有库存实体E-R图用户用户编号用户名用户密码注册时间用户身份 图4-2用户实体E-R图25
分销商分销商编号分销商名称联系电话联系地址备注 图4-3分销商实体E-R图入库入库编号产品型号产品个数操作人员入库时间审核状态 图4-4入库实体E-R图分配自增产品型号分销商编号分配数量售出数量分配人员分配时间 图4-5分配实体E-R图25
产品类型产品编号产品名称量图4-6产品类型实体E-R图4.2.2数据库逻辑结构设计在上面的实体以及实体之间的关系的基础上,形成数据库中的表格和各个表格之间的关系。仓库管理系统数据库中各个表格的设计结果如下面的表格所示:表4-1数据库逻辑结构表名字段名注释字段类型长度是否为空默认值 Table_Product(产品表) p_id自增int11NOTNULLauto_increment主键 p_model产品型号varchar20NOTNULL p_name产品名称varchar20NOTNULL p_typeID产品类型编号int11NOTNULL p_bId产品品牌编号int11NOTNULL p_description备注varchar200NULL Table_User(用户表) u_id自增int11NOTNULLauto_increment主键25
u_userID用户编号varchar20NOTNULL u_userName用户名varchar20NOTNULL u_password用户密码varchar20NOTNULL u_registerTime注册时间date NOTNULL u_userType用户身份(0:为经销商,1:为分销商)int1NOTNULL Table_Seller(分销商表) s_id自增int11NOTNULLauto_increment主键 s_dealerId分销商编号int11NOTNULL s_name分销商名称varchar20NOTNULL s_phone联系电话varchar20NULL s_address联系地址varchar100NULL s_description备注varchar200NULL Table_InDepot(入库表) i_id入库编号(以时间开头2009123109091102)bigint20NOTNULL0主键 i_model产品型号varchar11NOTNULL i_inTime入库时间date NOTNULL 25
i_author操作人员(登录人员)varchar20NOTNULL i_count产品个数int11NOTNULL0 i_reworker修改人员varchar20NULL i_reworkTime修改时间date NULL i_state审核状态(0:为未审核,1:为已审核)int1NOTNULL Table_Allot(分配表) a_id自增int11NOTNULLauto_increment主键 a_model产品型号varchar11NOTNULL a_dealerId分销商编号int11NOTNULL a_allotCount分配数量int20NOTNULL a_sellCount售出数量int11NULL a_alloter分配人员varchar20NOTNULL a_allotTime分配时间date NOTNULL Table_OnDepot(在库表) o_id自增int11NOTNULLauto_increment主键 o_model产品型号varchar11NOTNULL o_count产品个数int11NOTNULL o_onCount在库数量int11NOTNULL 25
o_allotCount已分配数量int11NOTNULL o_sellCount售出数量int11NULL o_description备注varchar200NULL Table_Brand(品牌表) b_id品牌编号int11NOTNULLauto_increment主键 b_name品牌名称varchar20NOTNULL Table_ProductType(产品类型表) p_typeID产品类型编号int11NOTNULLauto_increment主键 p_typeName产品类型名称varchar20NOTNULL Table_Brand_ProductType(品牌和产品类型关联表) bp_bID品牌编号int11NOTNULLauto_increment外键 bp_pTypeID产品类型编号int11NOTNULLauto_increment外键 4.2.3系统有关数据表以下图4-7至图4-16为系统数据库中有关的数据表:25
图4.7所有表图4-8产品表图4-9用户表25
图4-10分销商表图4-11产品类型表图4-12在库表图4-13入库表图4-14品牌表25
图4-15分配表图4-16分配表4.3产品库存管理模块详细设计4.3.1模块功能该模块功能前文需求分析及系统概要设计阶段已经做了简要说明在该模块下又分为3个子模块,分别实现不同的功能:(1)产品在库信息本模块可以实现根据品牌名称、产品来行、产品型号进行产品信息的查询,查询结果将以列表形式显示在当前页面内,表中属性值有:产品序号,品牌名称,产品类型,在库总数,已分配总数,已售出总数,操作。其中操作部分可链接到产品入库、产品分配操作界面以执行相应操作。同时可以链接到产品添加页面,实现新产品的添加。(2)产品入库25
本模块主要进行产品的入库操作(indepot)。详细过程为模块调用product表中产品信息,用户对产品品牌、类型、和产品型号进行选择,输入需要入库的产品数量,操作人等。自动生成入库编号,入库时间默认当前日期。(1)入库查询本模块实现根据不同属性实现对入库产品的查询,可选属性有产品品牌,产品类型,产品型号,入库编号,入库时间。查询结果以列表形式显示在当前页面,表中属性值有:产品序号,品牌名称,产品类型,在库总数,已分配总数,已售出总数,操作。其中操作部分可执行详细信息查询,修改信息,删除信息。4.3.2部分功能展示及实现代码(1)产品在库信息管理功能实现:图4-17图4-1825
(2)产品入库功能实现:图4-19图4-20入库功能相关实现代码:publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{ParticularDAOpd1=newParticularImpl();//连接数据流Stringpmodel=request.getParameter("bmodel");//产品类型System.out.println(pmodel);Stringiid=request.getParameter("iid");//产品入库idStringpc=request.getParameter("icount");//入库数量intpcount=Integer.valueOf(pc);//intpcount1=Integer.getInteger(request.getParameter("icount"));Stringit=request.getParameter("iinTime");//操作当前时间DateinTime=Date.valueOf(it);Stringuser=request.getParameter("iauthor");//读取操作人pd1.insertDate(pmodel,iid,pcount,inTime,user);pd1.upDateOndepot(pmodel,iid);returnmapping.findForward("insert_success");}(3)入库查询功能实现:25
图4-21图4-22查询功能相关实现代码:publicclassSelectActionShextendsAction{SelectInDepotDAOselectInDepotDao=newSelectInDepotImpl();SelectInDepotImplselInIm=newSelectInDepotImpl();Objects1=null;Objects2=null;@OverridepublicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{InFormationFormifn=(InFormationForm)form;String[]bname=request.getParameterValues("bname");System.out.println("BBBBBB");String[]ptname=request.getParameterValues("ptname");Stringpmodel=request.getParameter("ptype");Stringinid=request.getParameter("inId");System.out.println(inid);System.out.println("*****!!!!!!!!!!");25
StringstrDate=request.getParameter("inStrTime");System.out.println("qqqq:"+request.getParameter("inStrTime"));System.out.println("xxx:"+strDate);System.out.println("*****");if(strDate==null){s1="";}else{s1=strDate;}System.out.println("strDate:"+s1);StringendDate=request.getParameter("inEndTime");System.out.println("*****1111111111");if(endDate==null){s2="";}else{s2=endDate;}System.out.println("endDate:"+s2);if(bname[0].equals("-1")){bname[0]="";}if(ptname[0].equals("-1")){ptname[0]="";}PageModelpageModel=selInIm.listSelect(bname[0],ptname[0],pmodel,inid,strDate,endDate);request.setAttribute("pageModel",pageModel);returnmapping.findForward("selSuccess2");}}25
结论本系统运用软件工程原理,通过需求分析、总体设计、详细设计、系统实现,完成了仓储管理系统。本系统所实现的仓储管理功能,其界面友好、功能较为完善、使用方便快捷、安全高效,使企业仓储管理人员的统计录入工作可在网络上实现,提高了办公效率。在本系统的开发过程中将JSP技术应用到税务登记管理业务当中,将当代先进的B/S三层结构技术和仓储管理业务良好地结合在一起,基于B/S结构,实现了仓储管理信息化,对企业仓储管理部门的自动化管理起到了积极意义。本系统实现了产品信息管理,库存管理,分配管理,分销商管理等功能。基本完成了仓储管理人员在功能上需求。由于时间和技术上的一些原因,本软件还是存在一些缺陷和不足之处,比如:界面不够精美、功能还应再加强。参考文献[1]张蓓赵国峰,《JSP数据库通用模块开发与系统移植》,清华大学出版社,2007年[2]张成朱磊方敬,《JSP应用开发技术》,清华大学出版社,2007年[3]何翠平,《HTML网页制作从入门到精通》,人民邮电出版社,2007年[4]邹竹彪,《JSP宝典》,电子工业出版社,2007年[5]袁建洲尹喆,《javascript编程宝典》,电子工业出版社,2007年[6]刘芳《数据库原理及应用—SQLServer版》,北京理工大学出版社,2006年[7]陆惠恩陆培恩《软件工程简明教程》,电子工业出版社,2007年[8]梁立新《项目时间精解:基于Struts-Spring-Hibernate的Java应用开发(第二版)》,电子工业出版社,2008年7月25