基于JAVA+SpringBoot+LayUI+Shiro的仓库管理系统

浏览 20 次

Warehouse Management System Based on Java+SpringBoot+LayUI+Shiro

该系统是一个基于Java技术栈的仓库管理系统,采用SpringBoot、LayUI和Shiro框架进行开发。核心功能包括库存信息管理、出入库流程控制、用户权限管理及数据统计分析。项目实现了一个高效、安全、易用的仓库管理解决方案,适合作为企业级应用或毕业设计项目,展示了现代Web系统开发的最佳实践。

SpringBootLayUIMySQL权限控制后台管理PC端

项目简介

该系统是一个基于Java技术栈的仓库管理系统,采用SpringBoot、LayUI和Shiro框架进行开发。核心功能包括库存信息管理、出入库流程控制、用户权限管理及数据统计分析。项目实现了一个高效、安全、易用的仓库管理解决方案,适合作为企业级应用或毕业设计项目,展示了现代Web系统开发的最佳实践。

项目基础信息

适合专业计算机科学与技术 / 软件工程 / 信息管理
技术栈SpringBoot + LayUI + Shiro + MySQL
系统架构前后端分离
项目类型仓库管理系统
运行环境JDK1.8、MySQL5.7+、Tomcat8+
核心技术SpringBoot、Shiro权限控制、LayUI前端框架

项目包含内容

  • 前后端完整源码
  • 数据库完整脚本
  • 参考论文(如有)
  • 部署软件及部署说明
  • 项目介绍文档(如有)

项目详细介绍

一、项目背景介绍:

仓库管理系统 某物流公司主要从事电子类产品的配送服务,仓储在企业的整个供应链中起 着至关重要的作用,如果不能保证正确的进货和库存控制及发货,将会导致管理 费用的增加,服务质量难以得到保证,从而影响企业的竞争力。传统简单、静态 的仓储管理已无法保证企业各种资源的高效利用。如今的仓库作 业和库存控制 作 仓库管理系统 某物流公司主要从事电子类产品的配送服务,仓储在企业的整个供应链中起 着至关重要的作用

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

  2. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

  3. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。

  4. shiro:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

  5. layui:layui(谐音:类 UI) 是一套开源的 Web UI 解决方案,采用自身经典的模块化规范,并遵循原生 HTML/CSS/JS 的开发方式,常适合网页界面的快速开发。layui 区别于那些基于MVVM 底层的前端框架,它更多是面向后端开发者,无需涉足前端各种工具,只需面对浏览器本身,让一切所需要的元素与交互。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

  1. bus_customer(bus_customer)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| customername | varchar(255) | NULL | |

| zip | varchar(255) | NULL | |

| address | varchar(255) | NULL | |

| telephone | varchar(255) | NULL | |

| connectionperson | varchar(255) | NULL | |

| phone | varchar(255) | NULL | |

| bank | varchar(255) | NULL | |

| account | varchar(255) | NULL | |

| email | varchar(255) | NULL | |

| fax | varchar(255) | NULL | |

| available | int(11) | NULL | |

  1. bus_goods(bus_goods)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| goodsname | varchar(255) | NULL | |

| produceplace | varchar(255) | NULL | |

| size | varchar(255) | NULL | |

| goodspackage | varchar(255) | NULL | |

| productcode | varchar(255) | NULL | |

| promitcode | varchar(255) | NULL | |

| description | varchar(255) | NULL | |

| price | double | NULL | |

| number | int(11) | NULL | |

| dangernum | int(11) | NULL | |

| goodsimg | varchar(255) | NULL | |

| available | int(11) | NULL | |

| providerid | int(11) | NULL | |

  1. bus_inport(bus_inport)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| paytype | varchar(255) | NULL | |

| inporttime | datetime(0) | NULL | |

| operateperson | varchar(255) | NULL | |

| number | int(11) | NULL | |

| remark | varchar(255) | NULL | |

| inportprice | double | NULL | |

| providerid | int(11) | NULL | |

| goodsid | int(11) | NULL | |

  1. bus_outport(bus_outport)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| providerid | int(11) | NULL | |

| paytype | varchar(255) | NULL | |

| outputtime | datetime(0) | NULL | |

| operateperson | varchar(255) | NULL | |

