版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
v1绪论1.1研究背景及意义全球经济竞争发展,各个企业不断在扩大自身的经营规模,业务流程越来越复杂,而仓库管理作为企业经营生产供应链中重要的环节之一,传统的仓库管理都是通过人工记录管理数据,数据不准确,操作复杂,数据更新不及时,企业发展规模不断扩大,对仓库管理的管理要求不断提高,传统的手工仓库管理已经无法满足现代化企业经营中库存管理的高效性和准确性REF_Ref9772\r\h[1],这些问题的存在不仅影响了仓库的工作效率,同时也提高了人工成本,甚至出现仓库管理不当等问题,导致了企业的竞争经营出现问题。如何能够有效提高仓库管理的工作效率和保证仓库管理相关数据的准确性已经成为了现代化企业的重点问题。随着信息技术的发展,基于信息化的仓库管理方式已经成为解决传统仓库管理弊端的有效解决方案,尤其是将仓库管理与计算机技术、数据库技术以及网络技术等技术进行集成来实现企业的精细化管理仓库,降低人为因素对数据准确性的影响,提升仓库管理效率。基于SpringBoot技术下仓库管理系统的研究开发,作为新的技术手段,在满足管理高效的需求下,可以解决传统仓库管理弊端,所以研究并开发基于SpringBoot技术下的仓库管理系统具有重要的现实意义和理论意义。仓库管理是仓库管理系统中的关键环节,包括物资的入出库以及盘点等。传统仓库管理依靠手工管理,且数据更新不及时,极易出错,库存混乱,无法实现有效管理。例如手工填写库存数据,容易出现人为漏填、错填、重复填写现象,严重影响库存准确性,进而影响企业生产销售计划。而现代化仓库管理要对库存信息实时跟踪、更新,保证库存数据的准确性和实时性,这就需要用信息化技术手段来进行仓库管理。近年来,随着信息技术的发展,SpringBoot框架也随之成为最受欢迎的框架之一,它可以实现快速部署项目,高效进行项目代码的编写,灵活对项目进行扩展和复用,它是构建在Spring框架基础上的一个开源Java开发框架,其具有快速开发、无需大量配置、方便整合等特点,适用于开发企业级应用。SpringBoot框架可以与MySQL数据库通过MyBatis进行整合后对后台数据进行处理与管理。以SpringBoot为开发框架的仓库管理系统采用前后端分离模式,能够得到更加清晰的设计与实现,并且可以保持系统的可扩展性与可维护性。基于SpringBoot的仓库管理系统能够运用自动化来提高仓库的工作效率,如果是人工管理,人为因素管理繁琐容易出错,信息化管理系统能够实现实时更新、记录库存,让仓库的负责人能够随时掌握库存的实时信息,实时掌握库存需求,避免仓库出现囤货、缺货等现象,通过自动化的入出库、盘点等能够节省人力,提高仓库的工作效率。传统仓库管理中,人员操作失误同样也是造成库存数据不准确的重要因素之一,而在SpringBoot下仓库管理系统中,通过系统自动管理程序,避免人员操作失误,通过系统自动控制,能够实时对库存变动进行掌控,对库存数据进行自动更新,确保库存数据准确性,避免人员失误所带来的损失,对异常情况进行系统报警提示,便于管理者发现问题,及时修正。1.2研究现状1.2.1国内研究现状近几年中国的经济发展速度越来越快,企业管理越来越复杂和繁琐,仓库管理作为企业在供应链上的重要组成之一,也越来越受到企业的关注,而手工的管理模式已经难以适应企业日趋复杂化的库存管理,出现了如信息不准确、管理效率低下、人力成本高等问题,仓库管理的自动化、信息化、智能化已经是现代化企业发展的大势所趋,国内也有许多学者和企业利用信息技术对仓库管理流程进行改造,提高企业仓库管理工作效率。在国内研究领域,对于仓库管理系统WMS(WarehouseManagementSystem),国内研究学者大部分是基于物联网技术、大数据技术、云计算技术等现代信息技术来提升仓库效率的REF_Ref10686\r\h[2]。近年来,基于信息技术的仓库管理集成化、智能化、自动化研究替换了之前系统功能开发的研究,通过RFID(RadioFrequencyIdentification,无线射频识别)技术、条型码扫描技术等自动化实现存货管理、实时监控、信息反馈、补货等,提高仓库运转速度、准确率等REF_Ref26106\r\h[3]。具体成果上,国内众多高校或科研院所均对仓库管理系统有所研究。部分学者提出基于云计算的仓库管理系统,利用云平台对仓库数据进行统一管理,便于不同地域及部门间进行协作,提升仓库管理工作的机动性及适应性REF_Ref26390\r\h[4,REF_Ref26534\r\h5]。也有学者提出,木材进出仓管理系统对木材仓储管理有着特殊作用,其在系统设计思路与功能实现上对仓库管理系统能进行不同方向上发展提供一些参考REF_Ref7175\r\h[6]。部分学者通过集成RFID技术、条形码及自动设备实现仓库物品自动入库、出库、盘点等操作,减少人工操作的失误,提高库存数据的准确性及实时性REF_Ref9131\r\h[7]。同时,国内众多企业也积极应用这些研究成果,将它们转化为现实生产力。例如,京东、阿里巴巴等电商企业就通过建设自动化、智能化仓库管理系统,实现了较好的物流配送和库存管理效率REF_Ref9415\r\h[8],尤其在“双十一”大促期间,通过高效的仓库管理系统快速处理海量订单的存储和出库,及时完成订单配送REF_Ref715\r\h[9]。这类企业的先进经验也为国内的仓库管理研究提供了良好的经验和案例支撑。虽然国内对仓库管理系统有了很大的研究与应用进展,但国内仍有很多问题存在,首先,小企业以及传统企业对信息化管理的应用不深入,对仓库管理系统应用不广泛。其次,仓库管理系统还停留在传统硬件设备,智能化、自动化程度不足,没有充分利用人工智能、大数据等技术完善管理流程。最后,国内部分系统的仓库管理系统仍存在系统功能较为单一,系统适应性差,系统集成程度低的问题,系统的可扩展性有待提升。1.2.2国外研究现状国外仓库管理系统研究主要体现在利用更加先进的信息技术提升仓库管理系统效率,以及提升智能化、自动化程度。近年来国外仓库管理系统随着物联网(IoT)、物联网(IoT)、大数据、机器人、云计算等技术的不断涌现,仓库管理系统朝着更加智能化、自动化、信息化、集成化、高效化方向发展。国外的仓库管理系统(WMS)已经比较成熟,已经在不少大企业中得到广泛应用国外仓库管理系统早在上个世纪80年代就已经采用计算机技术进行库存管理,而随着信息技术的发展,仓库管理系统从原来的简单库存管理系统发展出订单系统、供应链系统、运输系统等多个系统。沃尔玛、亚马逊、丰田等世界各大巨头公司的仓库管理系统都已经在公司内部投入实际运用,极大提高了仓库管理的效率性和准确性。例如:亚马逊公司就通过使用仓库自动机器人、人工智能系统、仓储管理软件等一系列的软件系统提高了仓库自动管理、信息化程度,使得仓库的库存管理、订单完成速度极快,极大提高了物流运输速度和准确性。国外研究中,把人工智能和机器学习运用到仓库管理中受到广泛关注,有研究提出运用机器学习中的算法对历史库存数据、销售数据进行运算,结合智能算法,预测库存的需求,实现智能补货,优化库存。有研究提出借助大数据技术对仓库管理系统中各项数据进行挖掘分析,实现库存管理,提升整个供应链管理效率。物联网技术在仓库管理系统的应用受到广泛关注,研究中提出利用物联网设备,对仓库实时跟踪定位,提高整个仓库操作效率和质量。在自动化方面,国外有些企业通过机器人完成仓库内货物的搬运、分拣、包装等工作,机器人能够根据现场信息自主完成工作,节约了人工成本和人工失误,极大提升了仓储效率。京东、阿里巴巴等中国企业学习国外仓库自动化的先进经验,逐步形成了自动化仓库,亚马逊在全球建设自动化分拣中心,这些系统都极大推动了智能仓库的发展。1.3主要研究内容本论文结构包括以下七个章节:第一章,绪论。介绍本课题研究背景和研究意义,以及传统仓库在管理存在的不足、信息化仓库管理的优势以及本系统提高仓库管理效率和准确性的意义,阐述国内外仓库管理系统的研究现状,阐明国内仓库管理系统存在应用范围不广、智能化水平较低、系统功能不完善的问题,以及国外仓库管理系统研发与应用现状。第二章,技术介绍。详细介绍系统所采用的关键技术,如SpringBoot框架的自动配置、内嵌的Tomcat服务器、引入项目所需的起步依赖等,Vue.js框架实现响应式数据绑定、组件化开发,还有着丰富的工具插件来进行辅助开发,运用MySQL数据库的高效查询以及它具有的扩展性、开源性作为数据存储发挥出性能优势,还运用了Java语言的跨平台、面向对象、安全性以及Redis的高性能、多数据结构、持久化机制等特性。第三章,需求分析。此章节从技术可行性分析,经济可行性分析,市场可行性分析,运营可行性分析四个方面进行需求的分析。从用户管理模块,商品管理模块,库存管理模块,订单管理模块,报表统计模块,系统设置模块分析系统功能需求。还分析了系统对响应时间、并发量、数据存储量、系统扩展性等的需求。第四章,系统设计。对系统进行结构设计,设计信息修改流程,登录流程,同时对系统进行模块划分,划分出用户管理,仓库管理,物资管理若干个模块,并对各个模块的功能进行设计。完成数据库的概念结构和物理结构设计,确定数据表的表结构,字段结构。第五章,系统实现。系统实现大数据首页展示、日志注册、用户管理功能等后台功能。给出部分功能实现代码;系统实现登陆注册功能、个人中心、仓库物资查询、物资申请等用户系统功能。给出部分功能实现代码。第六章,系统测试。解释系统测试的意义、目的等,如发现系统错误、测试系统性能、测试系统安全等,介绍系统测试测试用例的黑盒测试和白盒测试两种方法,对系统各个功能模块进行测试,给出测试用例、预期结果、实际结果。第七章,结论。对系统设计与实现工作进行总结,指出系统在功能实现和优化方面的优势,在用户体验和提升方面的优势以及对未来的展望。
2技术介绍2.1SpringBoot框架SpringBoot是基于Spring的开源Java开发工具,通过最小化配置、最少代码,让开发者能快速构建和运行独立的、生产级别的Spring应用。SpringBoot使得开发者能够更加专注于业务本身,而不需要将大量的时间浪费在繁琐的Spring配置和框架搭建之上。SpringBoot通过进一步将Spring集成到其平台中,为开发者提供了更简单、更快速的方式将Spring集成到他们的开发工作中,可以用于微服务、web、RESTfulAPI等企业级应用REF_Ref5026\r\h[10]。SpringBoot最核心的特征就是自动配置。自动配置机制使得开发者无需手动配置大量Spring的框架组件,SpringBoot会根据项目自动配置相关组件。例如,使用SpringBoot进行Web应用开发,其会自动为项目进行嵌入Tomcat服务器的配置,开发者无需进行Web服务器的配置。通过这种机制,SpringBoot为开发者极大地减少了启动项目的配置,简化了整个开发流程REF_Ref26694\r\h[11]。SpringBoot支持内嵌Web服务器,例如Tomcat、Jetty、Undertow等,这样的SpringBoot应用就不需要web服务器,以一个单体应用的方式运行,具备开发和部署简单,还具备在内嵌服务器中运行,在任何一种Java环境下都能够独立运行等优点。对于开发微服务架构来说,开发者可以将应用打包成一个可执行的JAR文件,并且应用运行所需要的环境都已经包含在里面,十分方便。SpringBoot引入了“起步依赖(Starters)”概念,提供了预定义好的一组依赖,在引入SpringBoot起步依赖后,开发者无需再关注依赖包版本和配置,只需要引入对应的模块即可。例如在项目中引入了一个spring-boot-starter-web起步依赖,开发者就非常容易实现了一个集成SpringMVC、Tomcat、其他Web相关功能的Web应用启动。启动依赖能够让开发者无需再配置每个模块就能启动项目,降低了开发难度。2.2Vue.js框架Vue.js是一款轻量级JavaScript前端框架,用于构建用户界面和单页应用(SPA),其核心思想在于将数据绑定与组件式开发用于简化前端开发,目标就是让用户界面的开发简单、更加快捷和灵活,非常适合开发交互性极强的现代化web应用REF_Ref26769\r\h[12]。Vue.js另一个核心特征是其响应式绑定。在Vue.js中将数据模型绑定到视图层,随着数据的变化,视图会自动更新变化,这种绑定的优势在于可以避免开发中对DOM的繁琐操作。Vue.js实现了虚拟DOM技术,将真实的DOM技术封装在内存中的虚拟DOM中,简化DOM操作。Vue.js是基于组件化的,开发者将应用分割成几个独立的组件,每个组件管理自己的视图和动作行为。组件化模式不仅让代码更容易维护和复用,也使得开发更加模块化和清晰。Vue.js还提供了丰富的工具和插件,比如:VueRouter用于前端路由管理;Vuex用于管理应用状态等。Vue.js的学习过程较为流畅,入门比较简单,适合初学者。在实际开发过程中,可以与其他库或框架配合使用,相当灵活,能够应对各种不同的开发需求。随着Vue.js生态系统的发展,Vue.js已经成为现代前端开发中构建动态、响应式Web应用程序的必备工具之一。2.3MySQL数据库MySQL是一个基于关系数据库管理系统(RDBMS)的开源系统,主要应用于Web开发、企业环境、大数据处理等,采用SQL作为查询语言,提供高效的数据存储和检索功能。MySQL是世界上最流行的数据库管理系统之一,其高性能、高稳定性和高可扩展性被广泛使用。MySQL以高效查询处理而著称,支持包括连接查询、子查询、聚合函数等复杂SQL查询语句,并且MySQL中包含许多优化方法来提高查询性能,例如索引、查询缓存、存储过程等,这使得MySQL能够高效处理大量的数据。MySQL还支持事务处理,并且支持ACID(原子性,一致性,隔离性,持久性)属性,这使得数据库操作安全可靠。MySQL具有良好的扩展性、可用性,支持主从复制、分区表等功能,在存储海量数据,高速查询的情况下仍然可以提供稳定的性能。MySQL具有散落特征,这一特点决定了它被广泛应用在分布式数据库系统中,可以实现海量数据存储及快速检索。MySQL开发者可以自由使用,自由修改,自由发布,因而MySQL是全球应用最广泛的数据库。虽然MySQL是由Oracle公司维护的,但MySQL依然具有跨平台、开源、免费等特点,可应用于:Linux、Windows、macOS等平台。MySQL简单、高效,适用于Web应用、企业级应用、大数据分析。MySQL是一个关系数据库,可以很好实现商品、库存和操作记录的数据,对大数据量的查询也有良好的表现能力REF_Ref5653\r\h[13]。2.4JAVA语言Java语言由于其跨平台、面向对象、生态完善等优点,可以使得平台更好的开发与维护。跨平台性是Java的最重要特征之一,Java的突出优势就是“一次编译,到处运行”,让利用Java开发出来的应用程序可以在Windows、Linux、MacOS等操作系统的平台上执行,因此具有很强大的系统可移植性。Java是一种面向对象的语言,支持封装、继承、扩展等功能,具有代码易维护、易扩展、易复用等优点,在平台开发过程中可以分别将不同模块封装为不同的类、对象,通过继承、扩展实现代码的重复利用。在用户管理模块,可以将用户的用户信息、操作方法等封装为用户类,通过继承、扩展用户类来实现不同类型的用户管理。丰富的类库、类框架为开发者带来了丰富的资源和工具,SpringBoot模式架构是基于Java语言构建,与Java语言兼容性良好,且可以引入其他Java类库如ApacheCommons、GoogleGuava等,提高开发效率、优化代码质量等。Java语言安全性高、稳定性好,具有严格的类型检查机制和异常处理机制,在编译和运行时检查出并处理许多潜在的错误,确保代码的健壮性。Java的垃圾回收机制自动进行内存管理,减少内存泄漏问题,提高系统稳定性。2.5RedisRedis是一个高性能的内存型的NoSQL数据库,用于缓存、会话、实时计算,支持String、Hash、List、Set、SortedSet等多种数据结构,能够胜任各类业务场景下的存储需求。不同于关系型数据库,它采用内存存储,读写速度非常快,可以支撑海量业务,支持RDB(FastCopy)、AOF(日志追加)两种持久化方式,保证数据的安全性,也支持主从复制、哨兵模式、集群模式,保证高可用和可扩展。
3需求分析3.1可行性分析3.1.1技术可行性分析技术可行性分析是项目确定立项开发中关键的一环,主要分析项目采用的技术是否适合该项目的开发,是否能够在规定的时间满足项目的要求。基于SpringBoot的仓库管理系统设计与开发的技术可行性分析主要包括对系统架构选择、需要使用的技术栈是否可行、开发工具和开发平台的可行性、技术实现的难易程度等方面进行技术可行性分析。SpringBoot是目前最受关注的Java框架和工具之一,已经证实是可运行的,技术可行性较强。SpringBoot提供的自动配置和嵌入式服务器将极大地缩短仓库管理系统的开发时间,减轻开发者配置负担,提高工作效率。SpringBoot深入地整合了Spring框架和生态系统,能够支撑如连接数据库、Web开发、传递消息、微服务等等。因此,选取SpringBoot作为基础框架能够使系统灵活多变,还能节约开发时间。仓库管理主要有商品入库、商品出库、库存查询、库存盘点等功能,并且系统需要满足高并发、大数据量、实时处理和查询的需求。技术可行性从数据库选择和优化方面满足系统需求。目前主流的数据库有关系数据库MySQL、PostgreSQL和非关系数据库MongoDB等,而SpringBoot支持了这些数据库。根据项目需求,关系数据库使用MySQL,MySQL可以有效地存储商品信息、库存信息、操作记录等信息,同时,在大数据量的情况下查询性能较好。同时,为了简化数据库操作,减小数据库与SpringBoot框架整合的难度并提高开发效率,引入了MyBatis等框架。系统采用前后分离开发模式,前后分离架构的系统具有明确的架构设计和功能实现,并且系统扩展易维护REF_Ref6316\r\h[14REF_Ref12285\r\h,15]。在系统性能方面,SpringBoot可以集成不同的缓存技术,如:Redis缓存、EhCache缓存等,为提升查询效率、减少数据库压力发挥重要作用;而分布式技术(如SpringCloud)、消息队列(如RabbitMQ、Kafka)等技术可以帮助我们实现系统可用性、可靠性、安全性和可拓展性等,满足公司业务日益发展的需求。3.1.2经济可行性分析经济可行性分析指的是一个项目在经济方面的可行性分析,主要分析资金投入的可行性、成本投入的可行性、投资回报的可行性等。也就是说,能否一个项目的在一定的预算内完成,并且获得期望的经济利益。基于SpringBoot的仓库管理系统的经济可行性分析主要包括开发成本、运行成本、人员成本和投资回报分析等。开发成本也是经济可行性的一个重要因素,基于SpringBoot的仓库管理系统开发需要投入的人力成本、时间成本和技术成本,由于SpringBoot是开源系统,不需要购买昂贵的许可证费用,因此开发成本主要在于开发和人力成本投入。具体而言,项目开发人员有SpringBoot、Java编程、数据库设计、Web开发等技术能力,因此项目的开发团队需要有一定技术储备和技术经验。在人力成本投入方面,由于系统所需技术成本是较为普遍的,项目开发周期在3个月到半年,开发团队人员可以由2~3个开发人员、1个项目经理、1个测试人员组成。项目开发成本适中,尤其是一些开源技术和现成的框架,不需要大量的软件购买成本。运维成本,属于长期考虑的方面,仓库管理系统一般是部署在企业服务器或者云平台,需要考虑服务器的硬件购买成本或租赁云平台成本,如果是本地部署,硬件投入、运维成本较高,如果是云平台,硬件投入不高,但云平台租用成本、数据传输成本需要长期考虑。考虑到仓库管理系统的高可用性和可靠性,运维团队需要定期进行维护、升级系统,运维成本应考虑在内。项目的经济性效益体现在几点上:一是提高了仓库管理的工作效率,降低存货差错和损耗,减少成本;二是跟踪库存,分析库存数据,有助于企业在采购中更加精准的把握库存状况,提高了库存周转率,从而提高资金利用率;三是提高客户满意度,降低客户满意度。综上所述,仓库管理系统投资回报率高,大中型企业效益较为明显。3.1.3市场可行性分析市场可行性分析是指对整个项目进行市场方面的需求、竞争、项目使用人的接受情况等,市场可行性分析是利用SpringBoot对仓库管理系统进行设计与实现中的一个关键步骤。市场可行性直接决定着仓库管理系统是否能够顺利的应用与推广,进而影响着系统的可持续发展问题。作为供应链管理的一支分支,仓库管理系统在全球得到了广泛的应用,随着电商行业的发展,制造业、零售业等行业的发展,都对仓库管理有着更高的要求,而在中国,随着电商行业的发展,仓储物流产业发展也迎来了新的发展机遇。市场调研显示,未来几年中国物流产业将继续发展,对于仓储库存管理市场将会越来越高,因此开发一套高效智能的仓库管理系统有着巨大的需求,尤其是对于大型零售企业、物流企业、电商企业。竞争也是市场是否可用的考量,目前国内外仓库管理系统竞争激烈,比较成熟的WMS系统产品都已经占据市场,如国内电商企业京东、阿里巴巴等都已经构建比较成熟的仓库管理系统,也有一些企业构建基于云计算、物联网技术的智能仓库管理系统,功能完善健全,包含库存管理、订单管理、运输管理、供应链管理等多个模块。要求就是面对竞争者,新系统要在系统功能、易用性、性价比等方面要有一些创新才能有竞争力。用户群接受程度是关系系统是否能成功推广的决定性因素,随着企业信息化管理的发展,更多的企业已经能够意识到仓库管理系统的重要性,中小型企业也在不断探索信息化管理的道路。所以,开发一个简单易用、性价比高的仓库管理系统,能够满足企业用户群体的需要,才能够得到市场认可。基于SpringBoot的仓库管理系统,市场可行性相对较高,存在较大的市场需求和竞争力,在创新和差异化方面,可以获得一定的市场空间,在仓库管理系统和信息化智能化的影响下,存在较好的市场前景。3.1.4运营可行性分析运营可行分析主要是从项目运行后的项目管理模式,项目实施运行流程,人员的配置以及技术支持等这几方面来分析。针对SpringBoot仓储管理系统而言,运营可行分析可以从系统的稳定性,可维护性,用户支持,长期的发展这几方面考虑。系统稳定性是系统运行的前提条件。仓库管理系统是企业运行的必备系统之一,系统必须是稳定、可靠的,要保证仓库管理系统的稳定性,就必须在开发过程中使用高质量的要求,必须执行单元测试、集成测试、压力测试。SpringBoot是稳定且拥有社区支持的开发模型,提供了长期的技术支持,能够保证系统长期稳定地运行。系统是否便于扩展、维护也是运营可行性的一个关键因素,系统的扩展需求、功能需求会随着系统的发展产生变化,系统需要良好的可扩展性、可维护性,才能满足运营需求。SpringBoot的模块化,自动配置,结构灵活等模块特点,让系统更易于扩展与维护,系统开发良好的代码规范、设计模式等,可以让开发后的系统代码结构清晰,便于系统后期的维护和升级。系统的用户支持也是系统运营可行性分析的内容。系统运营需要公司具有专门的用户支持团队对用户进行培训、技术支持、解答用户的问题、对系统上线后的使用意见反馈进行不断改进、完善系统功能以满足用户的使用要求等等。基于SpringBoot的仓库管理系统在系统运营方面具有可行性,系统的稳定性与可维护性有保障,同时良好的技术与用户服务能够确保系统的长期运行。3.2功能需求分析功能需求分析是系统设计的起点,它定义了系统需要具备哪些功能,以及这些功能模块之间的相互依赖关系。对于基于SpringBoot的仓库管理系统来说,功能需求分析主要包括了仓库管理、库存管理、商品管理、用户管理、订单管理等基本功能,下面是对这些基本功能进行分析,以满足用户的基本需求。用户管理功能是仓库管理系统的基础功能之一,基本功能涵盖用户的注册、登录、控制等,管理员通过该模块对系统内的用户进行控制,添加、更改、编辑用户信息、分配用户权限,用户在登录后对不同权限的系统不同模块进行操作,如普通用户查看库存、查询商品,而管理员拥有最高权限可以对基本上所有业务进行操作比如可以对库存、商品、订单等进行管理。为了保证用户数据的完整性,需要加密用户口令、支持用户找回口令等功能。商品管理功能是仓库管理系统的一个核心功能,主要是商品入库和商品出库、库存变化等功能,通过商品管理系统中提供商品管理功能模块,由管理员录入商品名称、种类、数量等信息,入库的时候可以选择入库的位置和录入库存数量及日期,产品出库时要录入产品的出库时间、数量、出库人等信息以便于进行统计,商品管理模块要能够实时监控商品库存,保证商品库存信息的准确性。物资管理是仓库管理系统中最核心的一个功能,物资管理的主要功能模块有:对物资查询并能够实时更新、物资入库、物资出库申请和审核等。系统应该实时地更新库存信息,有商品入库出库库存都会自动地更新。为了避免库存过多或过少,系统应该有库存预警的功能,当库存低于库存预警值时应自动提示管理员应该补货了。库存管理模块还应该有库存盘点功能,方便管理员定期清点库存,并与系统中的数据进行比较来保证系统中的库存数据的准确性。订单管理模块主要是处理顾客的订单,对订单的整个处理过程进行跟踪,按顾客的要求制作订单并记录订单的信息,例如:订单号、订单的状态、订单的金额等。在订单的处理过程中要显示订单的状态,如:待处理、处理、已发货、已完成等;订单管理模块要支持对订单的查看、删除、修改的操作,方便管理员与顾客管理跟踪。报表统计功能主要就是生成系统运行过程中产生的报表,比如库存报表、商品销售报表、订单处理报表等。管理员可以选择时间和报表类型,对仓库运行情况进行分析。库存报表可以显示当前各类商品的库存状况,帮助管理员掌握库存分布和使用情况。销售报表可以帮助企业进行销售分析,优化采购和销售策略。报表统计功能可以帮助企业进行高效决策,优化运行流程。系统设置模块主要是对系统初始条件进行设置,如系统管理员、系统权限、日志管理等。管理员通过系统设置模块可对系统的工作和运行环境进行配置,确保系统工作的正常运转。系统设置模块中应该有日志管理的功能,将系统的日志进行存储,方便对日志进行追溯和安全的审计。3.3性能需求分析性能需求分析主要是对系统在系统实际应用过程中,对系统运行速度、运行时间、并发量等的需求。对于基于SpringBoot的仓库管理系统来说,它的性能需求分析主要是包括系统的响应时间、并发量的处理、系统存储的性能、系统可扩展性等。以下是对性能需求的简要分析。响应时间就是用户发出请求后到系统响应所需时间。而仓库管理系统中对响应时间的要求通常取决于业务操作快慢、业务的急迫程度,如:用户在库存信息、查询订单状态等操作要求响应时间在2秒以内,而对于涉及到与数据库进行操作,如商品入库、出库等响应速度也应该控制在一个合理的范围内,如果反应速度过慢,会降低系统用户体验度,从而降低系统的工作效率。系统设计上应对数据库的查询、业务处理、网络延迟等进行优化设计、做到及时响应。并发处理能力是描述处理系统是否有能力去同时处理多个请求。仓库管理系统需要处理大量的并发请求,尤其是商品入库、出库请求,并发量较大,系统需要处理大量的并发请求。需要采用相应技术解决并发问题,才能让系统在高并发的环境中运行。SpringBoot提供了强大的多线程异步编程的能力,可以通过采用线程池、消息队列等技术来解决并发的问题。采用数据库读写分离、缓存(如Redis)等等技术可以缓解数据库的压力。数据存储的性能关乎着仓库管理系统在运行时的数据处理速度以及系统的处理响应水平,在仓库管理系统中有着海量的库存信息、订单信息、商品信息等,这些信息的存储不当就会降低系统的运行速度。对于数据存储性能,可以采用数据库的索引、查询优化处理技术,在大数据量下提高查询速度,采用分库分表、数据库连接池分摊数据库压力,使得系统在快速处理大量数据。仓库管理系统会随着业务量的扩展而扩展,所以应该根据实际情况对功能进行拓展和升级。系统的可扩展性是系统长期生存能力的重要体现。仓库管理系统仓库数量大、商品多样、订单渠道多,要求仓库管理系统本身具有良好的可扩展性,当系统需求增加时,系统可以通过增加服务器或者代码架构,满足高负载高并发的要求。SpringBoot系统本身具有良好的可拓展性,系统采用微服务架构、分布式技术,很容易进行横向的系统扩展。
4系统设计4.1系统结构设计4.1.1信息修改流程开始:流程起始点,标志着信息修改操作的启动。用户在系统中选择需要被修改的记录。这是操作的基础,确定修改操作的对象,比如物资表中选择需要修改信息的一条物资记录。输入数据:选择了记录,在相应的界面输入需要修改到的数据。修改用户表中的一用户的手机号。在相应的输入框中输入新的号码。然后判断是否合法,对于用户的输入数据,比如手机号、身份证号以及邮箱等进行合法性校验。校验不同的字段,比如日期字段符合日期的格式要求,数值字段取值范围等等。如果非法,回到“输入数据”步骤,让用户重新输入正确的值。写入数据库:输入的数据通过了合法性校验,系统将修改后的数据写入到相应的数据库表中,修改完成。例如在物资申请表中修改申请数量,修改数据库中申请记录的记录数量字段值。结束:数据进入数据库,修改完成信息修改流程结束。信息修改流程图,如图4-1所示。图4-1管理员信息修改流程图4.1.2登录流程流程以“系统主界面”开始,系统主界面是用户进入系统的第一视窗。系统主界面通常提供系统名称、标志等系统基本信息和用户进入系统的入口,如:系统登录按钮等。系统主界面是系统登录的初始界面,为用户提供了进入系统时的一个初始交互界面。用户系统主界面上选择登录按钮后,进入“系统登录界面”,在此用户可看见信息输入框,主要是用户名输入框、密码输入框及登录按键等,通过系统登录界面输入正确的身份验证信息登录系统。进入登录账号之后进行相关管理,如:准备验证环境、加载验证的脚本等等,之后在相关输入框“输入用户名及密码”。这是登录中的关键性用户操作,作为身份的输入信息以及之后作为身份验证的依据。图4-2登录流程图输入信息完毕后系统将输入信息和“数据库”中储存的用户信息进行对比即“校验”,数据库中存储着注册过的用户信息,包括用户名、用户密码等,它是校验用户身份的源头,如果输入的用户名、密码与数据库中储存的不一致,系统判断为“用户名或密码错误”返回“系统主界面”并显示“错误信息”提示输入正确的用户名、密码,从而拒绝非法用户系统,保障系统安全。系统在判断“用户名和密码正确”之后,用户被给予“功能界面”,在功能界面中,用户可以根据自己的权限使用系统功能,系统将用户的操作请求“功能处理”,如数据查询、数据修改等。即用户通过了身份验证,进入到系统,并进行业务操作。如图4-2所示。4.2功能模块设计图4-3系统用例图基于SpringBoot的仓库管理系统,主要包括仓库管理系统的后台管理系统和用户应用系统,根据业务需求划分了多个业务核心模块,每个业务核心模块负责不同的业务逻辑,确保系统稳定易维护以及可扩展等。主要包括用户,仓库,物资管理,物资申请管理、公告等业务核心模块,各个业务核心模块协同组成了仓库管理系统。用户管理模块是基础的功能模块,对用户注册、登陆等管理。系统分为管理员和普通用户两种角色,管理员对系统的所有功能都有操作权限,普通用户只有仓库内容的查询和申请物资权限。用户在注册过程中需要填写个人用户信息,包括用户名、密码、联系方式等。在登录过程中进行身份验证,根据用户角色赋予相应操作权限。用户管理模块还包括更改用户口令,更改用户信息等功能模块。系统用例图如图4-3所示。仓库管理模块主要是对仓库信息的管理与维护,管理员在系统中对仓库信息进行增加、修改、删除,对仓库信息进行管理与维护,保证仓库信息的准确性和可控性;对仓库进行状态监控,如仓库库存状态、仓库利用率状态等,让管理员做出及时管理决策。物资管理模块是系统的核心功能模块之一,用于存储所有物资信息,包括物资名称、规格、库存数量、位置等。管理员可以对物资进行新增、修改、删除,并支持批量导入物资数据等方式,提高录入效率。物资管理模块与仓库管理模块建立联系,确保物资存储在不同的仓库中。物资申请管理模块,实现对用户物资的申请管理。普通用户可以系统申请物资,填写需要申请的物资名称、数量、用途等信息,管理员审核,通过审核对申请物资进行批准或者驳回,修改库存。提供物资申请记录浏览查询管理功能,对申请的物资记录可以查询历史,管理员对用户的使用情况进行查询,确保物资管理的透明性。公告管理模块发布并维护库房公告信息,如库存变动、仓库维护项目、通知等内容,管理员可于后台创建、编辑、删除公告信息,用户可于前台查看公告信息。公告管理模块的实施有助于提升信息的传递速度,保证信息接收者的即时性,如图4-4所示。图4-4系统功能结构图4.3数据库设计4.3.1概念结构设计图4-5公告实体属性图(1)公告表主要用于系统中各种公告信息的系统发布,向用户或管理员发布系统中的各种重要通知、系统公告、系统活动等。管理员可在公告表中添加新的公告,填写公告名称、公告类型及详细发布的公告内容、发布日期。管理员或用户通过查询公告表来查询系统中最新发布的公告信息,了解系统中最新动态和事件,及时做出相应的响应,及时解决问题。通过公告表完成对信息的通知、分享,确保系统各方对于重要信息的及时了解。如图4-5所示(2)物资表物资信息是物品的基本信息,包括物资编号、物资名称、照片、单位、物资类别、物资数量、物资警戒值、所属仓库、物资介绍等。系统可以根据物资表对物资进行仓储管理,实时掌握物资数量,对物资数量低于警戒值时系统可发出预警提醒及时补充库存,根据物资表可以对物资进行统计、盘点等操作,使管理员了解物资的信息以及帮助管理员清晰了解物资的整体情况,科学规划物资的采购、分配、使用,提升物资管理的效率和准确性,如图4-6所示。图4-6物资实体属性图(3)物资申请表物资申请是指用户在系统中对有物质需要时的物资申请,申请表中保存申请人(用户)的申请物资、申请号、申请类型、申请原因、申请时间、申请数量、预计归还时间等信息。物资申请提交后根据设定好的程序处理物资申办表,并记录申报表状态(申请状态和审核状态)。管理员可以对物资申请进行审核,填写审核意见和审核时间。物资申请表可以实现对物资申请进行规范化管理,跟踪整个物资申请的生命周期,保障物资的合理申请,方便查询和统计分析,优化物资流程管理,如图4-7所示。图4-7物资申请4.3.2物理结构设计(1)管理员表用于存放管理员的相关信息。包含Id(唯一标识,非空)、username(用户名,可空)、password(密码,可空)、role(角色,可空)、addtime(新增时间,可空)等字段。管理并授权给管理员,Id作为主键确保每个管理员记录的唯一性。如表4-1所示。表4-1管理员表序号列名数据类型说明允许空1IdIntid否2usernameString用户名是3passwordString密码是4roleString角色是5addtimeDate新增时间是(2)用户表主要用来保存用户的个人信息。有Id(标识用户,非空)、xuesheng_uuid_number(学号,可空)、xuesheng_name(用户姓名,可空)、xuesheng_phone(用户手机号,可空)、xuesheng_id_number(用户身份证号,可空)、xuesheng_photo(用户头像,可空)、xuesheng_email(用户邮箱,可空)、xuesheng_address(用户住址,可空)、create_time(创建时间,可空)等字段。以便于系统对用户的识别和管理,方便与用户的沟通和服务。相应字段详细信息,如表4-2所示。表4-2用户表序号列名数据类型说明允许空1IdIntid否2xuesheng_uuid_numberString学号是3xuesheng_nameString用户姓名是4xuesheng_phoneString用户手机号是5xuesheng_id_numberString用户身份证号是6xuesheng_photoString用户头像是7xuesheng_emailString用户邮箱是8xuesheng_addressString用户住址是9create_timeDate创建时间是(3)物资申请表表4-3物资申请表序号列名数据类型说明允许空1IdIntid否2xuesheng_idInteger用户是3wuzi_idInteger物资是4wuzi_shenqing_uuid_numberString物资申请编号是5wuzi_shenqing_typesInteger物资申请类型是6wuzi_shenqing_contentString申请缘由是7insert_timeDate申请时间是8sheqing_numberInteger申请数量是9yujiguihuan_timeDate预计归还时间是10wuzi_shenqing_yesno_typesInteger审核状态是11wuzi_shenqing_yesno_textString审核意见是12wuzi_shenqing_shenhe_timeDate审核时间是13create_timeDate创建时间是记录用户对物资的申请情况。包括Id(申请表的唯一标识,不能为空)、xuesheng_id(提出申请的用户,可空)、wuzi_id(申请的物资,可空)、wuzi_shenqing_uuid_number(物资申请编号,可空)、wuzi_shenqing_types(物资申请类型,可空)、wuzi_shenqing_content(申请缘由,可空)、insert_time(申请时间,可空)、sheqing_number(申请数量,可空)、yujiguihuan_time(预计归还时间,可空)、wuzi_shenqing_zhuangtai_types(申请状态,可空)、wuzi_shenqing_yesno_types(审核状态,可空)、wuzi_shenqing_yesno_text(审核意见,可空)、wuzi_shenqing_shenhe_time(审核时间,可空)、create_time(创建时间,可空)等字段。该表可以直观的将物资申请的全过程展现出来,便于对物资的申请追踪管理。如表4-3所示。物资表表4-4物资表序号列名数据类型说明允许空1IdIntid否2wuzi_uuid_numberString物资编号是3wuzi_nameString物资名称是4wuzi_photoString物资照片是5wuzi_danweiString单位是6wuzi_typesInteger物资类型是表4-4(续)序号列名数据类型说明允许空7wuzi_kucun_numberInteger物资数量是8wuzi_yuzhiInteger警戒值是9cangku_typesInteger仓库是10wuzi_contentString物资介绍是11insert_timeDate录入时间是12create_timeDate创建时间是存储物资信息。包含Id(物资的唯一标识,不允许为空)、wuzi_uuid_number(物资编号,可空)、wuzi_name(物资名称,可空)、wuzi_photo(物资照片,可空)、wuzi_danwei(单位,可空)、wuzi_types(物资类型,可空)、wuzi_kucun_number(物资数量,可空)、wuzi_yuzhi(警戒值,可空)、cangku_types(仓库,可空)、wuzi_content(物资介绍,可空)、insert_time(录入时间,可空)、create_time(创建时间,可空)等字段。根据以上信息可以实现对系统物资的库存管理、分类统计等,如表4-4所示。(5)公告表用于公告的发布与公告的管理。有Id(公告的唯一标识,非空)、gonggao_name(公告名称,可空)、gonggao_types(公告类型,可空)、insert_time(公告发布时间,可空)、gonggao_content(公告详情,可空)、create_time(创建时间,可空)等字段。用户、管理员可查看本表来对公告进行管理,及时掌握本系统的通知与消息,如表4-5所示。表4-5公告表序号列名数据类型说明允许空1IdIntid否2gonggao_nameString公告名称是3gonggao_typesInteger公告类型是4insert_timeDate公告发布时间是5gonggao_contentString公告详情是6create_timeDate创建时间是
5系统实现5.1后台功能实现5.1.1大数据首页图5-1大数据首页大数据首页是后台系统的第一页面,用于对整个系统的概况与主要内容进行展现。通过大数据分析可以对仓库的物资各类型数量、物资申请等情况进行查看。首页应具有图表,图形、数据统计分析等功能通过可视化的方法可以展现整个仓库经营的各个情况,包括各项物资的数量、出入库情况、物资申请办理情况等等。大数据首页让管理员可以快速了解整个仓库的经营情况,方便管理员做判断,合理分配资源,如图5-1所示。大数据首页的实现代码如下:/***饼状图求和*@return*/@RequestMapping("/pieSum")publicRpieSum(@RequestParamMap<String,Object>params){logger.debug("饼状图求和:,,Controller:{},,params:{}",this.getClass().getName(),params);List<Map<String,Object>>result=commonService.pieSum(params);returnR.ok().put("data",result);}/***饼状图统计*@return*/@RequestMapping("/pieCount")publicRpieCount(@RequestParamMap<String,Object>params){logger.debug("饼状图统计:,,Controller:{},,params:{}",this.getClass().getName(),params);List<Map<String,Object>>result=commonService.pieCount(params);returnR.ok().put("data",result);}5.1.2登录注册图5-2登录注册此仓库管理系统的登录注册功能,是所有角色在进入系统前都需要的环节,因此是系统的基本功能。通过登录注册,确保管理员安全登录、访问系统功能。管理员需要登录系统,输入用户名密码进行登入使用系统,系统通过鉴权,确保管理员的权限合法使用。注册是指新建管理员账号,进行新建用户名、设置密码等操作。密码应该进行加密存储,并提供密码找回功能。应该支持管理员分级管理权限,不同级别的管理员,可以访问不同的功能模块。管理员登录后应该支持用户信息管理等功能,如图5-2所示。登录注册功能的实现代码如下:/**
*登录
*/@IgnoreAuth
@PostMapping(value="/login")
publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){
UsersEntityuser=usersService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username));
if(user==null||!user.getPassword().equals(password)){
returnR.error("账号或密码不正确");
}
Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole());
Rr=R.ok();
r.put("token",token);
r.put("role",user.getRole());
r.put("userId",user.getId());
returnr;
}/**
*注册
*/@IgnoreAuth
@PostMapping(value="/register")
publicRregister(@RequestBodyUsersEntityuser){
if(usersService.selectOne(newEntityWrapper<UsersEntity>().eq("username",user.getUsername()))!=null){
returnR.error("用户已存在");
}
usersService.insert(user);
returnR.ok();
}/**
*用户
*/
publicinterfaceUsersDaoextendsBaseMapper<UsersEntity>{
List<UsersEntity>selectListView(@Param("ew")Wrapper<UsersEntity>wrapper);
List<UsersEntity>selectListView(Paginationpage,@Param("ew")Wrapper<UsersEntity>wrapper);
}5.1.3用户管理用户管理模块主要是对后台系统的用户进行管理,如一般用户和管理员等,管理员能够通过用户管理模块对用户进行查看,修改,删除,用户管理模块支持管理员创建用户,分配权限,如普通用户能够查看物资信息,管理员可以申请物资、发布公告等。管理员能够对用户禁用,启用,确保系统的安全有效性,用户管理模块支持用户权限的动态变更,满足不同业务需求。如图5-3所示。图5-3用户管理用户管理模块中密码重置、修改、删除功能实现代码如下:/**
*密码重置
*/@IgnoreAuth
@RequestMapping(value="/resetPass")
publicRresetPass(Stringusername,HttpServletRequestrequest){
UsersEntityuser=usersService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username));
if(user==null){
returnR.error("账号不存在");
}
user.setPassword("123456");
usersService.update(user,null);
returnR.ok("密码已重置为:123456");
}/**
*获取用户的session用户信息
*/@RequestMapping("/session")
publicRgetCurrUser(HttpServletRequestrequest){
Integerid=(Integer)request.getSession().getAttribute("userId");
UsersEntityuser=usersService.selectById(id);
returnR.ok().put("data",user);
}/**
*修改
*/@RequestMapping("/update")
publicRupdate(@RequestBodyUsersEntityuser){
usersService.updateById(user);//全部更新
returnR.ok();
}/**
*删除
*/@RequestMapping("/delete")
publicRdelete(@RequestBodyLong[]ids){
usersService.deleteBatchIds(Arrays.asList(ids));
returnR.ok();
}5.1.4仓库管理仓库管理功能是后台系统的一个重要的功能,用于管理仓库中全部的物资,管理员可以通过仓库管理模块对仓库进行管理、对仓库进行分仓、贴标签、设置仓库容量等操作。仓库随时对仓库中物资的数量进行动态更新,同时可以对其进行入库、出库操作,便于管理,如图5-4所示。图5-4仓库管理仓库管理模块中详情功能实现代码如下:/**
*后端列表
*/@RequestMapping("/page")
@IgnoreAuth
publicRpage(@RequestParamMap<String,Object>params,HttpServletRequestrequest){
CommonUtil.checkMap(params);
PageUtilspage=dictionaryService.queryPage(params);
//字典表数据转换
List<DictionaryView>list=(List<DictionaryView>)page.getList();
for(DictionaryViewc:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c,request);
}
returnR.ok().put("data",page);
}/**
*后端详情
*/@RequestMapping("/info/{id}")
publicRinfo(@PathVariable("id")Longid,HttpServletRequestrequest){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
DictionaryEntitydictionary=dictionaryService.selectById(id);
if(dictionary!=null){
//entity转view
DictionaryViewview=newDictionaryView();
BeanUtils.copyProperties(dictionary,view);//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view,request);
returnR.ok().put("data",view);
}else{
returnR.error(511,"查不到数据");
}
}5.1.5物资类型仓库中物资的分类管理,即为物资类型模块,管理员通过设置物资类型,可以将物资进行分类管理,例如办公用品、设备器材、原材料等。物资类型设置后便于管理员掌握物资种类和数量,也便于进行入库、出库管理、申请审批等,系统应具备物资类型添加、修改、删除功能,实现物资分类管理的灵活性、精确性,如图5-5所示。图5-5物资类型物资类型模块中修改、删除功能实现代码如下:/**
*后端修改
*/@RequestMapping("/update")
publicRupdate(@RequestBodyDictionaryEntitydictionary,HttpServletRequestrequest)throwsNoSuchFieldException,ClassNotFoundException,IllegalAccessException,InstantiationException{
DictionaryEntityoldDictionaryEntity=dictionaryService.selectById(dictionary.getId());//查询原先数据
Stringrole=String.valueOf(request.getSession().getAttribute("role"));
dictionaryService.updateById(dictionary);//根据id更新
//如果字典表修改数据的话,把数据再重新查出,放入监听器中
List<DictionaryEntity>dictionaryEntities=dictionaryService.selectList(newEntityWrapper<DictionaryEntity>());
ServletContextservletContext=request.getServletContext();
Map<String,Map<Integer,String>>map=newHashMap<>();
for(DictionaryEntityd:dictionaryEntities){
Map<Integer,String>m=map.get(d.getDicCode());
if(m==null||m.isEmpty()){
m=newHashMap<>();
}
m.put(d.getCodeIndex(),d.getIndexName());
map.put(d.getDicCode(),m);
}
servletContext.setAttribute("dictionaryMap",map);
returnR.ok();
}/**
*删除
*/@RequestMapping("/delete")
publicRdelete(@RequestBodyInteger[]ids,HttpServletRequestrequest){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
List<DictionaryEntity>oldDictionaryList=dictionaryService.selectBatchIds(Arrays.asList(ids));//要删除的数据
dictionaryService.deleteBatchIds(Arrays.asList(ids));
returnR.ok();
}5.1.6公告类型图5-6公告类型公告类型模块是用来管理系统中发布的公告的类型,管理员通过公告类型模块来设置系统的公告发布的类型,包括公司新闻、系统维护公告、物资采购等等,公告类型管理能够让发布的公告和查看的公告更有秩序,管理员可以设置每个公告所属的发布类型,能够让用户快速查看公告,公告类型模块应该支持对发布的公告进行编辑、删除、修改,确保发布的公告准确、准时,如图5-6所示。5.1.7物资申请类型管理物资申请类型管理模块是用来区分管理物资申请种类。管理员可以根据物资用途、申请目的来划分物资申请类别。例如:有些物资临时需要,有些是长期备货的,通过添加物资申请类型,可以方便管理员明确各类物资需求,从而更好地审批、分配物资。系统需要支持物资申请类型的添加、修改、删除,确保合理的、及时的物资申请。如图5-7所示。图5-7物资申请类型管理5.1.8公告管理图5-8公告管理公告管理模块是对后台系统中的公告进行管理,管理员可以通过公告管理模块实现公告的新建,修改,编辑,删除,并设置其发布时间,内容,编辑时间,内容等。公告可以包括系统维护的公告或者重要事件发生的公告,物资申请结果等。管理员可以设置公告显示于系统的位置,显示的时间等,在公告有效时间内将公告以显示的形式展现在系统用户面前,并且,公告管理模块应具备查看与查询的功能,方便管理员查看以往的公告,如图5-8所示。公告管理模块中详情、修改功能实现代码如下:/**
*后端详情
*/@RequestMapping("/info/{id}")
publicRinfo(@PathVariable("id")Longid,HttpServletRequestrequest){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
GonggaoEntitygonggao=gonggaoService.selectById(id);
if(gonggao!=null){
//entity转view
GonggaoViewview=newGonggaoView();
BeanUtils.copyProperties(gonggao,view);//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view,request);
returnR.ok().put("data",view);
}else{
returnR.error(511,"查不到数据");
}
}/**
*后端修改
*/@RequestMapping("/update")
publicRupdate(@RequestBodyGonggaoEntitygonggao,HttpServletRequestrequest)throwsNoSuchFieldException,ClassNotFoundException,IllegalAccessException,InstantiationException{
GonggaoEntityoldGonggaoEntity=gonggaoService.selectById(gonggao.getId());//查询原先数据
Stringrole=String.valueOf(request.getSession().getAttribute("role"));
gonggaoService.updateById(gonggao);//根据id更新
returnR.ok();
}5.1.9物资管理物资管理是后台系统的一个核心的功能模块,它涵盖了仓库内所有的物资管理,管理员能够通过物资管理模块查看和管理仓库内所有的物资,例如:物资的名称、数量、入库时间、仓库名称等等,物资管理模块应该具备物资进出库操作、物资调拨等功能,实现物资的流通,管理员可以根据库存物资的多少,进行物资的补给或调拨,避免出现物资短缺或物资堆积过多的情况,系统还应具备物资统计与分析功能,方便管理员对物资的使用情况和库存情况进行分析,如图5-9所示。图5-9物资管理物资管理模块展示数据列表功能的查询数据库代码如下:<selectid="selectListView"parameterType="map"resultType="com.entity.view.WuziView">
SELECT
<includerefid="Base_Column_List"/>
<!--级联表的字段-->
FROMwuzia
<where>
<iftest="params.ids!=null">
anda.idin
<foreachitem="item"index="index"collection="params.ids"open="("separator=","close=")">
#{item}
</foreach>
</if>
<iftest="params.wuziUuidNumber!=''andparams.wuziUuidNumber!=nullandparams.wuziUuidNumber!='null'">
anda.wuzi_uuid_numberlikeCONCAT('%',#{params.wuziUuidNumber},'%')
</if>
<iftest="params.wuziName!=''andparams.wuziName!=nullandparams.wuziName!='null'">
anda.wuzi_namelikeCONCAT('%',#{params.wuziName},'%')
</if>
<iftest="params.wuziDanwei!=''andparams.wuziDanwei!=nullandparams.wuziDanwei!='null'">
anda.wuzi_danweilikeCONCAT('%',#{params.wuziDanwei},'%')
</if>
<iftest="params.wuziTypes!=nullandparams.wuziTypes!=''">
anda.wuzi_types=#{params.wuziTypes}
</if>
</where>
orderbya.${params.sort}${params.order}
</select>5.1.10物资申请管理图5-10物资申请管理物资申请管理模块用来处理系统用户对于物资的申请,系统用户能够通过系统对物资进行申请,管理员能够对物资的种类、数量进行审批通过,物资申请管理模块应当实现对物资审批流程的管理。例如:审
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 流感治疗与药物预防临床实践指南重点2026
- 某道路电缆沟工程施工组织方案
- 植树节活动方案完整版10篇
- 2025年广西大学证券投资分析期末考试复习题及参考答案
- 防水工匠实操考核-成都市建筑职业技能人才大赛预赛指导技术方案
- 旅游平台用户行为分析报告
- 互联网传媒行业·AI周专题:美股软件反弹如何看待AI颠覆软件叙事
- 第5章:微信小程序API精讲(下)
- 《一站到底》题库及答案
- 2026年保密知识-多项选择题考试题库附参考答案
- 2026江苏常州工业职业技术学院招聘人事代理人员11人笔试参考试题及答案解析
- 2026年池州市保险行业协会工作人员招聘备考题库附答案详解(满分必刷)
- 14 赵州桥 课件-2025-2026学年统编版语文三年级下册
- 广东省化工(危险化学品)企业安全隐患排查指导手册(危险化学品仓库企业专篇)
- 2025年医疗卫生系统招聘考试《医学基础知识》真题及详解
- 齐成控股集团招聘笔试题库2026
- 沉井专项施工方案-9310
- 2023年医技类-微生物检验技术(副高)考试历年真题拔高带答案必考
- 组合分析样送样单
- GB/T 12689.1-2010锌及锌合金化学分析方法第1部分:铝量的测定铬天青S-聚乙二醇辛基苯基醚-溴化十六烷基吡啶分光光度法、CAS分光光度法和EDTA滴定法
- 遥感原理与应用-第2章
评论
0/150
提交评论