软件工程仓库管理系统
仓库管理系统系统架构及功能

仓库管理系统系统架构及功能一、系统架构仓库管理系统通常采用多层架构,以满足不同的业务需求和技术要求。
(一)表示层这是用户与系统进行交互的界面。
它可以是基于网页的界面,也可以是移动应用程序的界面。
表示层的设计注重用户体验,要做到操作简单、直观,能够快速响应用户的操作。
例如,用户可以通过输入货物编号、名称等信息快速查询货物的库存情况。
(二)业务逻辑层负责处理系统的核心业务逻辑。
包括货物的入库、出库、库存盘点、移库等操作的规则和流程。
这一层会对用户输入的信息进行验证和处理,确保数据的准确性和完整性。
比如,在入库操作中,会检查货物的数量、质量是否符合要求,然后更新库存数据。
(三)数据访问层主要负责与数据库进行交互,实现数据的读取、写入和更新。
通过优化数据库查询语句和存储过程,提高数据访问的效率。
同时,为了保证数据的安全性和一致性,会设置严格的数据访问权限和数据备份策略。
(四)数据库层用于存储仓库管理系统的所有数据,包括货物信息、库存数量、出入库记录、用户信息等。
数据库的选择要根据企业的数据量和性能要求来决定,常见的数据库有 MySQL、Oracle、SQL Server 等。
为了保证系统的稳定性和可靠性,仓库管理系统通常还会采用一些技术架构,如分布式架构、集群架构等。
分布式架构可以将系统的不同模块部署在不同的服务器上,提高系统的并发处理能力;集群架构则可以通过多个服务器的协同工作,实现系统的高可用性和容错性。
二、系统功能(一)入库管理1、采购入库当企业采购货物到达仓库时,仓库管理人员通过系统进行入库操作。
记录货物的供应商、采购订单号、货物名称、规格、数量、批次等信息,并生成入库单号。
2、生产入库企业内部生产的产品完成后,进入仓库进行存储。
同样需要记录相关的生产信息,如生产工单号、产品型号、数量等。
3、退货入库对于客户退回的货物,进行退货入库处理。
记录退货原因、客户信息等。
(二)出库管理1、销售出库根据销售订单,仓库管理人员进行出库操作。
仓库管理系统总体设计报告

仓库管理系统总体设计报告《软件课程设计》课程作品总体设计报告项目名称物流仓库管理系统项目小组组长林伟龙 354121项目小组成员潘泽文 354115吴宇翔 354148学院名称信息科学与技术学院专业名称软件工程所在年级级4月岭南师范学院1、可行性分析2、需求分析(1)基本信息管理:为仓库主管提供实现对客户信息、供货商信息、库房信息、员工信息的管理维护,包括对信息查询、添加、修改和删除操作。
(2)库存信息管理:为仓库管理员提供实现对短缺货物的报警、成品、部件、礼品、不良物品、移动物品的管理维护,包括对信息查询、添加、修改和删除等操作。
仓库主管对此模块只有查看功能。
(3)出库信息管理:为仓库员工提供查询、添加、修改和删除出库单(包括:产品出库单、部件出库单、礼品出库单)的操作,其中添加和删除操作后的出库单要交由仓库主管审核。
(4)入库信息管理:为仓库员工提供查询、添加、入库单和执行入库(包括:部件入库单、产品入库单、礼品入库单)的操作、其中添加后的入库单要交由仓库主管审核。
(5)库检信息管理:为库检员提供对入库货检、出库货检、在库货检信息管理维护,包括对信息查询、添加、修改和删除等操作。
(6)库房设备检测信息:为库检员提供对库房设备检信息管理维护,包括查询、添加、修改和删除等操作。
(7)报表信息管理:为仓库员工、仓库主管提供实现对报表信息的管理维护,包括对报表信息查询、打印、导出等操作。
(8)个人设置:为仓库管理员、仓库员工、库检员提供修改登录密码。
(9)单据审批:为仓库管理员提供出入库单的审批(包括退货商品、部件的出入库)。
3、数据流分析。
仓库管理系统《C++程序设计》课程设计