| outportprice | VARCHAR(255) | NULL | |

  1. bus_provider(bus_provider

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| providername | varchar(255) | NULL | |

| zip | varchar(255) | NULL | |

| address | varchar(255) | NULL | |

| telephone | varchar(255) | NULL | |

| connectionperson | varchar(255) | NULL | |

| phone | varchar(255) | NULL | |

| bank | varchar(255) | NULL | |

| account | varchar(255) | NULL | |

| email | varchar(255) | NULL | |

| fax | varchar(255) | NULL | |

| available | int(11) | NULL | |

  1. bus_sales(bus_sales)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| customerid | int(11) | NULL | |

| paytype | varchar(255) | NULL | |

| salestime | datetime(0) | NULL | |

| operateperson | varchar(255) | NULL | |

| number | int(11) | NULL | |

| remark | varchar(255) | NULL | |

| saleprice | VARCHAR(255) | NULL | |

  1. bus_salesback(bus_salesback)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| customerid | int(11) | NULL | |

| paytype | varchar(255) | NULL | |

| salesbacktime | datetime(0) | NULL | |

| salebackprice | VARCHAR(255) | NULL | |

  1. sys_dept(sys_dept)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| pid | int(11) | NULL | |

| title | varchar(255) | NULL | |

| open | int(11) | NULL | |

| remark | varchar(255) | NULL | |

| address | varchar(255) | NULL | |

| available | int(11) | NULL | 状态【0不可用1可用】 |

| ordernum | int(11) | NULL | 排序码【为了调事显示顺序】 |

| createtime | datetime(0) | NULL | |

  1. sys_loginfo(sys_loginfo)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| loginname | varchar(255) | NULL | |

| loginip | varchar(255) | NULL | |

| logintime | datetime(0) | NULL | |

  1. sys_notice(sys_notice)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| title | varchar(255) | NULL | |

| content | text | NULL | |

| createtime | datetime(0) | NULL | |

| opername | varchar(255) | NULL | |

  1. sys_permission(sys_permission)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| pid | int(11) | NULL | |

| type | varchar(255) | NULL | 权限类型[menu/permission] |

| title | varchar(255) | NULL | |

| percode | varchar(255) | NULL | 权限编码[只有type=permission才有user:view] |

| icon | varchar(255) | NULL | |

| href | varchar(255) | NULL | |

| target | varchar(255) | NULL | |

| open | int(11) | NULL | |

| ordernum | int(11) | NULL | |

| available | int(11) | NULL | 状态【0不可用1可用】 |

  1. sys_role(sys_role)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| name | varchar(255) | NULL | |

| remark | varchar(255) | NULL | |

| available | int(11) | NULL | |

| createtime | datetime(0) | NULL | |

  1. sys_role_permission(sys_role_permission)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| rid | int(11) | NULL | |

| pid | int(11) | NULL | |

  1. sys_user(sys_user)

| 字段名 | 类型 | 默认值 | 列注释 |

| --------- | ------------- | ------ | ------ |

| id | int(11) | NULL | |

| name | varchar(255) | NULL | |

| loginname | varchar(255) | NULL | |

| address | varchar(255) | NULL | |

| sex | int(11) | NULL | |

| remark | varchar(255) | NULL | |

| pwd | varchar(255) | NULL | |

| deptid | int(11) | NULL | |

| hiredate | datetime(0) | NULL | |

| mgr | int(11) | NULL | |

| available | int(11) | NULL | |

| ordernum | int(11) | NULL | |

| type | int(255) | NULL | 用户类型[0超级管理员1,管理员,2普通用户] |

| imgpath | varchar(255) | NULL | 头像地址 |

| salt | varchar(255) | NULL | |

五、功能模块:

  1. 客户管理:客户管理主要存储一些仓库客户的一些基本信息,包括各种条件模糊查询,删除,编辑等功能

    客户管理

  2. 供应商管理:存款仓库系统中所有的供应商信息

在这里插入图片描述

  1. 商品管理:此模块主要对仓库中所有商品的管理,包括商品添加,删除修改等

在这里插入图片描述

  1. 销售额统计模块:主要对商品的入库,出库金额进行统计,从而形成销售额的图表,以供管理员查看

    销售额统计模块

六、代码示例:

客户管理

@RequestMapping(loadAllCustomer)

	public DataGridView loadAllCustomer(CustomerVo customerVo) {

		IPage<Customer> page = new Page<>(customerVo.getPage(), customerVo.getLimit());

		QueryWrapper<Customer> queryWrapper = new QueryWrapper<>();

		queryWrapper.like(StringUtils.isNotBlank(customerVo.getCustomername()), customername,

				customerVo.getCustomername());

		queryWrapper.like(StringUtils.isNotBlank(customerVo.getPhone()), phone, customerVo.getPhone());

		queryWrapper.like(StringUtils.isNotBlank(customerVo.getConnectionperson()), connectionperson,

				customerVo.getConnectionperson());

		this.customerService.page(page, queryWrapper);

		return new DataGridView(page.getTotal(), page.getRecords());

	}
供应商管理

/**

	 * 加载所有可用的供应商

	 */

	@RequestMapping(loadAllProviderForSelect)

	public DataGridView loadAllProviderForSelect() {

		QueryWrapper<Provider> queryWrapper=new QueryWrapper<>();

		queryWrapper.eq(available, Constast.AVAILABLE_TRUE);

		List<Provider> list = this.providerService.list(queryWrapper);

		return new DataGridView(list);

	}
商品管理

@RequestMapping(loadAllGoods)

	public DataGridView loadAllGoods(GoodsVo goodsVo) {

		IPage<Goods> page = new Page<>(goodsVo.getPage(), goodsVo.getLimit());

		QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();

		queryWrapper.eq(goodsVo.getProviderid()!=null&&goodsVo.getProviderid()!=0,providerid,goodsVo.getProviderid());

		queryWrapper.like(StringUtils.isNotBlank(goodsVo.getGoodsname()), goodsname, goodsVo.getGoodsname());

		queryWrapper.like(StringUtils.isNotBlank(goodsVo.getProductcode()), productcode, goodsVo.getProductcode());

		queryWrapper.like(StringUtils.isNotBlank(goodsVo.getPromitcode()), promitcode, goodsVo.getPromitcode());

		queryWrapper.like(StringUtils.isNotBlank(goodsVo.getDescription()), description, goodsVo.getDescription());

		queryWrapper.like(StringUtils.isNotBlank(goodsVo.getSize()), size, goodsVo.getSize());

		this.goodsService.page(page, queryWrapper);

		List<Goods> records = page.getRecords();

		for (Goods goods : records) {

			Provider provider = this.providerService.getById(goods.getProviderid());

			if(null!=provider) {

				goods.setProvidername(provider.getProvidername());

			}

		}

		return new DataGridView(page.getTotal(), records);

	}
销售额统计模块

	@RequestMapping(loadAllOutport)

	public DataGridView loadAllOutport(OutportVo outportVo) {

		IPage<Outport> page = new Page<>(outportVo.getPage(), outportVo.getLimit());

		QueryWrapper<Outport> queryWrapper = new QueryWrapper<>();

		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.like(StringUtils.isNotBlank(outportVo.getOperateperson()), operateperson, outportVo.getOperateperson());

		queryWrapper.like(StringUtils.isNotBlank(outportVo.getRemark()), remark, outportVo.getRemark());

		queryWrapper.orderByDesc(outputtime);

		this.outportService.page(page, queryWrapper);

		List<Outport> records = page.getRecords();

		for (Outport outport : records) {

			Provider provider = this.providerService.getById(outport.getProviderid());

			if(null!=provider) {

				outport.setProvidername(provider.getProvidername());

			}

			Goods goods = this.goodsService.getById(outport.getGoodsid());

			if(null!=goods) {

				outport.setGoodsname(goods.getGoodsname());

				outport.setSize(goods.getSize());

			}

		}

		return new DataGridView(page.getTotal(), records);

	}

七、项目总结:

 对于本次的系统开发来看,它主要是把我以前所学的知识进行了一次综合的应用。经过这次毕业设计的制作它主要是把我以前所学的理论知识应用到社会实践当中。通过这一次的仓库管理平台网站的设计与实现它能够有效把计算机知识与实际问题相互应用,通过计算机网络技术来解决用户生活当中的实际问题,从而提高我的编程能力。虽然在这次毕业设计当中我遇到了很多的问题和困难,但是通过不断的调试和老师的帮助让我圆满的完成了这次毕业设计。通过这次毕业设计的制作让我对计算机实际应用得到了很强的锻炼,同时也大大的提高了我的动手动脑能力,让我也感受到了其中的乐趣和喜悦。通过这次毕业设计的撰写把我在大学期间所学到的东西都应用上了,但是我觉得还是微不足道的,因为在这次毕业设计当中让我深深的了解到对于软件开发和学习理论知识它是两个完全不同的概念。但是通过这次软件的开发让我在以后的工作当中打下了良好的基础。

联系咨询区

可沟通项目方向、预算、交付周期与答辩时间安排,支持按学校要求定制交付内容。

为你推荐

根据你的浏览兴趣与热门趋势,精选可能适合你的毕业设计项目。

基于JAVA+SpringBoot+Vue+uniapp的微信小程序点餐平台

SpringBootVue微信小程序UniAppMySQL前后端分离支付功能小程序端

该系统是一个基于Java+SpringBoot后端、Vue+Uniapp前端的微信小程序点餐平台。平台实现了在线菜单浏览、购物车管理、订单提交与支付、后台数据统计等核心功能,为餐饮商家提供高效便捷的数字化点餐解决方案。项目采用前后端分离架构,适合作为毕业设计或实际项目开发,展示了现代Web与移动应用系统的完整实现流程。

基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序

SpringBootVueUniAppAI智能推荐算法小程序端

该项目是一个集成了协同过滤推荐算法、网络爬虫与AI技术的智能减肥小程序。系统采用JAVA+SpringBoot构建后端服务,Vue+uniapp实现跨平台前端,旨在为用户提供个性化的饮食与运动方案。核心功能包括基于用户行为的智能推荐、健康数据管理及社区互动,适合作为毕业设计或实际项目开发,展示了现代Web与移动应用在信息管理与系统开发中的综合实践。

基于JAVA+SpringBoot+Vue的自动阅卷分析系统

SpringBootVueMySQLAI智能数据可视化前后端分离PC端

该系统是一个基于JAVA+SpringBoot后端与Vue前端的自动阅卷分析系统,旨在实现高效、准确的试卷批改与学习数据分析。核心功能包括智能识别与评分、错题统计分析、成绩报告生成以及教学效果评估。该系统开发专注于提升阅卷效率与信息管理深度,适用于在线教育、考试机构及毕业设计项目实现,为教学管理与学习分析提供一体化解决方案。

基于JAVA+SpringBoot+Vue+uniApp小程序的心理健康测试平台

SpringBootVue微信小程序UniAppMySQL前后端分离小程序端

该心理健康测试平台是一个集前端小程序与后端管理系统于一体的综合系统开发项目。平台采用JAVA与SpringBoot构建稳健后端,结合Vue与uniApp实现跨端小程序开发,为用户提供便捷的心理测评与报告服务。系统核心功能包括题库管理、在线测试、数据分析及报告生成,旨在通过信息化手段提升心理健康服务的可及性与专业性,适用于毕业设计或实际项目实现。

基于JAVA+SpringBoot+Vue+uniapp的前后端分离的微信小程序的艺术品陶瓷商城

SpringBootVue微信小程序UniAppMySQL前后端分离小程序端

该项目是一个基于JAVA+SpringBoot+Vue+uniapp技术栈的前后端分离微信小程序艺术品陶瓷商城系统。系统开发实现了艺术品陶瓷的在线展示、商品管理、用户订单处理及支付集成等核心功能,为陶瓷艺术品的数字化交易提供了完整的信息管理解决方案,适合作为毕业设计或商业项目实现。

基于JAVA+SpringBoot+Vue的二手车交易系统

SpringBootVueMySQL前后端分离PC端

该系统是一个基于Java+SpringBoot+Vue的二手车交易管理系统,旨在为用户提供便捷的在线车辆买卖平台。核心功能包括车辆信息发布、智能搜索、在线咨询、交易管理及用户评价等模块。通过前后端分离的系统开发模式,实现了高效的信息管理和流畅的用户体验,适合作为毕业设计或实际项目实现,帮助提升二手车交易效率与透明度。

基于JAVA+SpringBoot+Vue的故障报修平台

SpringBootVueMySQL前后端分离PC端

该项目是一个基于Java、SpringBoot和Vue的故障报修平台,旨在实现高效的设备故障管理与维修流程。系统提供用户在线报修、工单分配、进度跟踪及数据统计等核心功能,适用于企业或校园的日常运维。通过前后端分离架构,确保了系统的可扩展性和维护性,适合作为毕业设计或实际项目实现,展示了现代Web信息管理系统的开发实践。

基于JAVA+SpringBoot+Vue的前后端分离的学校请假管理系统

SpringBootVueMySQL权限控制多角色系统前后端分离PC端

这是一个基于JAVA+SpringBoot+Vue的前后端分离学校请假管理系统,旨在实现学生请假流程的数字化与高效管理。系统开发涵盖了学生在线提交申请、辅导员与院系审批、请假记录统计等核心功能,优化了传统纸质流程。该项目可作为信息管理系统的毕业设计或实际应用案例,展示了前后端分离架构在项目实现中的优势。