版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
仓库管理系统分析与设计目录TOC\o"1-3"\h\u17037关键词:仓库管理系统信息数据库 2142131绪论 2269471.1开发背景 248681.2设计意义 2179241.3论文组织结构 352902需求分析 3185502.12业务需求 325032.2功能分析 3153333系统设计 4242663.1业务逻辑设计 4143473.2数据库设计: 5239104编码实现 10136144.1基础管理 1012124.1.1客户管理如图4-1 10179374.1.2供应商管理如图4-2 1251224.1.3商品管理如图4-3 13201094.2进货管理 15254124.2.1商品进货如图4-4所示 159714.2.2商品退货流程如图4-5所示 18171894.3销售管理 20111264.3.1商品销售如图4-6所示 2091774.3.2销售退货管理如图4-7所示 22310735测试 2411896总结展望 3510098参考文献: 35摘要:科技时代日新月异,计算机不仅仅是计算机了,已经成为人们处理信息的手段。信息化的处理数据,可以有效的降低企业成本,降低出错几率。开发一个有效的仓库管理软件是非常有必要的。此仓库管理系统实现了仓库商品的入库管理,出库管理,销售管理,退货管理,形成有效报表,这样管理者就能做出对公司最有效的决策。系统可以快速搜索商品目前的信息,查看目前商品在仓库的情况,后端采用数据库存储,保证了数据的稳定和庞大性,弥补了人工记账的不足,提高了可靠性,提高了效率,保证了管理员的工作热情。而且不同的角色对应不同的权限,保证了系统的数据安全性。关键词:仓库管理系统信息数据库1绪论1.1开发背景社会犹如车轮一样滚滚向前,传统的仓储管理模式已经满足不了现在工作的需求,仓库管理是一个非常非常庞大的事情,随时随地都有大量的业务需要处理。如果仅仅是需要人来管理数据,那将是非常庞大的工作量。而且货物有非常多的种类,就造成了极大的随机性,更加提高了出错的概率,尤其在这种反复枯燥的任务里面,人更容易出错。一旦出错了,改起来就非常麻烦,真是牵一发而动全身。这些工作本就没必要做,在新的系统下完全可以避免这些无用的工作,所以非常有必要开发这么一个系统。本系统采用mysql作为数据库,用java写的程序,前端用的html。1.2设计意义信息技术的建设,任何企业都应该,把信息技术作为重中之重,已经是一个企业实力的体现了。企业管理模式应该从传统慢慢转向现代化,这样就可以有坚固的企业护城河,对企业管理至关重要,举足轻重。因为企业一定要发展,发展就造成业务量急剧增大,就造成信息的成倍增加,如果再像以前一样处理数据,就显得非常力不从心,因为需要仔细化精细化管理,各部门之间还要统一协调,这样算起来就会有很大的劳动强度。为了省事省力精确计算,所以必须要建立一个以数据库为根本的仓库管理系统,计算机系统可以代替人的工作,有效提高工作效率,还能提高工作质量,提高整体企业的管理水平。到目前为止,这已经成为一个很有效的方式,企业未来的发展方向就是如此。所以我们要开发一套如此有用的软件。1.3论文组织结构本文共由八部分组成(1)序言部分(2)需求分析(3)系统设计(4)编码实现(5)测试(6)总结展望2需求分析2.12业务需求这个系统面向厂家、经销商、超市等。从需求上面向B端,从B端用户的角度来思考用户的业务需求。厂家、经销商、超市:需登录,管理员不同,权限不同,不同商品,不同供应商。商品和供应商的增删查改。2.2功能分析本系统主要有以下功能:客户管理:管理客户的详细信息供应商管理:管理供应商的详细信息商品管理:管理商品的详细信息商品进货:进货记录管理商品退货:商品退货管理销售管理:管理商品销售记录销售退货查询:管理退货记录部门管理:(1)销售部(2)运营部(3)生产部门菜单管理:基础管理、进货管理、销售管理、系统管理、其他管理登录日志:不同用户登录的记录系统公告:公布公告每天的信息图标管理:管理每个功能的图标缓存管理:可清除缓存数据3系统设计3.1业务逻辑设计业务逻辑系统如图3-1所示3-1业务逻辑图这个项目根据需求开发设计,三层管理系统,使用三层构架,三层构架分别为:表现层、业务逻辑层、数据访问层。使用前段后端分离的开发模式前段与后端的数据分开,由此来降低各个系统逻辑之间的可靠度,方便了后期维护与管理,增加了企业的可扩展性。表现层:只负责显示数据,对接逻辑接口显示在上面,直接显示数据在接口页面上。业务层:主要是负责数据的处理与维护,一般情况下接收到数据,会对数据进行处理,然后反馈在页面上。底层数据访问层:这一层负责最基本的数据的增删查改,并且反馈到上一层。3.2数据库设计:3-2-1客户实体3-2-2商品实体3-2-3供应商实体总E-R图3-2-4所示3-2-4总E-R图数据库根据业务模块做成了表,每个表都是根据模块单独设计。这些表都是相互依存,这样就有效的降低了数据重复率,方便后期维护开发。数据表:3-1admin(客户表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键编号2customernameVarchar(255)否客户名字3zipVarchar(255)否邮编4addressVarchar(255)否地址5telephoneVarchar(250)否固定电话6connectionpersionVarchar(245)否连接持久性7phoneVarchar(230)否客户的手机号8bankVarchar(220)否客户的银行9accountVarchar(210)否客户的银行卡号10emailVarchar(200)否客户的电子邮箱11faxVarchar(211)否邮编12availableInt(11)否是否可用3-2goods(商品表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键商品表主键,自动增长2goodsnameVarchar(220)否商品的名字3provideridInt(10)否商品的供应商4produceplaceVarchar(180)否商品供应商地址5sizeVarchar(190)否不同商品规格6goodspackageVarchar(110)否不同商品包装7productcodeInt(11)否不同商品代码8promitcodeVarchar(220)否不同商品承诺码9descriptionVarchar(210)否不同商品介绍10priceVarchar(220)否不同商品价格11numberInt(11)否库存数量12dangernumVarchar(220)否预警数量13goodsimgVarchar(230)否生产日期14availableInt(10)否是否可用3-3dweller(商品进货)编号字段名称字段类型是否空值键值说明1idInt(11)否主键主键,自动增长2paytype`Varchar(220)否支付方式3inporttimeInt(10)否时间4operatepersonVarchar(220)否商品进货的支付人5numberVarchar(210)否单次进货支付数量6inportpriceInt(10)否进货时候价格7goodsidVarchar(220)否进货货物的id3-4bus_outport(商品退货表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键主键,自动增长2provideridVarchar(230)否提供者3paytypeInt(10)否支付方式4outputtimeVarchar(210)否销售时间5outportpriceVarchar(210)否价格6numberVarchar(200)否数量7remarkInt(10)否备注8goodsidVarchar(215)否货物3-5bus_provider(供应商表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键主键,自动增长2providernameVarchar(210)否供应商名字3zipVarchar(200)否邮编4addressVarchar(220)否地址5telephoneVarchar(215)否电话6connectionpersonVarchar(225)否供应商的联系人7phoneVarchar(230)否供应商的手机号8bankVarchar(220)否供应商的银行9accountVarchar(225)否供应商的银行卡号10emailVarchar(220)否供应商的邮箱11faxVarchar(210)否供应商传真3-6bus_sales(销售表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键销售表的主键2customeridInt(11)否购买的客户ID3paytypeVarchar(220)否支付方式4salestimeDatetime(0)否支付时间5operatepersonVarchar(230)否支付人6numberInt(10)否数量7remarkVarchar(230)否备注8salepriceDecimal(10,2)否价格9goodsidInt(11)否外键商品id3-7销售退货(bus_salesback)编号字段名称字段类型是否空值键值说明1idInt(11)否主键主键,自动增长2customeridInt(11)否外键退货客户ID3paytypeVarchar(230)否客户支付类型4salestimeDatetime(0)否销售退货的时间5operatepersonVarchar(215)否退货的人员6numberInt(11)否退货的数量7goodsidInt(11)否外键商品id3-8sys_dept(部门表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键主键,自动增长2pidInt(11)否外键不同部门id3nameVarchar(215)否不同部门名字4addressVarchar(220)否不同地址5createtimeDatetime(0)否部门的创建时间3-9sys_loginfo(登录记录表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键主键,自动增长2loginnameVarchar(220)否用户登录名字3loginipVarchar(210)否用户登录时登录网络ID4logintimeDatetime(0)否用户登录时间3-10sys_notice(公告表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键主键,自动增长2titleVarchar(220)否不同的公告标题3contentVarchar(220)否不同的公告内容4createtimeDatetime(0)否每次发布公告时间5opernameVarchar(220)否每次发布公告人3-11sys_permission(权限表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键主键,自动增长2pidInt(11)否外键部门id3typeVarchar(250)否值4percodeVarchar(230)否权限路径5iconVarchar(220)否本权限上级6hrefVarchar(215)否权限的帮助7targetVarchar(210)否不同的权限3-12sys_role(角色表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键主键,自动增长2nameVarchar(230)否外键角色的姓名3remarkVarchar(220)否本角色备注4availableInt(10)否本角色是否可用5createtimeDatetim(0)e否角色时间3-13sys_user(登录用户表)编号字段名称字段类型是否空值键值说明1idInt(11)否主键主键,自动增长2nameVarchar(230)否登录用户的姓名3loginnameVarchar(220)否用户登录的账号4pwdVarchar(210)否用户登录的密码5addressVarchar(230)否用户的地址6sexInt(11)否用户的性别7remarkVarchar(230)否用户的备注8deptidInt(11)否外键本用户部门id9hiredateDatetime(0)否登录的时间10mgrInt(11)否用户的经理11availableInt(11)否此用户是否可用12imgpathVarchar(230)否标志路径4编码实现4.1基础管理4.1.1客户管理如图4-14-1客户添加流程图publicclassInportController{@AutowiredprivateIInportServiceinportService;@AutowiredprivateIProviderServiceproviderService;@AutowiredprivateIGoodsServicegoodsService;/***@paraminportVo*@return*/@RequestMapping("loadAllInport")publicDataGridViewloadAllInport(InportVoinportVo){IPage<Inport>page=newPage<Inport>(inportVo.getPage(),inportVo.getLimit());QueryWrapper<Inport>queryWrapper=newQueryWrapper<Inport>();queryWrapper.eq(inportVo.getProviderid()!=null&&inportVo.getProviderid()!=0,"providerid",inportVo.getProviderid());queryWrapper.eq(inportVo.getGoodsid()!=null&&inportVo.getGoodsid()!=0,"goodsid",inportVo.getGoodsid());//对时间进行查询要求大于开始时间小于结束时间queryWrapper.ge(inportVo.getStartTime()!=null,"inporttime",inportVo.getStartTime());queryWrapper.le(inportVo.getEndTime()!=null,"inporttime",inportVo.getEndTime());queryWrapper.orderByDesc("inporttime");IPage<Inport>page1=inportService.page(page,queryWrapper);List<Inport>records=page1.getRecords();for(Inportinport:records){Providerprovider=providerService.getById(inport.getProviderid());if(provider!=null){inport.setProvidername(provider.getProvidername());4.1.2供应商管理如图4-24-2供应商输入流程图publicclassSalesController{@AutowiredprivateISalesServicesalesService;@AutowiredprivateICustomerServicecustomerService;@AutowiredprivateIGoodsServicegoodsService;@RequestMapping("loadAllSales")publicDataGridViewloadAllSales(SalesVosalesVo){IPage<Sales>page=newPage<>(salesVo.getPage(),salesVo.getLimit());QueryWrapper<Sales>queryWrapper=newQueryWrapper<Sales>();queryWrapper.eq(salesVo.getCustomerid()!=null&&salesVo.getCustomerid()!=0,"customerid",salesVo.getCustomerid());queryWrapper.eq(salesVo.getGoodsid()!=null&&salesVo.getGoodsid()!=0,"goodsid",salesVo.getGoodsid());queryWrapper.ge(salesVo.getStartTime()!=null,"salestime",salesVo.getStartTime());queryWrapper.le(salesVo.getEndTime()!=null,"salestime",salesVo.getEndTime());IPage<Sales>page1=salesService.page(page,queryWrapper);List<Sales>records=page1.getRecords();for(Salessales:records){Customercustomer=customerService.getById(sales.getCustomerid());if(null!=customer){sales.setCustomername(customer.getCustomername());}Goodsgoods=goodsService.getById(sales.getGoodsid());if(null!=goods){sales.setGoodsname(goods.getGoodsname());sales.setSize(goods.getSize());}}returnnewDataGridView(page1.getTotal(),page1.getRecords());}4.1.3商品管理如图4-34-3商品添加流程图publicclassSalesbackController{@AutowiredprivateISalesbackServicesalesbackService;@AutowiredprivateICustomerServicecustomerService;@AutowiredprivateIGoodsServicegoodsService;@RequestMapping("addSalesback")publicResultObjaddSalesback(Integerid,Integernumber,Stringremark){try{salesbackService.addSalesback(id,number,remark);returnResultObj.BACKINPORT_SUCCESS;}catch(Exceptione){e.printStackTrace();returnResultObj.BACKINPORT_ERROR;}}@RequestMapping("loadAllSalesback")publicDataGridViewloadAllSalesback(SalesbackVosalesbackVo){IPage<Salesback>page=newPage<Salesback>(salesbackVo.getPage(),salesbackVo.getLimit());QueryWrapper<Salesback>queryWrapper=newQueryWrapper<Salesback>();queryWrapper.eq(salesbackVo.getCustomerid()!=null&&salesbackVo.getCustomerid()!=0,"customerid",salesbackVo.getCustomerid());queryWrapper.eq(salesbackVo.getGoodsid()!=null&&salesbackVo.getGoodsid()!=0,"goodsid",salesbackVo.getGoodsid());//对时间进行查询要求大于开始时间小于结束时间queryWrapper.ge(salesbackVo.getStartTime()!=null,"salesbacktime",salesbackVo.getStartTime());queryWrapper.le(salesbackVo.getEndTime()!=null,"salesbacktime",salesbackVo.getEndTime());4.2进货管理4.2.1商品进货如图4-4所示4-4商品进货流程图}Goodsgoods=goodsService.getById(inport.getGoodsid());if(goods!=null){//设置商品名称inport.setGoodsname(goods.getGoodsname());//设置商品规格inport.setSize(goods.getSize());}}returnnewDataGridView(page1.getTotal(),page1.getRecords());}@RequestMapping("addInport")publicResultObjaddInport(InportVoinportVo){try{//获得当前系统用户Useruser=(User)WebUtils.getSession().getAttribute("user");//设置操作人inportVo.setOperateperson(user.getName());//设置进货时间inportVo.setInporttime(newDate());inportService.save(inportVo);returnResultObj.ADD_SUCCESS;}catch(Exceptione){e.printStackTrace();returnResultObj.ADD_ERROR;}}@RequestMapping("updateInport")publicResultObjupdateInport(InportVoinportVo){try{inportService.updateById(inportVo);returnResultObj.UPDATE_SUCCESS;}catch(Exceptione){e.printStackTrace();returnResultObj.UPDATE_ERROR;}}@RequestMapping("deleteInport")publicResultObjdeleteInport(Integerid){try{inportService.removeById(id);returnResultObj.DELETE_SUCCESS;}catch(Exceptione){e.printStackTrace();returnResultObj.DELETE_ERROR;}}}4.2.2商品退货流程如图4-5所示4-5商品退货流程图publicclassOutportController{@AutowiredprivateIOutportServiceoutportService;@AutowiredprivateIProviderServiceproviderService;@AutowiredprivateIGoodsServicegoodsService;@RequestMapping("addOutport")publicResultObjaddOutport(Integerid,Integernumber,Stringremark){try{outportService.addOutport(id,number,remark);returnResultObj.BACKINPORT_SUCCESS;}catch(Exceptione){e.printStackTrace();returnResultObj.BACKINPORT_ERROR;}}@RequestMapping("loadAllOutport")publicDataGridViewloadAllOuport(OutportVooutportVo){IPage<Outport>page=newPage<Outport>(outportVo.getPage(),outportVo.getLimit());QueryWrapper<Outport>queryWrapper=newQueryWrapper<Outport>();//对供应商进行查询queryWrapper.eq(outportVo.getProviderid()!=null&&outportVo.getProviderid()!=0,"providerid",outportVo.getProviderid());queryWrapper.eq(outportVo.getGoodsid()!=null&&outportVo.getGoodsid()!=0,"goodsid",outportVo.getGoodsid());queryWrapper.ge(outportVo.getStartTime()!=null,"outputtime",outportVo.getStartTime());queryWrapper.le(outportVo.getEndTime()!=null,"outputtime",outportVo.getEndTime());queryWrapper.orderByDesc("outputtime");IPage<Outport>page1=outportService.page(page,queryWrapper);List<Outport>records=page1.getRecords();for(Outportouport:records){Providerprovider=providerService.getById(ouport.getProviderid());if(provider!=null){ouport.setProvidername(provider.getProvidername());}Goodsgoods=goodsService.getById(ouport.getGoodsid());if(goods!=null){ouport.setGoodsname(goods.getGoodsname());ouport.setSize(goods.getSize());}}returnnewDataGridView(page1.getTotal(),page1.getRecords());}@RequestMapping("deleteOutport")publicResultObjdeleteOutport(Integerid){try{outportService.removeById(id);returnResultObj.DELETE_SUCCESS;}catch(Exceptione){e.printStackTrace();returnResultObj.DELETE_ERROR;}}}4.3销售管理4.3.1商品销售如图4-6所示4-6商品销售流程图@RequestMapping("addSales")publicResultObjaddSales(SalesVosalesVo){try{Useruser=(User)WebUtils.getSession().getAttribute("user");salesVo.setOperateperson(user.getName());salesVo.setSalestime(newDate());salesService.save(salesVo);returnResultObj.ADD_SUCCESS;}catch(Exceptione){e.printStackTrace();returnResultObj.ADD_ERROR;}}@RequestMapping("updateSales")publicResultObjupdateSales(SalesVosalesVo){try{salesService.updateById(salesVo);returnResultObj.UPDATE_SUCCESS;}catch(Exceptione){e.printStackTrace();returnResultObj.UPDATE_ERROR;}}@RequestMapping("deleteSales")publicResultObjdeleteSales(Integerid){try{salesService.removeById(id);returnResultObj.DELETE_SUCCESS;}catch(Exceptione){e.printStackTrace();returnResultObj.DELETE_ERROR;}}}4.3.2销售退货管理如图4-7所示4-7销售退货流程图//通过商品退货时间对商品进行排序queryWrapper.orderByDesc("salesbacktime");salesbackService.page(page,queryWrapper);List<Salesback>records=page.getRecords();for(Salesbacksalesback:records){System.out.println("============================");Customercustomer=customerService.getById(salesback.getCustomerid());if(customer!=null){salesback.setCustomername(customer.getCustomername());}Goodsgoods=goodsService.getById(salesback.getGoodsid());if(goods!=null){salesback.setGoodsname(goods.getGoodsname());salesback.setSize(goods.getSize());}}returnnewDataGridView(page.getTotal(),page.getRecords());}@RequestMapping("deleteSalesback")publicResultObjdeleteSalesback(Integerid){try{salesbackService.removeById(id);returnResultObj.DELETE_SUCCESS;}catch(Exceptione){e.printStackTrace();returnResultObj.DELETE_ERROR;}}}5测试测试软件可行性是一个非常有必要的事情,这与真正上线的系统所达到的预期结果是否一致有着非常重大的影响,对系统进行修改起着非常重要的作用,所以就可以提高系统的稳定性。黑盒测试不需要人员知道代码的实现,只按要求填写数据。这个章节会对系统主要模块进行测试,从而保证系统达到上线标准。客户管理测试用例功能测试用例说明预期结果执行结果是否通过客户查询客户名称:小张超市联系人名称:张大明正确输入正常查询正常查询是客户编辑小张超市改成大张超市正确修改正常修改正常修改是客户删除删除大张超市点击大张超市后的删除按钮正确删除正确删除是客户添加添加客户:客户名称:test1客户地址:test1客户电话:123邮编:123456联系人:test1联系电话12345678911开户银行:test银行银行账户:123456Email:123@传真:123456正确输入添加成功添加成功是供应商管理测试用例功能测试用例说明预期结果执行结果是否通过供应商查询供应商名称:娃哈哈集团联系人名称:小晨正确输入正常查询正常查询是供应商编辑娃哈哈集团改成娃哈哈正确修改正常修改正常修改是供应商删除删
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年建筑施工安全题目和答案
- 2026乡村医生考试试题(含答案)
- 高中物理选择性必修第二册“无线电波的发射、接收与电磁波谱”教学设计
- 2026年城市开发边界管控实务考试题及答案解析
- 成语分享制作课件
- 高中地理 高三一轮复习 教学设计 异龙湖喀斯特流域水文地貌与区域可持续发展
- 初中八年级英语教学设计:Unit 3 Grammar Focus 定语从句引导词的深度教学与核心素养培育
- 2026年办公设备管理员实操考核试题及答案
- 地铁盾构机安装拆卸作业规程
- 船员服务意识培训课件
- 2026年全国医师考核题库完整附答案详解
- (一模)惠州市2026届高三4月模拟考试英语试卷(含答案详解)
- 辽宁省葫芦岛市连山区2025-2026学年上学期期末考试七年级数学试卷(含部分答案)
- (2026年)精神科保护性约束实施及解除专家共识课件
- 河北省石家庄市第四十中学2025-2026学年上学期七年级期中考试数学试卷(含解析)
- 小儿心力衰竭课件
- 大学写作十五讲 课件 第十一讲 文献综述写作
- 自然灾害风险分析与管理导论
- 彩色水稻种植技术要求
- 压力性损伤的预防与护理
- 门诊诊疗质量监控制度
评论
0/150
提交评论