基于Springboot的食品仓库管理系统设计和实现
一,项目简介
经过调查研究进行开发设计的这款仓库管理系统,主要是为商家提供商品货物进销存的信息化管理,以便让商家在竞争如此激烈的今天占据一定的优势和商机,通过信息化技术手段的应用来减少库存,提升周转率,降低成本,提高盈利。
仓库管理系统的设计与开发基于Java语言开发设计,采用常用的Springboot框架技术整合第三方其它框架开发实现,前端页面使用Layui进行页面的开发布局,数据存储则使用MySQL5.7数据库。整合这些技术和工具开发了一套完整的仓库管理系统。
这套系统的开发实现具体一定的普遍适用性,经过走访调查,得出大多数商家的基本功能需求进而进行抽取整合,开发实现了这套仓库管理系统,它具有一定的社会推广性,对整个社会的商业化进行有着广泛而积极的意义。
二,环境介绍
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
仓库管理系统采用Java编程语言。近年来,Java语言的使用率一直排在计算机语言的前三位;IntelliJ idea作为一种开发工具。基于springboot + Mybatis + MySQL + Shiro + HTML + layui的组合,开发了一套功能齐全、界面美观、使用方便的仓库管理系统,使仓库管理员对货物数据的管理更加简单、到位。这些技术能够满足仓库管理系统的开发、测试和部署。综上所述,这在技术层面是可行的。
三,系统展示
3.1 系统功能模块设计
系统的操作员在此登陆页面中输入用户相关的账户信息提交给后台程序,后台程序接受到账户和密码后会进行验证操作,校验通过后跳转到系统后台管理界面,实现相应的管理操作。登陆界面如图5-1所示。
如果输入的账户信息校验失败,那么系统就会进行相应的信息提示操作,具体展示如下图5-2所示。
操作员登陆后台选择左侧的客户管理,进行购物客户的相关管理操作。如图5-3、5-4、5-5、5-6、5-7所示。
操作员登陆后台选择左侧的供应商管理,进行商贸公司的供货商信息的的相关管理操作。如图5-6所示。
操作员登陆后台选择左侧的商品管理,进行商品信息的相关管理操作。如图5-7所示。
操作员登陆后台选择左侧的商品管理,进行商品的相关管理操作。如图5-8所示。
操作员登陆后台选择左侧的商品退货信息管理,进行退货的相关管理操作。如图5-9所示。
四,核心代码展示
package com.company.stock.bus.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("bus")
public class BusinessController {/*** 跳转到客户管理页面* @return*/@RequestMapping("toCustomerManager")public String toCustomerManager(){return "business/customer/customerManager";}/*** 跳转到供应商管理页面* @return*/@RequestMapping("toProviderManager")public String toProviderManager(){return "business/provider/providerManager";}/*** 跳转到商品管理页面* @return*/@RequestMapping("toGoodsManager")public String toGoodsManager(){return "business/goods/goodsManager";}/*** 跳转到进货管理页面* @return*/@RequestMapping("toInportManager")public String toInportManager(){return "business/inport/inportManager";}/*** 跳转到退货管理页面* @return*/@RequestMapping("toOutportManager")public String toOutportManager(){return "business/outport/outportManager";}/*** 跳转到商品销售管理页面* @return*/@RequestMapping("toSalesManager")public String toSalesManager(){return "business/sales/salesManager";}/*** 跳转到商品销售管理页面* @return*/@RequestMapping("toSalesbackManager")public String toSalesbackManager(){return "business/salesback/salesbackManager";}}
package com.company.stock.bus.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.company.stock.bus.service.ICustomerService;
import com.company.stock.sys.common.Constast;
import com.company.stock.sys.common.DataGridView;
import com.company.stock.sys.common.ResultObj;
import com.company.stock.bus.entity.Customer;
import com.company.stock.bus.vo.CustomerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;@RestController
@RequestMapping("/customer")
public class CustomerController {@Autowiredprivate ICustomerService customerService;/*** 查询所有的客户* @param customerVo* @return*/@RequestMapping("loadAllCustomer")public DataGridView loadAllCustomer(CustomerVo customerVo){//1.声明一个分页page对象IPage<Customer> page = new Page(customerVo.getPage(),customerVo.getLimit());//2.声明一个queryWrapperQueryWrapper<Customer> queryWrapper = new QueryWrapper();queryWrapper.like(StringUtils.isNotBlank(customerVo.getCustomername()),"customername",customerVo.getCustomername());queryWrapper.like(StringUtils.isNotBlank(customerVo.getConnectionpersion()),"connectionpersion",customerVo.getConnectionpersion());queryWrapper.like(StringUtils.isNotBlank(customerVo.getPhone()),"phone",customerVo.getPhone());customerService.page(page,queryWrapper);return new DataGridView(page.getTotal(),page.getRecords());}/*** 添加一个客户* @param customerVo* @return*/@RequestMapping("addCustomer")public ResultObj addCustomer(CustomerVo customerVo){try {customerService.save(customerVo);return ResultObj.ADD_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.ADD_ERROR;}}/*** 修改一个客户* @param customerVo* @return*/@RequestMapping("updateCustomer")public ResultObj updateCustomer(CustomerVo customerVo){try {customerService.updateById(customerVo);return ResultObj.UPDATE_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.UPDATE_ERROR;}}/*** 删除一个客户* @param id 客户的ID* @return*/@RequestMapping("deleteCustomer")public ResultObj deleteCustomer(Integer id){try {customerService.removeById(id);return ResultObj.DELETE_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.DELETE_ERROR;}}/*** 批量删除客户* @param customerVo 选中的客户* @return*/@RequestMapping("batchDeleteCustomer")public ResultObj batchDeleteCustomer(CustomerVo customerVo){try {Collection<Serializable> idList = new ArrayList<Serializable>();for (Integer id : customerVo.getIds()) {idList.add(id);}customerService.removeByIds(idList);return ResultObj.DELETE_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.DELETE_ERROR;}}/*** 加载所有客户的下拉列表* @return*/@RequestMapping("loadAllCustomerForSelect")public DataGridView loadAllCustomerForSelect(){QueryWrapper<Customer> queryWrapper = new QueryWrapper<Customer>();queryWrapper.eq("available", Constast.AVAILABLE_TRUE);List<Customer> list = customerService.list(queryWrapper);return new DataGridView(list);}}
package com.company.stock.bus.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.company.stock.bus.service.IGoodsService;
import com.company.stock.bus.service.IProviderService;
import com.company.stock.sys.common.AppFileUtils;
import com.company.stock.sys.common.Constast;
import com.company.stock.sys.common.DataGridView;
import com.company.stock.sys.common.ResultObj;
import com.company.stock.bus.entity.Goods;
import com.company.stock.bus.entity.Provider;
import com.company.stock.bus.vo.GoodsVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping("/goods")
public class GoodsController {@Autowiredprivate IGoodsService goodsService;@Autowiredprivate IProviderService providerService;/*** 查询商品* @param goodsVo* @return*/@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());queryWrapper.orderByDesc("id");goodsService.page(page,queryWrapper);List<Goods> records = page.getRecords();for (Goods goods : records) {Provider provider = providerService.getById(goods.getProviderid());if (null!=provider){goods.setProvidername(provider.getProvidername());}}return new DataGridView(page.getTotal(),page.getRecords());}/*** 添加商品* @param goodsVo* @return*/@RequestMapping("addGoods")public ResultObj addGoods(GoodsVo goodsVo){try {if (goodsVo.getGoodsimg()!=null&&goodsVo.getGoodsimg().endsWith("_temp")){String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg());goodsVo.setGoodsimg(newName);}goodsService.save(goodsVo);return ResultObj.ADD_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.ADD_ERROR;}}/*** 修改商品* @param goodsVo* @return*/@RequestMapping("updateGoods")public ResultObj updateGoods(GoodsVo goodsVo){try {//商品图片不是默认图片if (!(goodsVo.getGoodsimg()!=null&&goodsVo.getGoodsimg().equals(Constast.DEFAULT_IMG))){if (goodsVo.getGoodsimg().endsWith("_temp")){String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg());goodsVo.setGoodsimg(newName);//删除原先的图片String oldPath = goodsService.getById(goodsVo.getId()).getGoodsimg();AppFileUtils.removeFileByPath(oldPath);}}goodsService.updateById(goodsVo);return ResultObj.UPDATE_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.UPDATE_ERROR;}}/*** 删除商品* @param id* @return*/@RequestMapping("deleteGoods")public ResultObj deleteGoods(Integer id,String goodsimg){try {//删除商品的图片AppFileUtils.removeFileByPath(goodsimg);goodsService.removeById(id);return ResultObj.DELETE_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.DELETE_ERROR;}}/*** 加载所有可用的商品* @return*/@RequestMapping("loadAllGoodsForSelect")public DataGridView loadAllGoodsForSelect(){QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();queryWrapper.eq("available",Constast.AVAILABLE_TRUE);List<Goods> list = goodsService.list(queryWrapper);for (Goods goods : list) {Provider provider = providerService.getById(goods.getProviderid());if (null!=provider){goods.setProvidername(provider.getProvidername());}}return new DataGridView(list);}/*** 根据供应商ID查询商品信息* @param providerid 供应商ID* @return*/@RequestMapping("loadGoodsByProviderId")public DataGridView loadGoodsByProviderId(Integer providerid){QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();queryWrapper.eq("available",Constast.AVAILABLE_TRUE);queryWrapper.eq(providerid!=null,"providerid",providerid);List<Goods> list = goodsService.list(queryWrapper);for (Goods goods : list) {Provider provider = providerService.getById(goods.getProviderid());if (null!=provider){goods.setProvidername(provider.getProvidername());}}return new DataGridView(list);}}
五,项目总结
(1)登录模块:各角色能够通过管理员所创建的用户的用户名和密码进行登录操作;
(2)供销管理模块:该模块包括客户管理、供应商管理、商品管理。管理员通过该模块进行对客户、供应商和商品数据的增删改查。
(6)业务管理模块:该模块包括登录日志和系统公告。登录日志对系统中的所有用户都具有实时查看访问日志权限,管理员则是可以对日志进行删除操作。系统公告由管理员发布和修改,用于对用户的通知。
基于Springboot的食品仓库管理系统设计和实现相关推荐
- 基于springboot的食品二维码溯源系统
1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,基于springboot的食品二维码溯源系统. 计算机毕业生设计,课程设计需要帮助的可以找我 2 设计概要 21世纪是信息化时代,随着信息技 ...
- 基于springboot的高校迎新系统设计与实现
摘要:新生入学是各高校每年的重大工作之一,学校对迎新工作进行更有效的组织管理,使新生有更好的入学体验,对于学校和新生而言,都具有极其重要的意义.当前国内各高校的迎新系统主要采用互联网技术实现个人信息采 ...
- Springboot毕设项目基于SpringBoot的特产销售系统设计与实现7m7bcjava+VUE+Mybatis+Maven+Mysql+sprnig)
Springboot毕设项目基于SpringBoot的特产销售系统设计与实现7m7bcjava+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + ...
- springboot毕设项目基于SpringBoot的特产销售系统设计与实现7m7bc(java+VUE+Mybatis+Maven+Mysql)
springboot毕设项目基于SpringBoot的特产销售系统设计与实现7m7bc(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat ...
- 快递驿站取件管理系统|基于SpringBoot的快递栈系统设计与实现
作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...
- 基于springboot的在线作业管理系统设计与实现
功能需求 本系统主要为高校实现作业管理系统,目前疫情原因不能到学校上课,只能通过远程上课和作业的布置,为此提出了基于springboot的在线作业管理系统,帮助学生教师之前的作业上交和批改功能,帮助学 ...
- 基于springboot的理财管理系统设计与实现 Java MySQL
10143_基于springboot的理财管理系统 技术 SpringBoot 工具 eclipse + tomact + mysql + jdk 功能详情
- 基于SpringBoot的社区综合治理系统设计与实现
目录 引言 4 1.1. 文档目的 4 1.2. 读者对象 5 1.3. 术语与缩写解释 5 系统概述 5 2.1. 系统介绍 5 系统设计背景 5 2.2. 角色规划 6 2.3. 流程规划 8 模 ...
- 基于springboot校园志愿者管理系统设计与实现的源码+文档
摘 要 随着信息化时代的到来,管理系统都趋向于智能化.系统化,校园志愿者管理系统也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而校园 ...
最新文章
- spring jpa mysql集群_Spring Boot系列之十四 JPA 连接mycat
- 一个框架解决几乎所有机器学习问题
- 一图理解腾讯本次组织结构重大变革的方向和目的
- css禁止鼠标双击选中文字
- Java集合篇:Hashtable原理详解(JDK1.8)
- 【若依(ruoyi)】按钮样式
- vsCode配置自动补全css兼容性代码 ,解决 Autoprefixer 3.0无效
- BFS迷宫问题模型(具体模拟过程见《啊哈算法》)
- FLV文件格式(Z)(转载)
- APIO2010巡逻(树上带权直径)
- 上线了!游戏企业防沉迷落实情况有了举报平台
- 绝地求生2月19服务器维护,绝地求生2月19日停机维护几点结束_2020绝地求生2月19日开服时间介绍_求知软件网...
- python.集合转列表_python 列表,元组,字典,集合,字符串相互转换
- Web前端-JavaScript基础教程下
- 八皇后问题遗传算法c语言,用 遗传算法 解决八皇后问题
- 捷联惯导系统学习7.2(捷联惯导精对准 )
- 适合英语学习的100部电影
- easyUI的时间控件
- RK987A键盘说明书(自用)
- python计算圆锥体积和表面积_圆柱和圆锥表面积和体积的计算练习
热门文章
- 数字信号处理大作业——基于matlab R2019a的男声变女声资料汇总与代码
- 大学英语综合教程二 Unit 2 课文内容英译中 中英翻译
- [网络工程师]-防火墙-防火墙技术
- C语言 约瑟夫环问题
- LoadRunner(一)Win10系统下LoadRunner12的安装下载
- 液压伺服比例控制及PLC应用—学习笔记1
- 超过35%的德国中小企业已使用人工智能技术
- STM32F103C8T6+ESP8266WIFI+DHT11模块连接巴法云
- 李鬼见李逵——我用翟天临的论文做了分析
- 在 Heroku 部署 PHP,在Heroku上部署PHP项目