2.1总体思路
2.2流程图
库存管理系统的总层次图
物品信息管理层次图
2.3实现思路
首先,利用选择语句和循环语句的嵌套设计主程序,在主菜单中包含了对物品的处理,在主程序中调用各个实现程序;然后,输入物品的信息,在进行归类划分,利用类和编译预处理编写;最后,用全局变量记录添加物品的数量,利用类的实现进行物品的添加,物品的删除,查找,修改物品的信息,统计物品的数量。
根据当前的企业管理体制,一般的库存管理系统,总是根据所掌握的物资类别,相应分成几个模块来进行商品的出入库,库存盘点,以及对供销商的详细记录。为了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划进行进货,使得各商品不会缺货,使物资设备的储备最佳。
因此有必要开发一套库存管理系统来提高企业工作效率, 而所使用的这套库存管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的库存费用、适时适量的库存数量,使企业生产活动效率最大化。通过对这些情况的仔细调查,我们开发了下面的仓库库存管理系统。
cout<<"6.退出系统!"<<endl;
cout<<"*********************************************"<<endl;
cout<<"请输入你的选择:";
3.1功能模块划分
模块一:增加项目
按
任
意
键
返
回
此模块是为库存管理系统增加仓库的新商品信息。
运行界面如下:
模块二:显示全部项目
按
任
意
键
返
回
此模块是为仓库管理员提供仓库所有的商品的信息。
ERP 仓库管理系统

ERP 仓库管理系统一、引言随着现代商业的发展,企业面临着越来越多的挑战,尤其在仓库管理方面。
传统的手工操作已经无法满足企业对高效率、高准确性和高可靠性的要求。
为了解决这些问题,越来越多的企业开始采用ERP(企业资源计划)仓库管理系统。
本文将介绍ERP仓库管理系统的定义、功能、优势以及如何选择和实施该系统。
二、ERP仓库管理系统的定义ERP仓库管理系统是一种集成的软件解决方案,用于管理和控制企业仓库内的物流活动。
它通过自动化和信息化的手段来提高仓库管理的效率和准确性。
该系统通常包括库存管理、入库管理、出库管理、补货管理等功能模块,以确保物资的及时供应和生产运作的顺利进行。
三、ERP仓库管理系统的功能1. 库存管理:该功能模块可以实时跟踪和管理仓库内物料的库存情况,包括物料的数量、位置和状态等信息。
通过准确的库存数据,企业可以及时了解物料的供应情况,从而避免物料的短缺和过量。
2. 入库管理:该功能模块可以帮助企业实现对物料入库的自动化控制。
通过扫描条形码或RFID技术,系统可以快速准确地识别物料并记录入库信息,包括物料的序列号、批次号和供应商信息等。
这有助于提高入库的准确性和效率,同时减少人为错误和纠正成本。
3. 出库管理:该功能模块可以帮助企业实现对物料出库的自动化控制。
在顾客下单后,系统可以根据订单信息自动生成出库任务,并且分配给合适的仓库人员。
同时,系统会自动更新库存数据,并生成相应的出库报告和单据,以方便企业进行后续的物流和财务处理。
4. 补货管理:该功能模块可以基于库存数据和订单需求,自动生成补货计划,并安排合适的时间和数量进行补货。
这有助于避免物料短缺和过量,提高企业的供应链管理和客户服务水平。
四、ERP仓库管理系统的优势1. 提高仓库管理效率:通过自动化和信息化的手段,ERP仓库管理系统可以大大提高仓库操作的效率。
例如,它可以自动识别和记录物料的信息、自动生成出入库任务、提醒库存不足等,从而减少了手工操作的时间和错误。
软件工程课程设计仓库管理系统

软件工程课程设计仓库管理系统一、引言为了更有效地管理和调度仓库中的货物,提高工作效率和减少出错率,我们为仓库设计了一套管理系统。
本文将详细介绍和说明我们的软件工程课程设计——仓库管理系统的设计和实现。
二、需求分析本仓库管理系统旨在实现以下功能:1.货物管理:包括货物入库、出库、调拨、盘点等功能,同时可根据货物种类、所在位置等进行分类查找。
2.人员管理:包括员工档案管理、权限设置、岗位分配等功能。
3.数据统计:当仓库管理系统大规模的运转时,系统将产生大量的数据,如货物的进出库等。
通过系统的统计功能,可以清晰地查看货物的进销存情况,为仓库管理者提供参考依据。
4.报表管理:系统需要支持报表的管理,如货物出库单、汇总表、调拨单等。
方便用户高效地查看和分享相关数据。
三、系统设计系统整体采用B/S模式,前端使用Bootstrap+JQuery框架,后端使用JavaEE+MySQL。
在设计系统时,将系统的模块按照不同的职能划分如下:1.货物管理模块该模块实现货物的入库、出库、调拨等功能。
货物的管理主要通过管理货物代码、名称、类型、数量、位置等信息来实现。
货物的类型和状态是可以自由定义和修改的,方便用户自行根据不同需求来处理相关数据。
在该模块中使用了jQuery的datatable插件实现了货物展示的自适应、排序、筛选、分页等功能。
2.人员管理模块该模块实现员工的档案管理、权限管理、岗位分配等功能。
员工档案包括相关信息:姓名、性别、出生日期、籍贯、现住址、联系方式、加入时间、身份证号等。
权限管理包括对员工访问后台管理的权限进行设置和修改。
岗位分配将各员工的岗位分配信息做出记录,便于以后的管理。
3.数据统计模块该模块主要实现对货物的统计与分析,包括货物数量的统计、不同类型货物数量的对比、货物运动情况(入库、出库、调拨、盘点)的统计等。
数据统计还可以辅助仓库管理员,对仓库货物进行全面、及时的掌控。
同时该模块的数据统计能力助于仓库管理人员了解货物分布、总数量和货物流动情况等信息,便于制定合理的调度和管理策略。
仓库管理系统软件需求说明书

