




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河北农业大学本科毕业论文(设计)题 目: 企业成品库存管理的设计与实现(后台) 学 院: 信息科学与技术 专业班级: 计算机科学与技术1101班 学 号: 2013年 6 月 1 日摘要人们一直以来使用传统人工的方式管理仓库中的各种物资设备,这种管理方式存在着许多缺点,如:效率低等,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。所以对于企业的决策者和管理者来说一个库存管理系统是至关重要的。本系统开发主要是采用浏览器/服务器(B/S)模式,包括后台数据库的建立、维护以及前端应用程序的开发两个方面。本系统在采用MyEclipse开发工具的基础上,运用My Sql数据库系统和面向对象Java开发技术实现的。本系统具有完善的数据处理功能,方便快捷的浏览界面、易于操作的功能模块,并能够准确反映各种情况及信息,为管理人员提供准确的数据,基本满足了企业库存管理的要求。本文简要介绍了库存管理系统的项目开发背景和意义,着重阐述了该系统开发实现过程,从系统的需求分析、方案设计、模块设计、数据设计、详细设计等各个环节都进行了详尽的分析和描述。 关键词:库存管理,MyEclipse,MySQL,JAVAAbstractPeople have been using a variety of materials and equipment, the traditional manual management of warehouse, this management way has many shortcomings, such as: low efficiency, another time a long, will produce the massive documents and the data, this regarding the search, the renewal and the maintenance has all brought many difficulties. So for business decision-makers and managers is an inventory management system is very important.The system is mainly used to develop the browser / server (B/S) mode, includes the backstage database the establishment, maintenance and front-end application development two aspects. The system based on the MyEclipse development tools, implementation of object oriented technology and Java development by My Sql database system. This system has improved the data processing function, convenient browsing interface, function module is easy to operate, and can accurately reflect the situation and information, provide accurate data for the management personnel, to meet the basic requirements of the enterprise inventory management.This paper briefly introduces the inventory management system project background and significance, and emphatically expounds the system development process, different from the system of needs analysis, program design, module design, data design, detailed design and other aspects of a detailed analysis and description.Keywords:inventory management,MyEclipse,MySQL,JAVA目录1 绪论11.1背景和意义11.2本文的工作12. 系统分析12.1 需求分析12.2 系统功能22.2.1 系统功能描述22.2.2 系统业务流程图22.2.3 系统的角色定义32.3 技术介绍32.3.1 JSP技术简介32.3.2 Servlet技术简介42.3.3 MVC简介43.系统设计43.1 数据库需求设计43.1.1 数据库需求分析43.1.2 数据库逻辑设计53.2 开发工具及运行环境74.系统实现74.1 模块设计74.2 主要包结构74.3 主要页面截图及功能实现74.3.1 登录界面74.3.2 订单管理界面84.3.3 出入库管理界面114.3.4 系统基础数据管理界面135总结16参 考 文 献17致 谢171. 绪论1.1背景和意义库存管理系统是现代企业进行货物管理和处理的业务操作系统。它可以实现本地一个或几个仓库的精细化管理,它可以对货物存储和出货等进行动态安排,可以对仓储作业流程的全过程进行电子化操作;可以与客服中心建立数据接口使客户通过互联网实现远程货物管理,可以与企业的ERP系统实现无缝连接。在现代企业中,仓库管理是一项繁琐复杂的工作,每天要处理大量的单据数据。为及时结清每笔业务,盘点库存和货物流动情况,保证企业生产用料以及货物安全,库管人员要花费大量人力物力和时间来作数据记录统计工作。众所周知,仓库管理是一种既麻烦又单调的工作,每天都是重复记录一些货物的存入与取出,而且货物的种类数量繁多,存取有很大的随机性,这样为工作人员带来了很大的不便,在操作过程中,由于人为的计算出错率很高,一旦出错改正也很困难,这样简单繁重的工作要很多人来做,为经营者增加了很多成本。所以开发一个可行的库存管理系统是十分必要的。1.2本文的工作 本系统以MySQL作为后台数据库,以java语言来开发的,不仅实现了企业库存管理的自动化,同时也提高了工作效率。本系统由以下几个模块组成:基本信息管理、入库管理、出库管理、用户管理。2. 系统分析2.1需求分析 本系统是为物流管理而设计的高效管理系统,系统功能强大,同时操作又比较简单,而管理人员大多受到过系统的培训,并能够操作电脑,所以只要花很少的时间,就能够让他们熟悉本系统。系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。2.2系统功能2.2.1系统功能描述本库存管理系统需要完成功能主要有: 订单管理,包括订单的录入,查询,更改,删除,订单明细的编辑等 入库管理,包括入库单的录入,查询,更改,删除,入库明细的编辑以及入库操作等 出库管理,包括出库单的录入,查询,更改,删除,出库明细的编辑以及出库操作等 仓库管理,包括仓库信息的查询,初始化和整理等操作 基本数据管理,包括对系统用户的基本信息和产品信息的操作,包含对用户密码的修改,基本信息的设置和查询,以及产品价格信息的修改等2.2.2系统业务流程图 图2-1 系统业务流程图2.2.3系统的角色定义 本系统角色包括三种,系统管理人员,销售经理和仓库管理人员。其中销售经理:对订单进行录入,订单基本信息的查询浏览等具体权限有: 订单信息录入和查询,修改删除 密码的修改 订单明细的编辑仓管部管理人员:负责仓库的出入库管理,可以根据流向单实现出/入库操作,负责整个企业仓管部门的日常运作和管理工作。具体权限有: 订单信息浏览 出库单信息的维护以及出库操作 入库单信息的维护以及入库操作密码的修改 仓库信息的维护及整理系统管理人员 管理系统用户、角色与权限,保证系统正常运行2.3技术介绍2.3.1 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.3.2 Servlet技术简介 Servlet是一些用来扩展Web服务器功能的Web组件,它基于请求/响应机制。所有的程序代码全部由JAVA组成,而且全部封装成了一个类,可以编写任意的JAVA代码,可以调用任意的JAVA类。Servlet从客户端(例如Web浏览器)获得请求,然后,将响应结果返回客户端。Servlet的这种特点使它非常适合于Web应用。Servlet和EJB组件的区别在于EJB组件所提供的服务器端组件特性并不能全部适用于Servlet,Servlet更适合于处理简单的请求/响应任务,而且它不需要应用服务器所提供的复杂服务的支持。2.3.3 MVC简介MVC设计模式都是以Servlet为主题展开的,由Servlet接收所有的客户端请求,然后根据请求调用相应的JavaBean,并将所有的显示结果交给JSP完成。它强制性地使应用程序的输入、处理和输出分开。MVC设计模式被分为3个核心层,即模型层、显示层和控制层。它们各自处理自己的任务,各层的任务如下。 1、 显示层(View):主要负责接收Servlet传递的内容,并且调用JavaBean,将内容显示给用户。2、 控制层(Controller):主要负责所有的用户请求参数,判断请求是否合法,根据请求的类型调用JavaBean执行操作并将最终的处理结果交由显示层进行显示。3、 模型层(Model):完成一个独立的业务操作组件,一般都是以JavaBean的形式进行定义的。3. 系统设计3.1 数据库设计 3.1.1数据库需求分析数据库设计时应该充分了解用户的需求,包括现有的以及将来可能增加的需求。数据库设计包括如下几个步骤:1数据库需求分析2 数据库概念设计3 数据库逻辑结构设计用户的需求具体体现在各种信息的提供、保存、更新和查询等方面,这就要求数据库结构能充分满足各种信息的输入输出。根据基础数据、数据结构以及数据处理的流程,组成一份详细的数据字典,为后面的具体设计打下基础。在仔细分析调查有关库存信息需求的基础上,通过上面的数据流程图可以设计出下面的数据项和数据结构1用户管理基本信息,包括用户名 ,用户编号,密码,用户等级,用户联系方式(其中等级分三个级别) 2入库单基本信息,包括入库单编号,入库单状态,仓库编号,填单人3入库明细信息,包括入库明细编号,对应入库单编号,产品名称,入库数量4出库单基本信息,包括出库单编号,状态,仓库编号,填单人,订单编号5出库明细信息,包括出库明细编号,对应出库单编号,产品名称,出库数量6订单基本信息,包括订单编号,状态,签单日期,订单金额,填单人7订单明细信息,包括订单明细编号,对应订单编号,产品名称,需求数量,已出库数量8产品基本信息,包括产品名称,产品单价9仓库基本信息,包括仓库编号,仓库管理员,产品名称,在库数量这里为了方便每个表主键的生成,还设计了一个主键生成表10主键基本信息,包括对应表名称,主键值3.1.2数据库逻辑设计本库存管理系统所用的数据库是store,如下是表在数据库的逻辑表示:表3.1 orders(订单表)字段名注释类型长度是否主键是否允许为空Ordered订单编号INTEGER10Orderstate订单状态VARCHAR50Orderdate签单日期datetimeOrderinput签单人VARCHAR50Osum数量INTEGER11默认为0表3.2 ordersub(订单明细表)字段名注释类型长度是否主键是否允许为空Ordered订单编号INTEGER10Ordersubid明细编号INTEGER10Proname产品名称VARCHAR50Pronum需求数量INTEGER10Osum已出库数量INTEGER10默认为0表3.3 input(入库单表)字段名注释类型长度是否主键是否允许为空inputid入库单编号INTEGER10Ipstatus入库单状态VARCHAR50storeid仓库编号INTEGER10inputer填单人VARCHAR50表3.4 inputsub(入库明细表)字段名注释类型长度是否主键是否允许为空inputid订单编号INTEGER10ipsubid明细编号INTEGER10proname产品名称VARCHAR50ipnum入库数量INTEGER10表3.5 output(出库单表)字段名注释类型长度是否主键是否允许为空opid出库单编号INTEGER10opstatus出库状态VARCHAR50orderid订单编号INTEGER10storeid仓库编号INTEGER10outers填单人VARCHAR50默认为0表3.6 outputsub(出库明细表)字段名注释类型长度是否主键是否允许为空opid出库单编号INTEGER10opsubid明细编号INTEGER10proname产品名称VARCHAR50opnum出库数量INTEGER10表3.7 appuser(用户表)字段名注释类型长度是否主键是否允许为空userid用户编号INTEGER10username用户名INTEGER118password登录密码VARCHAR118userlevel用户级别INTEGER10usertel联系方式VARCHAR50表3.8 storage(仓库表)字段名注释类型长度是否主键是否允许为空storeid仓库编号INTEGER10admin管理员INTEGER50proname产品名称VARCHAR50pronum库存数量INTEGER12表3.9 product(产品表)字段名注释类型长度是否主键是否允许为空proname产品名称VARCHAR50price产品单价float表3.10 product(主键表)字段名注释类型长度是否主键是否允许为空pkname产品名称VARCHAR50pkvalue主键值INTEGER103.2开发工具及运行环境1.开发工具:MyEclipse6.02.软件环境:Tomcat6.0,JDK5.0以上3.硬件环境:cpu:P3 2.0GHZ以上Memory:512M以上4. 系统实现4.1模块设计本系统包括:订单管理、出库管理、入库管理、库存总控台、基础数据(包括用户信息和产品信息)管理五个功能模块。4.2主要包结构1.检验用户登录 cn.hebau.store.servlet.LoginA2.订单操作cn.hebau.store.servlet.Orders3.订单明细操作cn.hebau.store.servlet.OrderSubs4.入库单操作cn.hebau.store.servlet.InputAction5.入库单明细操作cn.hebau.store.servlet.Inputs6.出库单操作cn.hebau.store.servlet.OutputAction7.出库单明细操作cn.hebau.store.servlet.Outputs8.仓库操作cn.hebau.store.servlet.StorageAction9.系统用户操作cn.hebau.store.servlet.AppuserAction10.产品操作cn.hebau.store.servlet.ProductAction考虑到实际需要,每个表的都还设计了一个主键生成器部分,主要是在cn.hebau.store.dao.primarykey包下实现4.3主要页面截图及功能介绍4.3.1登录界面下面是主要是分模块介绍各个部分的功能以及实现首先,登录页面,如图4-1 图4-1 登录页面4.3.2订单管理界面登录成功后跳转到主页,这个页面根据不同的用户,在设计这个页面的时候要考虑到用户的具体分工,刚开始是想全部通过过滤器,后来发现过滤器很难全部过滤,就在前台页面实现,不具有该功能的用户在点击具体的总模块名时,按钮不能弹开。图4-2 系统主界面其中订单管理页面如图4-3图4-3 订单管理点击修改按钮进行订单明细编辑,如图4-4图4-4 订单明细管理点击添加后则录入新的一条订单明细,相应的订单金额也根据数量*单价计算出来,如果点击删除,则订单明细的金额也做相应的减法操作订单管理页面包括订单的查询,修改和删除以及对订单明细的编辑。只要订单界面出于未出库状态就可以对该订单进行明细编辑,包括添加和删除操作,已经出了库的订单就不对其进行操作了,每一个订单编号都有相应的超链接,可从数据库中查出与之相对应的出库信息。这一层的具体实现代码时在cn.hebau.store.servlet包下的OrderAction和OrderSubs中实现的部分代码如下:public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException HttpSession session=request.getSession(); String method= request.getParameter(method); if(method.equals(all)/查询 List orders= DbFactory.getOrderDaoInstance().selectAll(); session.setAttribute(orders, orders); response.sendRedirect(/store/order/list.jsp?); else if(method.equals(del)/删除 int id=Integer.parseInt(request.getParameter(id); DbFactory.getOrderDaoInstance().deleteById(id); List orders= DbFactory.getOrderDaoInstance().selectAll(); session.setAttribute(orders, orders); response.sendRedirect(/store/order/list.jsp?); public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException HttpSession session=request.getSession(); String method= request.getParameter(method); if(method.equals(insert)/查询 Orders order=new Orders(); String orderinput=new String(request.getParameter(orderinput).getBytes(ISO-8859-1),GBK); if(DbFactory.getAppuserDaoInstance().findByname(orderinput) try order.setOrderid(DbFactory.getOrderDaoInstance().getNextKey(); order.setOrderinput(orderinput); Date orderdate = new java.text.SimpleDateFormat(yyyy-M-dd).parse(request.getParameter(orderdate).toString().trim(); System.out.println(orderdate+gggggggggggggggggggg); order.setOrderdate(orderdate); DbFactory.getOrderDaoInstance().insert(order); List orders= DbFactory.getOrderDaoInstance().selectAll(); session.setAttribute(orders, orders); catch (Exception e) e.printStackTrace(); response.sendRedirect(/store/order/list.jsp?); else session.setAttribute(errmsg1,showError(document.getElementById(orderinput),填单人不具权限!);); response.sendRedirect(/store/order/add.jsp?); else if(method.equals(sel)/查询Orders order=new Orders(); try Date one = new java.text.SimpleDateFormat(yyyy-M-dd).parse(request.getParameter(orderdate1).toString().trim();Date two = new java.text.SimpleDateFormat(yyyy-M-dd).parse(request.getParameter(orderdate2).toString().trim();List orders=DbFactory.getOrderDaoInstance().selectByDate(one, two);session.setAttribute(orders, orders); catch (ParseException e1) e1.printStackTrace(); response.sendRedirect(/store/order/list.jsp?); 如果该订单已经存在对应的出库单,则在订单明细页面下方显示每份出库单详细信息。由于销售经理只具有签入订单的权限,所以如果登录用户是销售经理的话,那么他只具有对订单的增删改查功能。4.3.3出入库管理界面接下来是仓库管理员的登录界面,他主要负责对库存进行维护,以及出库和入库操作,出库单来源除了从订单管理那里生成之外,也可以新建出库单,新建出库单可以选择尚有产品未出库的订单,也可以不选择任何订单进行出库。如图4-5所示。点击出库操作按钮,只有订单状态出于未出库或未完全出库时才能生成出库单,确定生成出库单后,开始进入仓库选择界面,如图4-6所示图4-5 出库管理图4-6 仓库选择界面用户可以根据仓库库存量尽量选择能满足当前订单需求的仓库进行出库。这一种情况下对应的出库明细是自动生成的,如果库存不足,则按库存量出库,否则按订单需求出库,对应的出库明细如图4-7图4-7 出库明细录入点击确认出库按钮,则生成对应的出库明细记录,自动将出库单状态改为“已出库”,根据出库情况订单状态也改为“部分出库”或“已出库”。如图4-8所示。每一条订单明细的已出库数量以及相应仓库号产品的库存量也发生相应改变。接下来是入库单列表,包括增删改查,点击添加按钮,则进入,如图4-9图4-8 入库管理图4-9 入库单录入如果不是库存管理员则提示系统不可进行该操作,入库单状态处于“未入库”,点击修改按钮就可对入库明细进行编辑,如图4-10图4-10 入库明细管理图4-11 入库明细编辑确认入库可对入库单进行入库,相应的入库单状态自动改为“已入库”,而库存中产品的数量也自动增加。如图4-11;接下来是另一种情况的出库,即不对应任何订单可对出库单进行增删改查操作。如果出库单处于未出库,则对应显示的修改按钮可对出库明细进行录入,点击确认入库,如果库存不足则提示库存不足信息,跳转到出库明细编辑页面继续编辑,可以适当减少出库量。否则即出库成功,对应出库单状态自动改为已出库,对应仓库的产品库存数量也减少,页面跳转至出库列表页面,如图4-12图4-12 出库明细录入仓库管理:主要包括三个小模块,初始化,归零,数据整理操作根据系统当前登录用户,初始化显示仓库所有库存归零是所有产品数量归零数据整理操作是负责将删除仓库中产品数量为零的记录;4.3.4系统基础数据管理界面基础数据信息:只有系统管理员才可对此部分操作首先是产品信息设置,如图4-13图4-13 产品信息设置包括产品的价格,以及名称,设计的时候产品名称作为了产品表的主键,所以可对产品单价进行修改,如图4-14图4-14 产品价格修改2用户信息设置,可以添加用户,对用户资料修改,以及删除用户,但是管理员不可删除,如图4-15,4-16所示;图4-15 系统用户管理图4-16 系统用户信息修改个人信息管理是每个用户的权限,可对当前登录用户的密码进行修改,如图4-17所示;图4-17 用户密码修改下面是一些主要代码的部分检验用户登录String pwd=request.getParameter(password);HttpSession session=request.getSession();String username = request.getParameter(username);String password =DbFactory.getAppuserDaoInstance().encryptPassword(request.getParameter(password); Appuser appuser = new Appuser();/验证输入的用户名密码是否准确.准确登陆系统.否则返回系统登陆页并提示错误信息try if (DbFactory.getAppuserDaoInstance().checkLogin(username, pwd) int le= DbFactory.getAppuserDaoInstance().selectByname(username).getUserlevel(); request.getSession().setAttribute(userlevel,le); session.setAttribute(myid, DbFactory.getAppuserDaoInstance().selectByname(username).getUserid()session.setAttribute(myp, DbFactory.getAppuserDaoInstance().selectByname(username).getPassword();session.setAttribute(me, le);session.setAttribute(mine, username);response.sendRedirect(/store/index.html); else /提示错误信息request.setAttribute(errmsg,showError(document.getElementById(username),+ 用户名或密码错误!););/ 返回登录界面request.getRequestDispatcher(/login.jsp).forward(request, response); catch (Exception e) e.printStackTrace(); 由于具体项目较大,代码部分就不在此一一写出了,详见具体项目部分。5. 总结 这是我第一次独立完成这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 做付款申请订单工作计划
- 住宅楼工程建筑合同范本
- 2025年工业互联网SDN平台在智能工厂设备生命周期管理中的优化策略报告
- 2025年文化旅游演艺项目文化旅游产业创新模式与产业协同创新报告
- 2025年智能家居系统互联互通标准下的智能家居设备互联互通性个性化研究报告
- 2025年工业互联网平台数据清洗算法在智能工厂设备故障诊断中的应用实践报告
- 中班教案《熊猫》
- 中班健康领域教案《小猴子本领大》反思
- 序数课件教学课件
- 《线条的艺术表现力》课件-2025-2026学年人美版初中美术九年级上册
- 机关单位固定资产管理制度
- 教育技术中动态分层教学法的应用研究
- 预备党员考试试题及答案2025
- JG/T 23-2001建筑涂料涂层试板的制备
- 手表店展厅设计案例分析
- 2025年少先队辅导员技能大赛考试题库(含答案)
- 为母校捐款协议书
- 一例胃癌患者的疑难病例讨论
- 2025年辅警招聘理论知识考试题库(100题)含答案
- 法人变更免责协议书
- 看美剧学口语知到智慧树期末考试答案题库2025年青岛职业技术学院
评论
0/150
提交评论