仓库管理系统 毕业设计

上传人:仙*** 文档编号:28134783 上传时间:2021-08-23 格式:DOC 页数:44 大小:1.78MB
返回 下载 相关 举报
仓库管理系统 毕业设计_第1页
第1页 / 共44页
仓库管理系统 毕业设计_第2页
第2页 / 共44页
仓库管理系统 毕业设计_第3页
第3页 / 共44页
点击查看更多>>
资源描述
计算机与通信学院 本科生毕业设计说明书 仓库管理系统 前 言 随着科学技术的不断发展,我们的社会已经进入了一个信息化的社会,人们每天都要接收 大量的信息和处理大量的数据,仅靠传统的纸和笔已不能适应这个时代的要求,人们必须采 取新的手段,于是信息技术进入我们的生活,计算机不再是简单的计算工具,它已成为我们 生活中处理大量信息的不可或缺的手段。在当今产业竞争越来越激烈的信息时代,企业经营 除了降低成本,提高品质外,更需要以先进的管理理念来整合企业内部与外部资源。仓库管 理系统正是在这个背景下产生的。 本系统正是针对仓库部门的货物信息管理,通过对仓库基本信息出入库信息等的系统 界面设计,将会给管理者带来极大的方便,具有手工管理无法比拟的优点,例如检索速度快、 查找方便、可靠性高、存储量大、使用时间长等。用计算机管理取代传统的手工操作,大大 减少了管理人员的工作量,提高了工作效率,为获取详细的管理信息提供了保证,方便各类 人员的查询和信息保证,增强了管理工作的时效和人员主动性。 仓库管理主要摆阔两方面:一是仓库的基本信息,涉及人员信息、库房信息、供货商信 息、客户信息;另一项是仓库业务管理,包括入库管理、在库管理、出库管理、报表管理。 在本系统中侧重实现仓库的基本信息管理。 摘 要 仓库管理系统是为了实现企业产品管理的系统化、规范化和自动化,从而提高企业管理 效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作 疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成仓库管理提供了强有 力的工具和管理手段。仓库管理系统是一个中小型数据库管理系统,它界面美观、操作简单、 安全性高,基本满足了仓库管理的要求。整个系统由基本信息、单据中心、查询统计、报表 打印、维护设置、帮助等模块组成。 本系统是在以 MySql 作为后台数据库,以 J2EE 为编程语言来开发的。仓库管理系统在 运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了仓库管理计算机化。 关键词: 仓库; 管理系统; 数据库 Abstract The administrative system of the warehouse is designed for realizing the systematization, standardization and automization of enterprises products management and improving efficiency of enterprises management. It completely replaces the working way of artificial management originally, prevents from various kinds of mistakes because of administrative staff neglect and the quality problem of management and offeres powerful tool and management way to complet storehouse management for prompt , accurate , high-efficient . The administrative system of the warehouse is a medium and small-scale database management system,it has not only beautiful interface, but also the high security and the simply operation , and meet the demand for storehouse management basically. Whole system is made up by basic information, document in the center, inquire statistics , report form type ,set up to maintain and module of helping etc. The Warehouse administrative system is designed with regarding MySql as the backstage database and regarding J2EE as programming language . The administrative system is effectual, the high data accuracy during the course of operating , improves working efficiency and realizes computerization for storehouse management at the same time . Key word: The Warehouse ; Administrative System; The Database 目 录 摘 要 .I ABSTRACT .II 第 1 章 绪论 .1 第 2 章 需求分析 .2 2.1 仓库管理系统概述 .2 2.2 系统流程图 .2 2.3 数据流程图 .3 2.4 仓库管理系统的角色定义 .5 第 3 章 总体设计 .6 3.1 总体用例图 .6 3.2 用例说明 .6 3.2.1 用户从浏览器登录 .7 2.2.2 供货商信息查询用例概述 .8 2.2.3 供货商信息修改用例概述 .9 2.2.4 供货商信息添加用例概述 .10 3.3 功能模块图 .11 第 4 章 详细设计 .14 4.1ER 图 .14 4.2 数据库设计 .15 4.2.1 数据库的逻辑设计 .16 4.3 运行环境 .20 第 5 章 编码 .21 5.1 登陆的实现 .21 5.1.1 登陆 action .21 5.1.2 登陆过滤器 .22 5.1.3 登陆 DAO .23 5.2 供货商的实现 .23 5.2.1 供货商查询 Action.23 5.2.2 供货商修改 Action.25 5.2.2 供货商添加 Action.25 5.2.3 供货商 DAO .26 第 6 章 测试 .30 6.1 登陆测试方案 .30 6.2 数据录入测试 .30 6.3 查询测试 .30 6.4 测试结论 .30 第 7 章 使用说明 .31 7.1 系统功能简介 .31 7.2 运行环境简介 .31 7.3 系统运行与操作指南 .32 7.4 操作演示 .32 7.5 特色介绍 .35 第 8 章 总结 .36 参考文献 .37 致 谢 .38 1 第 1 章 绪论 仓库管理系统是现代仓储企业进行货物管理和处理的业务操作系统。它可以实现本地一 个或几个仓库的精细化管理,也可实现制造企业、物流企业、连锁业在全国范围内、异地多 点仓库的管理;它可以对货物存储和出货等进行动态安排,可以对仓储作业流程的全过程进 行电子化操作;可以与客服中心建立数据接口使客户通过互联网实现远程货物管理,可以与 企业的ERP系统实现无缝连接。 在现代企业中,仓库管理是一项繁琐复杂的工作,每天要处理大量的单据数据。为及时 结清每笔业务,盘点库存和货物流动情况,保证企业生产用料以及货物安全,库管人员要花 费大量人力物力和时间来作数据记录统计工作。 众所周知,仓库管理是一种既麻烦又单调的工作,每天都是重复记录一些货物的存入与 取出,而且货物的种类繁多,存取有很大的随机性,这样为工作人员带来了很大的不便,在 操作过程中,由于人为的计算出错率很高,一旦出错改正也很困难,这样简单繁重的工作要 很多人来做,为经营者增加了很多成本。所以开发一个可行的仓库管理系统是十分必要的。 本系统以MySQL作为后台数据库,以java 语言来开发的,不仅实现了仓库管理的自动化, 同时也提高了工作效率。本系统由以下几个模块组成:基本信息管理、入库管理、在库管理、 出库管理、报表管理。 2 第 2 章 需求分析 2.1 仓库管理系统概述 本系统是为物流管理而设计的高效管理系统,系统功能强大,同时操作又比较简单,而 管理人员大多受到过系统的培训,并能够操作电脑,所以只要花很少的时间,就能够让他们 熟悉本系统。 系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系 统开发的总体任务的基础上完成。本仓库管理系统需要完成功能主要有: 仓库管理各种信息的输入,包括货物、供应商、客户、仓库信息的输入等。 仓库管理各种信息的查询、统计、修改和维护,包括货物、单据查询,货物出入、职 员操作统计,各种信息的修改和维护等。 打印报表的生成。 在货物管理中加入最高储备和最低储备字段,对仓库中的产品实现监控和报警。 操作日志的管理。 仓库管 核对货物清单 程序 入库单 库存数 据库 出库单打印程序 出库单 库存查询程序 库存分析程序 查询库存 信息 库存备份程序 库存备份 报损计划表 理系统的使用帮助。 2.2 系统流程图 出库单 3 图 2-2 系统流程图 2.3 数据流程图 数据流图是描述系统的逻辑模型的,图中没有任何具体的物理元素,只是描述信息在系 统中流动和处理的情况,它比口头与文字的描述更直观地显示出来系统中数据的使用。 数据流图简称 DFD 图,数据流图有四种成分:源点或终点、处理、数据存储表和数据 流。图中没有任何具体的物理元素,只是描述信息在系统中的流动和处理情况,即使不是专 业的计算机技术人员也容易理解,是极好的理解工具。它能精确的描述系统的逻辑模型,描 述数据在 MIS 中有输入经过存储、加工处理最后输出的全过程,是设计者和用户交流的很 好的工具。 仔细分析调查有关仓库管理信息需求的基础上,得到如图 41 所示的本系统所处理的 数据流程。 4 图 2-3 仓库管理系统数据流程图 通过对企业仓库管理的内容和数据流程分析,设计数据项和数据结构如下: 货物信息,包括的数据项有编号、货物名称、货物类别、货物规格、计量单位、最高 限量、最低限量、备注等。 仓库信息,包括的数据项有编号、仓库名称、仓库地点、保管员编号、备注等。 库存状况信息,包括的数据项有编号、货物编号、库存数量、仓库编号等。 入库单信息,包括的数据项有编号、货物编号、经办人编号、入库时间、入库单价、 入库数量、供应商编号、仓库编号、定单状况、其它金额、备注等。 出库单信息,包括的数据项有编号、货物编号、经办人编号、出库时间、出库单价、 出库数量、客户编号、仓库编号、定单状况、其它金额、备注等。 进行月盘点信息,包括的数据项有编号、仓库编号、盘点时间、经办人编号、盘点数 据等。 系统日志信息,包括的数据项有用户名、操作时间、操作内容等。 用户管理信息,包括的数据项有用户名、用户密码、用户权限等。 另外,还有借入单、借出单、报损单、调拨单信息等。它们与入库单、出库单信息基本 类似,这里不再一一例举。 5 2.4 仓库管理系统的角色定义 本系统角色包括两种,仓管部管理人员和管理部主管,其中,管理部主管拥有整个系统 的最高权限。 仓管部管理人员: 负责仓库的出入库管理,可以根据流向单实现出/入库操作。具体权限有: 库存信息管理 库检信息维护 入库单信息维护 出库单信息维护 报表信息管理 进行密码修改、清除表信息等系统设置 客户、供应商、库房等基本信息的查询浏览等 仓管部主管: 负责整个山口仓管部门的日常运作和管理工作,主要包括: 部门信息维护 人员信息管理 审批 报表信息管理 进行密码修改、备份数据库等系统设置 6 第 3 章 总体设计 3.1 总体用例图 用例图是一个系统建模的启始点,可以使用用例图对将要开发系统的实际工作流程进行 业务建模,从业务模型的基础上过度到系统建模的开始,可以通过用例图来搜集用户的需求, 明确和系统相关的用户和其他系统,同时确定系统将会提供什么功能,以及各个功能间的关 系。 图 3-1 总体用例图 3.2 用例说明 根据上述用例图,对登陆和人员信息管理模块做了如下用例说明: 7 3.2.1 用户从浏览器登录 用例概述 用例名称 用户登陆 主题领域 用例定义 用户登录到系统,获得相应的界面和使用权限 角色 仓管员或主管 业务触发 事件 用户准备开始使用系统进行业务处理或系统管理 前置条件 系统中已为该用户建立系统用户,并分配了相应权限 结束条件 成功条件 用户登录系统,并获得相应权限 失败条件 1)系统中没有该用户; 2)用户名、密码错误 相关用例 输入概述 用户名、密码、角色 输出概述 与用户权限相应的界面 使用性备 注 本用例使用频繁 用例备注 主事件流 步骤 角色 /系统 描述 数据项 备注 1. 角色 启动登录程序 2. 系统 显示登录界面; 提示输入用户标识和保密字 3. 角色 输入用户标识和保密字,登 录系统 用户名,密码,角 色 4. 系统 验证用户是否合法用户、保 密字是否正确;返回用户相 应的界面、菜单 如果不是合法用户、 或保密字不正确转到 A1。 5. 分支事件流 编 号 主事件流 步骤号 角色/ 系统 条件 描述 数据项 转去主 事件流 步骤号 备注 A1 4 系统 不是合法用户,用 户名、密码错误, 用户名和密码与角 色不对应 返回登录失 败信息 登录失败信 息 2 8 2.2.2 供货商信息查询用例概述 用例名称 供货商信息查询 主题领域 供货商信息查询用例包 用例定义 供货商信息查询 角色 仓库管理人员 业务触发事件 进行供货商信息查询 前置条件 有需要查询的供货商信息记录 结束条件 成功条件 查询到需要查询的供货商信息 失败条件 未查询到需要查询的供货商信息 相关用例 输入概述 所需查询的供货商信息 输出概述 查询结果 使用性备注 用例备注 主事件流 步骤 角色 /系统 描述 数据项 备注 6. 角色 进入查询界面 7. 系统 显示查询界面 8. 角色 输入所需查询的供货商信息 9. 系统 查询是否成功 查询成功 如果查询成功转到 A1 如果查询不成功转到 A2 分支事件流 编 号 主事件流 步骤号 角色/ 系统 条件 描述 数据项 转去主 事件流 步骤号 备注 A1 4 系统 完成供货商信息查 询 返回成功信 息 查询的供货 商信息 2 A2 4 系统 没有完成供货商信 息查询 返回失败信 息 查询失败的 信息提示 2 9 2.2.3 供货商信息修改用例概述 用例名称 供货商信息修改 主题领域 供货商信息修改用例包 用例定义 供货商信息修改 角色 仓库管理人员 业务触发事件 进行供货商信息修改 前置条件 有需要修改的供货商信息记录 结束条件 成功条件 查询到需要修改的供货商信息 失败条件 未查询到需要修改的供货商信息 相关用例 输入概述 所需修改的供货商信息 输出概述 修改结果 使用性备注 用例备注 主事件流 步骤 角色 /系统 描述 数据项 备注 10. 角色 进入修改界面 11. 系统 显示修改界面 12. 角色 输入所需修改的供货商信息 13. 系统 修改是否成功 修改成功 如果修改成功转到 A1 如果修改不成功转到 A2 分支事件流 编 号 主事件流 步骤号 角色/ 系统 条件 描述 数据项 转去主 事件流 步骤号 备注 A1 4 系统 完成供货商信息修 改 返回成功信 息 修改的供货 商信息 2 A2 4 系统 没有完成供货商信 息修改 返回失败信 息 修改失败的 信息提示 2 10 2.2.4 供货商信息添加用例概述 用例名称 供货商信息添加 主题领域 供货商信息添加用例包 用例定义 供货商信息 角色 仓库管理人员 业务触发事件 进行供货商信息添加 前置条件 有需要添加的供货商信息记录 结束条件 成功条件 查询到需要添加的供货商信息 失败条件 未查询到需要添加的供货商信息 相关用例 输入概述 所需添加的供货商信息 输出概述 添加结果 使用性备注 用例备注 主事件流 步骤 角色 /系统 描述 数据项 备注 14. 角色 进入添加界面 15. 系统 显示添加界面 16. 角色 输入所需添加的供货商信息 17. 系统 添加是否成功 添加成功 如果添加成功转到 A1 如果添加不成功转到 A2 分支事件流 编 号 主事件流 步骤号 角色/ 系统 条件 描述 数据项 转去主 事件流 步骤号 备注 A1 4 系统 完成供货商信息添 加 返回成功信 息 添加的供货 商信息 2 A2 4 系统 没有完成供货商信 息添加 返回失败信 息 添加失败的 信息提示 2 11 3.3 功能模块图 功能模块:山口电脑仓库管理系统包括仓管部信息管理、业务管理、系统维护等几个功 能模块。 仓管部信息管理 仓管部业务管理 山口电脑仓库管理系统 系统维护 图 3-3 总功能模块图 1、仓管部信息管理模块:为仓管部主管提供对仓管部信息的管理维护的功能。 12 仓管部信息管理 基本信息管理 出库信息维护 入库信息维护 库检信息维护 报表信息管理 系统设置 客户信息维护 供货商信息维护 库房信息维护 短线货品信息维护 部件、礼品信息维护 修改密码 成品品信息维护 库存信息维护 在库信息管理 仓管人员信息维 护 图 3-3-1 仓管部模块图 一、仓管部信息管理模块,如图所示,包括以下功能模块: 1. 基本信息管理模块:为管理员提供实现对客户信息、供货商信息、库房信息和仓管 人员信息的管理维护,包括对信息查询、添加、修改和删除等操作。 2. 在库信息管理模块: a、库存信息管理模块:为管理员提供实现对短线货物、货物信息的管理维护,包 括对信息查询、添加、修改和删除等操作。 b、库检信息管理模块:为管理员提供实现对产品库检信息、部件库检信息、礼品 库检信息的管理维护,包括对信息查询、添加、修改和删除等操作。 3. 出库信息管理模块:为管理员提供查询、添加、修改和删除出库流向单(包括:产 品出库单、部件出库单、礼品出库单)的操作,其中添加和删除操作后的出库货检 单要交由管理部审核。 4. 入库信息管理模块:为管理员提供查询、添加、修改和删除入库流向单(包括:部 件入库单、产品入库单、礼品入库单)的操作、其中添加和删除操作后的入库货检 单要交由管理部审核。 5. 报表信息管理模块:为管理员提供实现对报表信息的管理维护,包括对报表信息查 询、浏览和上交等操作。 13 6. 系统设置模块:为管理员提供实现对密码修改、清除表信息的功能 管理部信息管理 仓管部人员管理 仓库报表管理 仓库货检信息管理 基本信息管理 系统设置 修改密码 备份数据库 恢复数据库 、图 3-3-2 管理部模块图 二、管理部信息管理模块,如图所示,包括以下功能模块: 1、仓管部人员管理模块:为管理员提供实现对仓库部门信息的管理维护,包括对部门信息 查询、添加、修改和删除等操作。 2、仓库报表管理模块:为管理员提供实现对报表信息的管理维护,包括对报表的查询、浏 览和删除等操作。 3、仓库货检信息管理模块:为管理员提供实现对货检信息的管理维护,包括对在库货检信 息、入库货检信息和出库货检信息的审核操作。 4、基本信息管理模块:为管理员提供实现对基本信息进行添加、删除、查询和浏览功能、 5、系统设置模块:为管理员提供实现修改密码、备份数据库和恢复数据库的功能 14 第 4 章 详细设计 4.1ER 图 ER 图就是实体关系图,主要完成了对系统中数据部分设计。 E-R 图为实体-联系图,提 供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构成 E-R 图的基本要 素是实体型、属性和联系。以下是系统的整个 ER 图: 图 4-1 ER 图 15 4.2 数据库设计 数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上, 设计数据库的结构和建立数据库的过程。一般,数据库的设计过程大致可分数据库设计为 5 个步骤: 需求分析;调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、 数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束 条件等,形成用户需求规约。 概念设计;对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等), 通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映 现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息 储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节, 用一种抽象的形式表示出来。以扩充的实体( E-R 模型)联系模型方法为例,第一步 先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件 等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步 再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的 概念数据模型。 逻辑设计;主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适 应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据 处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库” 。 物理设计;根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计 算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文 件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设 计的结果就是所谓“物理数据库” 。 验证设计;在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应 用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需 要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修改。 因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。 数据库的完整性是指数据的正确性和有效性,是为防止数据库中存在不符合语义规定的 数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据库的完整性包括: 实体完整性、参照完整性和用户定义完整性。实体完整性(Entity Integrity) :现实世界 的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中主键应作为唯一性标 识。因此实体完整性规则规定基本关系的所有主键(Primary Key)都不能取空值(NULL)。参 照完整性(Referential Integrity):参照完整性维护表与表之间的相关性,通常用“主 键(Primary Key)/外键(Foreign Key)”保证,其中 Foreign Key 可以取 NULL 值,或取其参 照表中 Primary Key 的取值。用户定义的完整性(User_defined Integrity ):针对某一具 体数据的约束条件,由应用环境决定。数据库完整性约束能够防止合法用户使用数据库时向 16 数据库中添加不合语义的数据。 4.2.1 数据库的逻辑设计 仓库管理系统所用的数据库是 MySQL,如下是表在数据库的逻辑表示: 表 assembly 的结构 字段名 注释 类型 长度 是否主键 是否不为空 id 编号 INTEGER 11 Inbill_id 入库单编号 VARCHAR 20 Supplier_id 供货商编号 VARCHAR 20 Depot_id 库房编号 VARCHAR 20 Number 数量 INTEGER 11 Sumof_bad 不合格数量 INTEGER 11 Atcheck_date 在库货检日期 DATE 11 In_date 入库日期 DATE 11 Employee_id 货检员编号 char 5 表 product 的结构 字段名 注释 类型 长度 是否主键 是否不为空 id 编号 INTEGER 11 Makebill_id 组装单编号 VARCHAR 20 Depot_id 库房编号 VARCHAR 20 Check_id 货检编号 VARCHAR 20 Number 数量 INTEGER 11 Sumof_bad 不合格数量 INTEGER 11 Make_date 组装日期 DATE 11 Check_date 货检日期 DATE 11 表 assembly_product 的结构 字段名 注释 类型 长度 是否主键 是否不为空 id 编号 INTEGER 11 Assembly_id 部件编号 VARCHAR 20 Product_id 成品编号 VARCHAR 20 表 customer 的结构 17 字段名 注释 类型 长度 是否主键 是否不为空 Customer_id 客户编号 VARCHAR 20 name 姓名 VARCHAR 20 sex 性别 VARCHAR 20 credit 信誉度 INTEGER 11 phone 电话号码 VARCHAR 20 address 地址 VARCHAR 20 remark 备注 VARCHAR 20 表 depot 的结构 字段名 注释 类型 长度 是否主键 是否不为空 Depot_id 库房编号 VARCHAR 20 Employee_id 责任人编号 VARCHAR 20 phone 电话号码 VARCHAR 20 address 地址 VARCHAR 20 remark 备注 VARCHAR 20 表 employee 的结构 字段名 注释 类型 长度 是否主键 是否不为空 Employee_id 人员编号 VARCHAR 20 Inbill_id 入库单编号 VARCHAR 20 Supplier_id 供货商编号 VARCHAR 20 Depot_id 库房编号 VARCHAR 20 Number 数量 INTEGER 11 Sumof_bad 不合格数量 INTEGER 11 Atcheck_date 在库货检日期 DATE 11 In_date 入库日期 DATE 11 Employee_id 货检员编号 VARCHAR 5 18 表 supplier 的结构 字段名 注释 类型 长度 是否主键 是否不为空 Supplier_id 供货商编号 VARCHAR 20 name 姓名 VARCHAR 20 sex 性别 VARCHAR 20 credit 信誉度 INTEGER 11 phone 电话号码 VARCHAR 20 address 地址 VARCHAR 20 remark 备注 VARCHAR 20 表 inbill 的结构 字段名 注释 类型 长度 是否主键 是否不为空 In_id 入库单编号 VARCHAR 20 Depot_id 库房编号 VARCHAR 20 Refer_date 入库日期 DATE 11 Wh_id 提交人编号 VARCHAR 20 Check_date 货检日期 DATE 11 Ch_id 货检人编号 VARCHAR 20 Audit_date 审核日期 DATE 11 M_id 主管编号 VARCHAR 20 In_state 入库单状态 VARCHAR 20 表 inlist 的结构 字段名 注释 类型 长度 是否主键 是否不为空 id 编号 INTEGER 11 In_id 入库单编号 VARCHAR 20 Assembly_id 部件编号 VARCHAR 20 Supplier_id 供货商编号 VARCHAR 20 Number 数量 INTEGER 11 Badnumber 不合格数量 INTEGER 11 Good_rate 合格率 VARCHAR 20 19 表 makebill 的结构 字段名 注释 类型 长度 是否主键 是否不为空 Makebill_id 组装单编号 VARCHAR 20 Depot_id 库房编号 VARCHAR 20 Product_id 成品编号 VARCHAR 20 Number 数量 INTEGER 11 Atcheck_date 在库货检日期 DATE 11 Make_date 组装日期 DATE 11 Manager_id 主管编号 VARCHAR 20 表 outbill 的结构 字段名 注释 类型 长度 是否主键 是否不为空 Outbill_id 出库单编号 VARCHAR 20 Depot_id 库房编号 VARCHAR 20 Refer_date 供货商编号 VARCHAR 20 Refer_id 提交人编号 VARCHAR 20 Audit_date 审核日期 DATE 11 Out_state 出库单状态 VARCHAR 11 Audit_id 审核人编号 VARCHAR 20 Customer_id 客户编号 VARCHAR 20 表 outlist 的结构 字段名 注释 类型 长度 是否主键 是否不为空 id 编号 INTEGER 11 Outbill_id 出库单编号 VARCHAR 20 Product_id 成品编号 VARCHAR 20 Number 数量 INTEGER 11 20 表 report 的结构 字段名 注释 类型 长度 是否主键 是否不为空 Reportid 报表编号 VARCHAR 20 Reporttype 报表类型 VARCHAR 20 Depotid 库房编号 VARCHAR 20 beginDate 起始日期 DATE 11 endDate 结束日期 DATE 11 createTime 创建日期 DATE 11 referId 提交人编号 VARCHAR 20 checkState 审核状态 VARCHAR 20 checkDate 审核日期 DATE 11 AuditId 审核人编号 VARCHAR 20 表 report_detail 的结构 字段名 注释 类型 长度 是否主键 是否不为空 id 编号 INTEGER 11 reportId 报表编号 VARCHAR 20 Depotid 库房编号 VARCHAR 20 goodsName 货物名称 VARCHAR 40 goodsType 货物类型 VARCHAR 30 allNumber 总数量 INTEGER 11 badNumber 不合格数量 INTEGER 11 checkId 审核人编号 VARCHAR 20 4.3 运行环境 1. 开发工具:Eclipse, 2. 软件环境:Tomcat6.0,JDK5.0 以上, 3. 硬件环境:cpu :P3 2.0GHZ 以上Memory:512M 以上 21 第 5 章 编码 5.1 登陆的实现 5.1.1 登陆 action import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.javateam3.struts.form.LoginForm; import mon.dao.LoginService; /* * MyEclipse Struts * Creation date: 05-30-2009 * * XDoclet definition: * struts.action path=/login name=loginForm input=/webpage/login.jsp scope=request validate=true */ public class LoginAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) LoginForm loginForm = (LoginForm) form; try String userName=loginForm.getUser_name().trim(); String psw=loginForm.getPsw().trim(); LoginService loginService=new LoginService(); HttpSession session = request.getSession(true); if(loginService.login(userName, psw) session.setAttribute(username,userName); /如果登录成功把登录的名字放在session中以便在过滤器中判断 return mapping.findForward(loginSuccess); /返回到登陆成功页面 else 22 session.invalidate(); request.setAttribute(loginError, 用户或者密码错误!); /返回到错误页面 return mapping.findForward(loginError); catch(Exception e) e.printStackTrace(); return null; 5.1.2 登陆过滤器 import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.*; public class SecurityAndDeny implements Filter public void destroy() /注销时调用 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException HttpServletRequest request = (HttpServletRequest)req; HttpServletResponse response=(HttpServletResponse)resp; HttpSession session = request.getSession(false); /取出来session如果没有得到空值 if (session= null|session.getAttribute(username)= null) /判断是否登录过如果没有就重定向到登陆页面 String temp=你还没登陆请重新登陆!; temp=.URLEncoder.encode(temp.toString(),utf-8); response.sendRedirect(http:/localhost:8080/JT03EtpLgtWebProject03/login.jsp?lo ginErr=+temp); return; /如果登录了就进入请求页面 chain.doFilter(req, resp); public void init(FilterConfig arg0) throws ServletException /初始化时调用的方法 23 5.1.3 登陆 DAO public Boolean login(String userName,String psw) Employee employee=new Employee(); employee.setPsw(psw) ; employee.setUserName(userName); List results=findByExample(employee); int length=results.size(); if(length=1) return true; else return false; 5.2 供货商的实现 5.2.1 供货商查询 Action package com.javateam3.whmsys.manager.basicinfo.supplyerinfo.action; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import mon.PageBean; import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.QueryForm; import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService; import mon.pojo.Supplier; import mon.utils.Tool; 24 public class QueryAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception QueryForm queryForm = (QueryForm) form; SupplierService ss = new SupplierService(); PageBean pageBean = new PageBean(); List list = null; /存放查出来的spplier对象 String crrPage = request.getParameter(cp); int currentPage = pageBean.getCurrentPage(); int lineSize = pageBean.getLineSize(); Supplier supplier = change(queryForm); if (crrPage != null) currentPage = Integer.parseInt(crrPage); else int allRecorders = ss.getCount(supplier); Tool.setALLRECORDERS(allRecorders); Tool.setPAGESIZE(allRecorders + lineSize - 1) / lineSize); pageBean.setAllRecorders(allRecorders); pageBean.setPageSize(allRecorders + lineSize - 1) / lineSize); list = ss.queryByExample(supplier, currentPage, lineSize); pageBean.setCurrentPage(currentPage); request.setAttribute(pageBean, pageBean); request.setAttribute(list, list); /把查询出来的supplier对象放在request里 return mapping.findForward(supplierResult); /把form表单里的东西转化为supplier 对象 public Supplier change(QueryForm queryForm) Supplier supplier = new Supplier(); if (queryForm.getSupplierId() != null if (queryForm.getAddress() != null if (queryForm.getName() != null if (queryForm.getCredit() != null if (queryForm.getPhone() != null 25 if (queryForm.getRemark() != null return supplier; 5.2.2 供货商修改 Action import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import mon.pojo.Supplier; import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.ModifyForm; import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService; public class ModifyAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) ModifyForm modifyForm = (ModifyForm) form; Supplier supplier = new Supplier(); supplier.setAddress(modifyForm.getAddress(); supplier.setCredit(modifyForm.getCredit(); supplier.setName(modifyForm.getName(); supplier.setPhone(modifyForm.getPhone(); supplier.setRemark(modifyForm.getRemark(); supplier.setSupplierId(modifyForm.getSupplierId(); SupplierService ss = new SupplierService(); try ss.upDate(supplier); return mapping.findForward(success); catch (Exception e) e.printStackTrace(); return mapping.findForward(error); 5.2.2 供货商添加 Action import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; 26 import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import mon.pojo.Supplier; import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.AddForm; import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService; public class AddAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) AddForm addForm = (AddForm) form; Supplier supplier = new Supplier(); supplier.setAddress(addForm.getAddress(); supplier.setCredit(addForm.getCredit(); supplier.setName(addForm.getName(); supplier.setPhone(addForm.getPhone(); supplier.setRemark(addForm.getRemark(); supplier.setSupplierId(addForm.getSupplierId(); SupplierService ss = new SupplierService(); try ss.insert(supplier); return mapping.findForward(success); catch (Exception e) e.printStackTrace(); /出现异常打印轨迹 return mapping.findForward(error); 5.2.3 供货商 DAO package com.javateam3.whmsys.manager.basicinfo.supplyerinfo.dao; import java.util.ArrayList; import java.util.List; import org.hibernate.Criteria; import org.hibernate.LockMode; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!