仓库信息管理系统软件需求说明书目录1. 引言 (1)1.1 目的 (1)1.2 项目范围 (1)1.3 定义 (4)2. 系统需求概述 (5)2.1 用例模型 (5)2.2 假设和依赖 (6)3. 需求与可行性分析 ............................................................................. 错误!未定义书签。
3.1 用例描述................................................................................... 错误!未定义书签。
3.2 规格说明 (9)3.2.1 系统需求分析 (9)3.2.2 功能需求分析 (9)3.2.3 性能需求分析 (10)3.2.4技术可行性分析 (10)3.2.5 经济可行性分析 (10)4. 术语表 (11)软件需求说明书1. 引言1.1 目的本文档描述了仓库信息管理系统的软件需求规格。
目的在于向读者表述系统的环境,系统的功能和非功能的需求。
1.2 项目范围本次软件项目开发的是一个仓库信息管理系统,理论上能够实现于超市、仓库等部门的货物管理系统,其目的在于实现超市、仓库等部门的货物更有效的管理,使超市、仓库能够更方便、更有效率的完成日常工作,以及实现完善日常生活中货物管理的各种功能。
共包括四个模块●用户登录●仓库管理●业务查询●系统设置用户登录模块由用户登录、用户注销、退出系统3个部分组成。
用户可以用两种身份登录系统:普通操作员或经理(管理人员);不同身份登录被系统授予不同的使用权限,这样提高了本系统的安全性,避免了无关人员获取不在他权限范围内的信息。
用户在登录后可以不退出本系统,而采用用户注销的方式使系统不存在激活状态下的用户。
仓库管理模块(1)仓库进货仓库存放货物品种繁多,堆存方式以及处理过程也非常复杂,随着业务量的增加,仓库管理者所需要处理的信息量大幅上升,因此管理者往往很难及时准确掌握整个仓库的动作状态。
仓库管理系统系统架构及功能

仓库管理系统系统架构及功能关键信息项:1、系统架构描述2、功能模块详情3、数据存储与安全机制4、系统性能要求5、维护与升级计划6、培训与支持服务11 系统架构描述111 仓库管理系统将采用基于客户端服务器(C/S)架构,客户端负责与用户进行交互,服务器端负责数据处理和存储。
112 系统采用分层架构,包括表示层、业务逻辑层和数据访问层。
表示层用于展示用户界面,业务逻辑层处理业务规则和流程,数据访问层负责与数据库进行交互。
113 为了保证系统的可扩展性和灵活性,将采用微服务架构,将不同的功能模块拆分成独立的服务,便于独立部署和升级。
12 功能模块详情121 入库管理模块1211 支持多种入库方式,包括采购入库、生产入库、退货入库等。
1212 入库时能够自动生成入库单号,并记录入库物品的详细信息,如名称、规格、数量、批次、生产日期等。
1213 对入库物品进行质量检验,不合格物品能够进行标记和处理。
122 出库管理模块1221 支持多种出库方式,如销售出库、领料出库、调拨出库等。
1222 出库时能够根据库存情况进行库存预警,避免库存不足。
1223 自动生成出库单号,并记录出库物品的详细信息。
123 库存管理模块1231 实时更新库存数量,能够准确反映库存的增减变化。
1232 提供库存盘点功能,支持定期盘点和不定期盘点。
1233 对库存进行预警设置,当库存低于或高于设定值时,系统自动发出警报。
124 报表管理模块1241 提供各类库存报表,如库存日报表、月报表、年报表等。
1242 支持自定义报表,用户可以根据自己的需求选择报表字段和格式。
1243 能够将报表导出为 Excel、PDF 等格式,方便打印和保存。
13 数据存储与安全机制131 数据存储采用关系型数据库,如 MySQL 或 Oracle,确保数据的完整性和一致性。
132 定期进行数据备份,备份策略包括全量备份和增量备份,备份数据存储在异地服务器,以防止数据丢失。
仓库管理系统+JAVA源代码++设计说明

