当前位置: 首页 > news >正文

Java项目:109SpringBoot超市仓管系统

博主主页:Java旅途
简介:分享计算机知识、学习路线、系统源码及教程
文末获取源码

一、项目介绍

超市仓管系统基于SpringBoot+Mybatis开发,系统使用shiro框架做权限安全控制,超级管理员登录系统后可根据自己的实际需求配角色,然后新建用户选择角色即可。

超级管理员功能如下:

  • 客户管理
  • 供应商管理
  • 商品管理
  • 商品进货
  • 商品销售
  • 退货查询
  • 系统管理
    • 部门管理
    • 菜单管理
    • 用户管理
  • 公告管理
  • 系统日志

二、技术框架

  • 后端:SpringBoot,Mybatis
  • 前端:layui

三、安装教程

  1. 用idea打开项目
  2. 在idea中配置jdk环境
  3. 配置maven环境并下载依赖
  4. 新建数据库,导入数据库文件
  5. 在application.yml文件中将数据库账号密码改成自己本地的
  6. 系统的静态资源存储在F盘,如果你的电脑没有F盘,则需要改成其他盘,具体位置在file.properties和AppFileUtils.java两个文件,将文件里面的F:/upload 改成你本地的即可。
  7. 启动运行, 管理员账号密码 admin/123456

四、项目截图

image-20230711211925676

image-20230711212004916

image-20230711212017421

image-20230711212045585

五、相关代码

ProviderController

package com.yeqifu.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.yeqifu.bus.entity.Provider;
import com.yeqifu.bus.service.IProviderService;
import com.yeqifu.bus.vo.ProviderVo;
import com.yeqifu.sys.common.Constast;
import com.yeqifu.sys.common.DataGridView;
import com.yeqifu.sys.common.ResultObj;
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("/provider")
public class ProviderController {@Autowiredprivate IProviderService providerService;/*** 查询所有的供应商* @param providerVo* @return*/@RequestMapping("loadAllProvider")public DataGridView loadAllProvider(ProviderVo providerVo){//1.声明一个分页page对象IPage<Provider> page = new Page(providerVo.getPage(),providerVo.getLimit());//2.声明一个queryWrapperQueryWrapper<Provider> queryWrapper = new QueryWrapper();queryWrapper.like(StringUtils.isNotBlank(providerVo.getProvidername()),"providername",providerVo.getProvidername());queryWrapper.like(StringUtils.isNotBlank(providerVo.getConnectionperson()),"connectionperson",providerVo.getConnectionperson());queryWrapper.like(StringUtils.isNotBlank(providerVo.getPhone()),"phone",providerVo.getPhone());providerService.page(page,queryWrapper);return new DataGridView(page.getTotal(),page.getRecords());}/*** 添加一个供应商* @param providerVo* @return*/@RequestMapping("addProvider")public ResultObj addProvider(ProviderVo providerVo){try {providerService.save(providerVo);return ResultObj.ADD_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.ADD_ERROR;}}/*** 修改一个供应商* @param providerVo* @return*/@RequestMapping("updateProvider")public ResultObj updateProvider(ProviderVo providerVo){try {providerService.updateById(providerVo);return ResultObj.UPDATE_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.UPDATE_ERROR;}}/*** 删除一个供应商* @param id* @return*/@RequestMapping("deleteProvider")public ResultObj deleteProvider(Integer id){try {providerService.deleteProviderById(id);return ResultObj.DELETE_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.DELETE_ERROR;}}/*** 加载所有可用的供应商* @return*/@RequestMapping("loadAllProviderForSelect")public DataGridView loadAllProviderForSelect(){QueryWrapper<Provider> queryWrapper = new QueryWrapper<Provider>();queryWrapper.eq("available", Constast.AVAILABLE_TRUE);List<Provider> list = providerService.list(queryWrapper);return new DataGridView(list);}}

SalesController

package com.yeqifu.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.yeqifu.bus.entity.Customer;
import com.yeqifu.bus.entity.Goods;
import com.yeqifu.bus.entity.Sales;
import com.yeqifu.bus.service.ICustomerService;
import com.yeqifu.bus.service.IGoodsService;
import com.yeqifu.bus.service.ISalesService;
import com.yeqifu.bus.vo.SalesVo;
import com.yeqifu.sys.common.DataGridView;
import com.yeqifu.sys.common.ResultObj;
import com.yeqifu.sys.common.WebUtils;
import com.yeqifu.sys.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Date;
import java.util.List;/***/
@RestController
@RequestMapping("/sales")
public class SalesController {@Autowiredprivate ISalesService salesService;@Autowiredprivate ICustomerService customerService;@Autowiredprivate IGoodsService goodsService;/*** 查询所有商品销售信息* @param salesVo* @return*/@RequestMapping("loadAllSales")public DataGridView loadAllSales(SalesVo salesVo){IPage<Sales> page = new Page<>(salesVo.getPage(),salesVo.getLimit());QueryWrapper<Sales> queryWrapper = new QueryWrapper<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 (Sales sales : records) {//设置客户姓名Customer customer = customerService.getById(sales.getCustomerid());if(null!=customer){sales.setCustomername(customer.getCustomername());}//设置商品名称Goods goods = goodsService.getById(sales.getGoodsid());if (null!=goods){//设置商品名称sales.setGoodsname(goods.getGoodsname());//设置商品规格sales.setSize(goods.getSize());}}return new DataGridView(page1.getTotal(),page1.getRecords());}/*** 添加商品销售信息* @param salesVo* @return*/@RequestMapping("addSales")public ResultObj addSales(SalesVo salesVo){try {//获得当前系统用户User user = (User) WebUtils.getSession().getAttribute("user");//设置操作人salesVo.setOperateperson(user.getName());//设置销售时间salesVo.setSalestime(new Date());QueryWrapper<Goods> wrapper = new QueryWrapper();wrapper.eq("id",salesVo.getGoodsid());Goods one = goodsService.getOne(wrapper);if(one.getNumber() < salesVo.getNumber()){return ResultObj.KUCUN_ERROR;}salesService.save(salesVo);return ResultObj.ADD_SUCCESS;}catch (Exception e) {e.printStackTrace();return ResultObj.ADD_ERROR;}}/*** 更新商品销售信息* @param salesVo* @return*/@RequestMapping("updateSales")public ResultObj updateSales(SalesVo salesVo){try {salesService.updateById(salesVo);return ResultObj.UPDATE_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.UPDATE_ERROR;}}/*** 删除商品销售信息* @param id* @return*/@RequestMapping("deleteSales")public ResultObj deleteSales(Integer id){try {salesService.removeById(id);return ResultObj.DELETE_SUCCESS;} catch (Exception e) {e.printStackTrace();return ResultObj.DELETE_ERROR;}}}

大家点赞、收藏、关注、评论啦 、👇🏻点开下方卡片👇🏻关注后回复 102

http://www.lryc.cn/news/273668.html

相关文章:

  • 【React系列】Redux(三) state如何管理
  • 3D 纹理的综合指南
  • LLM之RAG实战(十一)| 使用Mistral-7B和Langchain搭建基于PDF文件的聊天机器人
  • VLOOKUP的使用方法
  • 数据加密、端口管控、行为审计、终端安全、整体方案解决提供商
  • 编码器原理详解
  • linux下docker搭建mysql8
  • 书生·浦语大模型实战1
  • 前端JS加密对抗由浅入深-1
  • 八股文打卡day17——计算机网络(17)
  • Java-经典算法-logcat获取数据
  • APache 网页优化
  • C语言实现关键字匹配算法(复制即用)
  • 【大数据】安装 Zookeeper 单机版
  • Django 快速整合 Swagger:实用步骤和最佳实践
  • C++ cstdio
  • 昇腾多卡通信教程【配置网络检测对象IP】
  • PKI 公钥基础设施,公钥私钥,信息摘要,数字签名,数字证书
  • 企业Aspera替代方案有哪些推荐
  • vue3 vuedraggable draggable element must have an item slot
  • 如何缓解BOT攻击?分享灵活准确的防御之道
  • 了解JavaScript的执行环境及作用域
  • 嵌套调用和链式访问
  • DBA技术栈(二):MySQL 存储引擎
  • java发送邮件到qq邮箱
  • MySQL中的JSON数据类型计数及多张表COUNT的数据相加
  • XDOJ78.机器人
  • 分布式系统架构设计之分布式事务的概述和面临的挑战
  • 私有化部署你的甘特图协作工具
  • 编程笔记 html5cssjs 011 HTML内连框架