计算机与通信学院本科生毕业设计说明书仓库管理系统*者:***学号:********专业:计算机科学与技术班级:05级软件工程(2)指导教师:***答辩时间:2009年6月仓库管理系统Storage Management System曹亚磊(Cao Yalei)05240207前言随着科学技术的不断发展,我们的社会已经进入了一个信息化的社会,人们每天都要接收大量的信息和处理大量的数据,仅靠传统的纸和笔已不能适应这个时代的要求,人们必须采取新的手段,于是信息技术进入我们的生活,计算机不再是简单的计算工具,它已成为我们生活中处理大量信息的不可或缺的手段。
在当今产业竞争越来越激烈的信息时代,企业经营除了降低成本,提高品质外,更需要以先进的管理理念来整合企业内部与外部资源。
仓库管理系统正是在这个背景下产生的。
本系统正是针对仓库部门的货物信息管理,通过对仓库基本信息﹑出入库信息等的系统界面设计,将会给管理者带来极大的方便,具有手工管理无法比拟的优点,例如检索速度快、查找方便、可靠性高、存储量大、使用时间长等。
用计算机管理取代传统的手工操作,大大减少了管理人员的工作量,提高了工作效率,为获取详细的管理信息提供了保证,方便各类人员的查询和信息保证,增强了管理工作的时效和人员主动性。
仓库管理主要摆阔两方面:一是仓库的基本信息,涉及人员信息、库房信息、供货商信息、客户信息;另一项是仓库业务管理,包括入库管理、在库管理、出库管理、报表管理。
在本系统中侧重实现仓库的基本信息管理。
摘要仓库管理系统是为了实现企业产品管理的系统化、规范化和自动化,从而提高企业管理效率而设计的。
它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成仓库管理提供了强有力的工具和管理手段。
仓库管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了仓库管理的要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件设计书仓库管理系统系别:应用数学系专业:信息与计算科学班级:1204学号:2012060437姓名:闫丹爱第一章可行性研究报告1.1引言1.1.1目的本软件是用来有效的管理超市仓库货物数量及种类,以方便超市工作人员可以全面的了解超市仓库库存货物数量和种类来方便高效的管理超市仓库。
该项目可行性研究报告也是对超市仓库管理系统的全面考虑,是项目分析员进行进一步工作的前提,是软件开发人员成功的开发项目的前提.此分析研究报告可以使软件开发团体尽可能早的估计研制课题的可行性,可以在定义阶段较早的认识到系统方案的缺陷,可以节省时间、财力和精力,并且避免了专业方面的困难.及早地预测项目的可行性,在可行的前提下获得最好的实施方案。
1.1.2背景随着社会的不断发展,物质的不断丰富,为了满足人们的需求,超市的货物也是越来越丰富。
为了方便超市管理人员及时有效的了解仓库情况,更好的管理超市货物,提高管理效率,从而提出本软件。
1.2.要求和目标1.2.1基本要求·功能:具有一定权限的管理人员可以对货物的售出和补充,以及新增加的商品和种类及时的进行修改,同时还具有缺货提示功能。
·性能:详实有效的罗列出商品货物的数量和种类,来方便超市管理人员。
·输入:具有一定权限的管理人员对货物数量种类进行修改。
·输出:查询结果。
系统功能模块图1-1,图1-1系统功能模块图录入货物信息、更新查看管理人员功能模块及流图的简要描述:首先超市管理人员需要登录系统,如果登陆成功则以进入系统进行操作,否则会提示错误,要求重新登录。
登录成功后,管理人员可以根据自己的需要进行操作。
当添加货物种类,更改货物数量,都需要管理人员登录系统后才能操作。
当货物数量较少时,系统会自动提示管理人员要进货了。
本系统还可以管理管理人员的登录,即可以对有权限操作该系统的人员进行增、删、改功能。
·在安全与保密方面的要求:对于有权限的人员才可以进行对系统的操作。
1.2.2开发目标①方便使用者对仓库货物的查询、删除、更新,减少人力和设备的需求。
②方便了解进出仓库货物情况。
③及时为用户发出缺货提示。
④提高工作的效率。
⑤降低仓库管理及维护费用。
1.2.3具备条件①开发条件:计算机实验室所提供的环境即可。
②开发时间:开发的全过程必须在3个月内完成。
③开发所需的经费:无。
④运行的系统:Window 7以上版本即可⑤数据库:sqlserver 2000或者sqlsever 20051.3.社会因素方面的可行性1.3.1法律方面的可行性该系统的开发和研制,将不会侵犯他人、集体和国家的利益,不会违犯国家政策和法律。
1.3.2使用方面的可行性该系统操做简单,不需要专业培训,一般人员即可胜任。
1.4.结论综上所述,该项目应立即开始进行研发。
从人力资源优化角度来说,可以充分利用人力资源。
从经济利益的角度来看,即时开发完成即可用,可以立即赢利。
但系统仍旧有些不足,例如修改方面还需人工手动修改数量等。
在系统的交付使用中如有不足还望指出,以便改进。
第二章仓库管理系统需求分析本系统的主要需求者是超市后台管理员。
2.1.本项目概述本项目所开发的超市仓库管理系统完成超市管理员对货物的管理,减少数据漏掉的情况,更方便管理人员的浏览和操作,节省了人力物力。
2.2.系统一般性描述由于本系统的数据还算不上大型的。
所以数据库服务器与web服务器共用同一台计算机。
系统中的货物信息和管理员信息都存放在sqlserver 数据库中。
2.2.1系统的用例图‘图2-1系统用例图’,用例图说明:图2-1系统用例图本系统主要只针对具有权限的理员进行操作,首先管理员必须具有正确的账号和密码才能进入系统进行操作。
进入系统后的主要功能模块如下:添加功能:可以添加货物的具体信息同时还可以增加管理员。
修改功能:可以对货物的所有信息进行修改。
删除功能:删除超市已经不存在的货物的信息同时还可以删除不存在的管理员。
查询功能:可根据货物的品牌或者名称对货物进行查询,也可以根据管理员账号或者管理员用户名对用户进行查询。
进货出货功能:可以对货物的数量进行修改。
缺货提示:当货物的数量小于50件时在主页面会为管理员进行提示已缺货。
更改密码功能:当某个管理员登录系统后可以更改自己的密码。
2.2.2系统的用类‘图2-2类图’,类图说明:图2-2类图类的详细说明:商品类:属性:商品编号:商品编号是用来确定商品唯一性的。
商品数量:说明商品的库存量。
商品名称:说明商品的名称。
方法:登录系统:用于验证管理身份。
增加商品:用于增加系统内没有的商品信息。
删除商品:仓库没有的商品信息。
修改商品:用于修改商品的具体信息。
进货:用于只对要增加货物量的商品进行操作。
出货:用于只对要减少货物量的商品进行操作。
缺货提示:当商品数量低于10后会在主页上提示缺货。
管理员类:属性:管理员ID:该属性是自动增长型,具有唯一性。
管理员账号:用于登录时的账号。
管理员名称:该属性和账号一起可以识别唯一的管理员。
管理员密码:用于登录时和账号一起用于身份验证。
方法:增加管理员:可以赋予没有权限的人管理权限。
删除管理员:可以删除不存在的管理员。
2.2.数据流图对用户需求进行分析,画出系统的数据流图,如图3.1——图3.2所示。
图 3.1 系统的顶层数据流图图 3.2 系统的0层数据流图图3.3 仓库管理系统的1层DFD——“货物入库管理”加工的分解图2.2.5仓库管理系统的E-R图根据系统数据流程图,我们可以列出以下系统所需的数据项:员工(员工号,姓名,密码,证件号,员工类型,是否员工)商品(商品编号,商品名称,商品数量)仓库(商品编号,商品名称,库存量)入库(入库编号,商品编号,商品名称,入库数量,入库人,入库时间)出库(出库编号,商品编号,商品名称,出库数量,出库人,出库时间)仓库管理系统的E-R模型如图3.3-图所示。
通过对系统结构化的分析得到本系统有四大模块:一、系统管理:对用户的一些添加,删除,修改。
二、信息管理:对一些基本信息(商品,往来单位,仓库)的管理。
三、出入库管理:对出库入库的管理。
四、查询管理:对出库、入库单、库存信息的查询。
图3.3实体之间关系E-R图第三章设计说明书3.1 引言3.1.1 系统概要及其运行环境软件详细设计阶段是软件设计的重要阶段,本阶段的工作就是要对系统中的每个模块给出足够详细的过程性描述,因此也称为“过程设计”。
详细设计的根本目的就是确定应该怎样具体实现所需求的系统,也就是说经过这一阶段的设计,会得出对学生选课系统的精确描述。
其根本任务就是设计出程序的“蓝图” 3.1.2 系统的组成部分及其结构本系统分为四大模块,即用户管理模块、出库模块、入库模块、库存管理模块。
管理员模块可分为普通用户模块和管理员模块,库存管理模块包括查询模块和修改模块。
详细操作请见类图3.2 软件设计约束本系统采用Java 技术,基本上没有什么平台约束。
在数据库方面,需要创建本地数据源。
3.2.1 设计目标和原则本设计欲达到的目标:能够使用户简单快捷的完成商品出库和入库的功能及库存管理功能。
系统的性能达到高效,实用,易于维护。
3.2.2 设计约束(1)无论是普通用户还是管理员,都可以在本地访问该系统。
完成各自授权的活动和工作。
(2)该系统考虑性能、安全、可靠性、易用、可扩展和可维护。
(3)整个开发过程应满足软件需求分析的进度要求所规定的时间。
3.3 软件设计描述3.3.1 总体结构设计本系统由以下几个功能模块组成: 用户管理模块汇总:(1) 添加普通用户信息(仅管理员可以使用,可以添加用户到数据库中)(2) 管理普通用户信息(仅管理员可以使用,可以对普通用户进行修改删除等操作) 库存管理模块汇总(1) 查询入库信息(普通用户使用,对自己入库的商品进行查询操作) (2) 查询出库信息(普通用户使用,对所出库的商品进行相关操作) (3) 所有库存信息(对所有商品信息进行查询) 3.3.2 详细结构设计图3-1仓库管理系统顺序图3.4 系统界面设计描述当用户启动程序后真接显示主界面,在主界面中有‘用户管理’,‘商品入库’,‘商品出库’,‘库存管理’以及退出系统。
当用户在未登录的状态下执行任何操作时系统会自动判断是否已经登录,若用户还没有登录则显示登录界面,让用户进行登录。
若登录的帐号不存在则表示该用户还不是员工,故需要用户重新申请新的用户,新用户的类型为普通员工,当普通用户已经通过管理员审核,并且分配了相关的权限后就可以登录系统。
若用户是管理员则该用户可以对普通用户进行相关的修改和删除,而且还可以修改、查询、删除库存表及商品出入库表中的相关信息。
若用户是普通员工则只能进行商品的出入库及查询。
3.4.1 登录界面设计用户通过输入登录的账号和密码及类型系统进行验证图3-2用户登录界面3.4.2 商品出入库界面设计图3-3商品出入库界面设计3.4.3 库存界面设计图3-4库存界面设计3.5 数据库设计数据库名:StoreHouseDB用户表:Users 主键:员工号商品入库表:InStore 主键:入库编号商品出库表:OutStore 主键:出库编号库存表:StoreManage 主键:商品编号商品表:goods 主键:商品编号3.5.1 建表下面具体给出各个表列名属性员工号Varchar(13)员工姓名Varcahar(20)密码Varchar(16)证件号Varchar(18)员工类型Varchar(8)是否员工Varchar(2)表3-2 InStore列名属性入库编号int商品编号Varchar(20)商品名称Varchar(50)入库数量Int入库人Varchar(13)入库时间Datetime()列名属性出库编号Int表3-4 StoreManage第四章系统相关代码4.1登录界面(主要代码)public boolean isExistsEmply(String id){boolean flags=false;try{int count=0;String sql1="select 员工号 from Users where 员工号=?";PreparedStatement ps=conn.prepareStatement(sql1);ps.setString(1, (String)id);ResultSet result=ps.executeQuery();while(result.next()){count=result.getRow();}result.close();ps.close();if (count>0){this.UID=id;flags=true;getInfo(id);return flags;}else{error.errorDialog((String)id);}}catch(Exception e){e.printStackTrace();}return flags;}//根据‘工号’分别获取对应的的信息public void getInfo(String uid){try{String sql2="select 员工姓名,密码,员工类型,是否员工 from Users where 员工号=?";PreparedStatement pps=conn.prepareStatement(sql2);pps.setString(1,uid);ResultSet result=pps.executeQuery();while(result.next()){name=result.getString(1).toString().trim();password=result.getString(2).trim();employtype=result.getString(3).toString().trim();emplooy=result.getString(4).toString().trim();}result.close();pps.close();}catch(Exception e){e.printStackTrace();}}//对登录的'工号'进行密码验证public boolean login(String id,String pwd,String type){boolean isEmploy=false;try{if (id.equals(UID) && pwd.equals(password) && type.equals(employtype)){isEmploy=true;return isEmploy;}else{return isEmploy;}}catch(Exception e){e.printStackTrace();}return isEmploy;}//判断用户是否已经通过管理员的审核public boolean Y_NEmply(){boolean isE=false;if (this.emplooy.equals("是")){System.out.println("员工号:"+UID+"已经通过了审核.................");main.showMainFarme();isE=true;return isE;}else if (this.emplooy.equals("否")){error.noEmplo0y(UID);return isE;}return isE;}4.2出库界面(主要代码)public Object setSdata2(){try{String sql2="select * from OutStore";Statement st=conn.createStatement();ResultSet result=st.executeQuery(sql2);Sdata2=new Object[Row2][Column2];int n=0;while(result.next()){Sdata2[n][0]=result.getString(1).toString().trim();Sdata2[n][1]=result.getString(2).toString().trim();Sdata2[n][2]=result.getString(3).toString().trim();Sdata2[n][3]=result.getString(4).toString().trim();Sdata2[n][4]=result.getString(5).toString().trim();Sdata2[n][5]=result.getString(6).toString().trim();n++;}result.close();st.close();return Sdata2;}catch(Exception e){e.printStackTrace();}return Sdata2;}//先判断库存表中是否存在要出库的商品编号public boolean isExistsGid(String gid){boolean flags=false;try{int count=0;String sql3="select count(商品编号) from StoreManage where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql3);ps.setString(1, gid);ResultSet result=ps.executeQuery();while(result.next()){count++;}result.close();ps.close();if (count>0){flags=true;return flags;}else{return flags;}}catch(Exception e){e.printStackTrace();}return flags;}//判断库存表中的库存量是否满足出库的笨条件public boolean lookNumber(String gid,int number){boolean flags=false;try{int num=0;String sql4="select 库存量 from StoreManage where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql4);ps.setString(1, gid);ResultSet result=ps.executeQuery();while(result.next()){num=result.getInt(1);}result.close();ps.close();if (number<=num){flags=true;}elseflags=false;return flags;}catch(Exception e){e.printStackTrace();}return flags;}//商品出库向出库表写入一条数据的出库记录public void newStoreOuput(String outgid,String outgname,int outgnum){ try{String sql5="insert into OutStore (商品编号,商品名称,出库数量,出库人,出库时间) values(?,?,?,?,getdate())";PreparedStatement ps=conn.prepareStatement(sql5);ps.setString(1, outgid);ps.setString(2, outgname);ps.setInt(3, outgnum);ps.setString(4, outpeople);ps.executeQuery();ps.close();}catch(Exception e){e.printStackTrace();}}//这是要修改库存表中的库存量public void updateStoreManage(String outgid ,int num){try{String sql6="update StoreManage set 库存量=(select 库存量from StoreManage where 商品编号=?)-? where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql6);ps.setString(1,outgid);ps.setInt(2, num);ps.setString(3, outgid);ps.executeQuery();ps.close();}catch(Exception e){e.printStackTrace();}}//向出库表模型中添加一条新一出库记录public Object addOutStoreToTable(String outgid){try{String sql7="select * from OutStore where 商品编号=? and 出库编号=(select count(*) from OutStore)";PreparedStatement ps=conn.prepareStatement(sql7);ps.setString(1, outgid);ResultSet result=ps.executeQuery();while(result.next()){newStoreOfOut[0]= new Integer(result.getInt(1));newStoreOfOut[1]=result.getString(2).toString().trim();newStoreOfOut[2]=result.getString(3).toString().trim();newStoreOfOut[3]=new Integer(result.getInt(4));newStoreOfOut[4]=result.getString(5).toString().trim();newStoreOfOut[5]=result.getString(6).toString().trim();}result.close();ps.close();return newStoreOfOut;}catch(Exception e){e.printStackTrace();}return newStoreOfOut;}4.3入库界面public Object setSdata(){try{String sq2="select * from InStore";Statement st=conn.createStatement();ResultSet result=st.executeQuery(sq2);Sdata=new Object[Row][Column];int n=0;while(result.next()){Sdata[n][0]=result.getString(1).toString().trim();Sdata[n][1]=result.getString(2).toString().trim();Sdata[n][2]=result.getString(3).toString().trim();Sdata[n][3]=result.getString(4).toString().trim();Sdata[n][4]=result.getString(5).toString().trim();Sdata[n][5]=result.getString(6).toString().trim();n++;}result.close();st.close();return Sdata;}catch(Exception e){e.printStackTrace();}return Sdata;}//向入库表中插入新的数据public void goodsInserData(String gid,String gname,int gnum){ try{String sql3="insert into InStore (商品编号,商品名称,入库数量,入库人,入库时间) values(?,?,?,?,getdate())";PreparedStatement ps=conn.prepareStatement(sql3);ps.setString(1, gid);ps.setString(2, gname);ps.setInt(3, gnum);ps.setString(4, inpeople);ps.executeUpdate();ps.close();}catch(Exception e){e.printStackTrace();}}//判断库存表中是否有相同商品编号的商品存在public boolean isExistsGood(String gid){boolean flags=false;try{String sql4="select * from StoreManage where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql4);ps.setString(1, gid);ResultSet result=ps.executeQuery();int i=0;while(result.next()){i++;}result.close();ps.close();if (i>0){//如果库存表中存在该商品的商品编号,则调用修改函数flags=true;return flags;}else{//若库存表中不存在则调用插入函数新插入一条数据return flags;}}catch(Exception e){e.printStackTrace();}return flags;}//若库存表中不存在则新建一条信息public void insertStoreManage(String gid,String gname,int gnum){ try{String sql5="insert into StoreManage (商品编号,商品名称,库存量) values(?,?,?)";PreparedStatement ps=conn.prepareStatement(sql5);ps.setString(1, gid);ps.setString(2, gname);ps.setInt(3, gnum);ps.executeUpdate();ps.close();}catch(Exception e){e.printStackTrace();}}//如果存在直接修改原有的数量//1、先获取原有的库存量public int getStoreNumber(String gid){int num=0;try{String sql6="select 入库数据 from StoreManage where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql6);ps.setString(1,gid);//ps.executeQuery();ResultSet result=ps.executeQuery();while(result.next()){num=result.getInt(1);}result.close();ps.close();return num;}catch(Exception e){e.printStackTrace();}return num;}//2、再修改库存量public void updateStoreManage(int count,String gid){try{int NUM=getStoreNumber(gid)+count;String sql7="update StoreManage set 库存量=NUM where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql7);ps.setString(1,gid);//ps.setInt(1, count);//ps.setString(2, gid);ps.executeUpdate();ps.close();}catch(Exception e){e.printStackTrace();}}//error!没有注意到出库表会存在多条相同的记录//向入库表模型中添加一条入库记录public void addStoreOnInStore(String gid){Object[] newRow=new Object[6];try{String sql8="select * from InStore where 商品编号=? and 入库编号=(select count(*) from InStore)";PreparedStatement ps=conn.prepareStatement(sql8);ps.setString(1,gid);ResultSet result=ps.executeQuery();while(result.next()){newRow[0]= new Integer(result.getInt(1));newRow[1]=result.getString(2).toString().trim();newRow[2]=result.getString(3).toString().trim();newRow[3]=new Integer(result.getInt(4));newRow[4]=result.getString(5).toString().trim();newRow[5]=result.getString(6).toString().trim();}result.close();ps.close();//向表模式中添加一行新数据dtm1.addRow(newRow);}catch(Exception e){e.printStackTrace();}}4.4库存管理界面public Object setSData(){try{String sql2="select * from StoreManage";Statement st=conn.createStatement();ResultSet result2=st.executeQuery(sql2);Sdata=new Object[Row][Column];int n=0;while(result2.next()){Sdata[n][0]=result2.getString(1).toString().trim();Sdata[n][1]=result2.getString(2).toString().trim();Sdata[n][2]=result2.getInt(3);n++;}result2.close();st.close();return Sdata;}catch(Exception e){System.out.println(e.getMessage());}return Sdata;}public void init(){//先调用方法获得表头和二维表的表数据//this.setSData();//this.setHeader();this.setTitle("天涯仓库管理");this.setSize(700,300);this.setLocation(300, 150);this.setLayout(new GridLayout(2,1));dtm1=new DefaultTableModel(Sdata,Sheader);jtable=new JTable(dtm1);pane1=new JScrollPane(jtable);jtable.setRowHeight(30);jtable.setGridColor(Color.blue);jp1.add(jlbl1);jp1.add(jtxt1);jp1.add(jlbl2);jp1.add(jtxt2);jp1.add(jlbl3);jp1.add(jtxt3);jp1.add(btnupdate);jp1.add(btndel);btnupdate.addActionListener(this);btndel.addActionListener(this);jtable.addMouseListener(this);//dtm1.addTableModelListener(jtable);this.add(pane1);this.add(jp1);this.show();}public boolean UpdateStoreDate1(String goodid,String goodname,int goodnum){boolean flags=false;try{String Sql3="update StoreManage set 商品名称=?,库存量=? where 商品名称='goodid'";PreparedStatement ps=conn.prepareStatement(Sql3);ps.setString(1, goodname);ps.setInt(2, goodnum);ps.executeUpdate();flags=true;}catch(Exception e){System.out.println(e.getMessage());}return flags;}//更新数据public boolean UpdateStoreDate(String goodid,String goodname,int goodnum){ boolean flags=false;try{String Sql3="update StoreManage set 商品名称=?,库存量=? where 商品名称=?";PreparedStatement ps=conn.prepareStatement(Sql3);ps.setString(1, goodname);ps.setInt(2, goodnum);ps.setString(3, goodid);ps.executeUpdate();ps.close();flags=true;}catch(Exception e){System.out.println(e.getMessage());}return flags;}//删除选中的数据public boolean DelStoreDate(String goodid){boolean flags=false;try{String sql4="delete from StoreManage where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql4);ps.setString(1, goodid);ps.executeUpdate();ps.close();flags=true;}catch(Exception e){System.out.println(e.getMessage());}return flags;}//判断是否缺货public boolean IsDeletio(){boolean flags=false;try{String sql5="select count(商品编号) from StoreManage where 库存量<=50";Statement st=conn.createStatement();ResultSet result=st.executeQuery(sql5);int m=0;while(result.next()){m++;}//判断是否有商品缺失if (m>0){flags=true;}}catch(Exception e){System.out.println(e.getMessage());}return flags;}第五章测试计划报告5.1.引言5.1.1目的本软件是用来有效的管理超市仓库货物数量及种类,以方便超市工作人员可以全面的了解超市仓库库存货物数量和种类来方便高效的管理超市仓库。