Java项目:springboot仓库管理系统

作者主页:Java毕设网

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

一、相关文档

仓库管理系统是一种现代地,全新的管理模型。它使用户可根据仓库当天的入库量、出库量、借物量、还物量等等对仓库的数据进行操作。本仓库管理系统实现的目标如下。

功能需求:
1、产品入库管理,可以填写入库单,确认产品入库;
2、产品出库管理,可以填写出库单,确认出库;
3、初始库存设置,设置库存的初始值,库存的上下警戒限;
4、可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询;
5、用户注册与登录管理。

二、项目介绍

仓库管理系统总共分为三个大的模块,分别是基础管理、仓库管理和系统管理。其中各个模块底下又有其子模块。
 功能模块
 一、基础管理
 1、客户管理
 客户列表
 客户分页和模糊查询
 客户添加、修改、删除、批量删除
 2、供应商管理
 供应商列表
 供应商分页和模糊查询
 供应商添加、修改、删除、批量删除
 3、商品管理
 商品列表
 商品分页和模糊查询
 商品添加、修改、删除、商品图片的上传
  二、仓库管理
 1.入库
 订单查询、创建订单、删除订单
 2.出库
 订单查询、创建订单、删除订单
 3.仓库基础设置
 查询仓库、添加仓库、编辑仓库、删除仓库
  三、系统管理
 1、角色管理
 全查询角色和模糊查询
 角色的添加、修改、删除以及给角色分配权限
 2、用户管理
 全查询用户和模糊查询
 用户的添加、修改、删除、重置密码以及给用户分配角色

三、环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
5.数据库:MySql 5.7或8.0版本均可;

四、技术栈

1. 后端:SpringBoot+Shiro+MybatisPlus
2. 前端:HTML+CSS+Javascript+LayUI+DTree+Thymeleaf

五、使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/ 登录

六、运行截图

​​​

七、相关代码

登录管理控制器

package com.gdpu.controller;


import com.gdpu.common.ActiveUser;
import com.gdpu.common.ResultObj;
import com.gdpu.common.WebUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
@RequestMapping("login")
public class LoginController {

    @RequestMapping("login")
    public ResultObj login(String loginName, String password){

        Subject subject = SecurityUtils.getSubject();
        //token认证
        AuthenticationToken token = new UsernamePasswordToken(loginName, password);
        try{
            //对用户进行认证登陆
            subject.login(token);
            //通过subject获取以认证活动的user
            ActiveUser activeUser = (ActiveUser) subject.getPrincipal();
            //将user存储到session中
            WebUtils.getSession().setAttribute("user",activeUser.getTbUser());
            return ResultObj.LOGIN_SUCCESS;
        } catch (AuthenticationException e){
            e.printStackTrace();
            return ResultObj.LOGIN_ERROR_PASS;
        }
    }
}

商品管理控制器

package com.gdpu.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.gdpu.bean.Goods;
import com.gdpu.bean.Provider;
import com.gdpu.bean.Stock;
import com.gdpu.common.DataGridView;
import com.gdpu.common.ResultObj;
import com.gdpu.service.GoodsService;
import com.gdpu.service.ProviderService;
import com.gdpu.service.StockService;
import com.gdpu.vo.GoodsVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.StopWatch;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author hjs
 * @since 2020-06-29
 */
@RestController
@RequestMapping("/goods")
public class GoodsController {
    @Resource
    private GoodsService goodsService;

    @Resource
    private ProviderService providerService;

    @RequestMapping("loadAllGoods")
    public DataGridView loadAllGoods(GoodsVo goodsVo){
        IPage<Goods> page = new Page<>(goodsVo.getPage(),goodsVo.getLimit());
        QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();
        queryWrapper.like(StringUtils.isNotBlank(goodsVo.getName()),"name",goodsVo.getName());
        queryWrapper.eq(goodsVo.getPrice()!=null,"price",goodsVo.getPrice());
        queryWrapper.eq(null != goodsVo.getProviderId() && goodsVo.getProviderId()!=0,"provider_id",goodsVo.getProviderId());
        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.getName());
                goods.setAddress(provider.getAddress());
            }
        }
        return new DataGridView(page.getTotal(),page.getRecords());
    }

    @RequestMapping("addGoods")
    public ResultObj addGoods(GoodsVo goodsVo){
        try {
            goodsService.save(goodsVo);
            return ResultObj.ADD_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }
    @RequestMapping("updateGoods")
    public ResultObj updateGoods(GoodsVo goodsVo){
        try {
            goodsService.updateById(goodsVo);
            return ResultObj.UPDATE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.UPDATE_ERROR;
        }
    }

    @RequestMapping("deleteGoods")
    public ResultObj deleteGoods(Integer id){
        try {
            goodsService.removeById(id);
            return ResultObj.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }

    //提供下拉框
    @RequestMapping("loadAllGoodsForSelect")
    public DataGridView loadAllProviderForSelect(){
        QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();
        List<Goods> list = goodsService.list(queryWrapper);
        return new DataGridView(list);
    }

    //提供下拉框
    @RequestMapping("loadAllGoodsForSpecialSelect")
    public DataGridView loadAllProviderForSpecialSelect(Integer providerId){
        QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();
        queryWrapper.eq(null!=providerId,"provider_id",providerId);
        List<Goods> list = goodsService.list(queryWrapper);
        for (Goods goods : list) {
            Provider provider = providerService.getById(goods.getProviderId());
            if (null!=provider){
                goods.setProviderName(provider.getName());
            }
        }
        return new DataGridView(list);
    }



}

八、如果也想学习本系统,下面领取。关注并回复:089springboot

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(写在前面的话,评论中说的图片显示问题解决了,原因是文件被拦截了,感谢帮忙解决问题的同学!) 基于SSM(spring+springMVC+MyBatis)技术开发仓库管理系统,是我这学期期末综合课设项目,新鲜热乎,用的是:eclipse+Tomcat8+mysql+jdk1.8,里面有项目源文件直接导入即可,还有数据库sql文件,还有课程设计报告。系统的功能都好用,如果有啥疑问可以跟我私信。 推荐一下这个课设的姊妹篇-------------基于SSH(struts-spring-hibernate)开发的学生成绩管理系统,https://download.csdn.net/download/qq_33654685/10850113 本系统为仓库管理系统,系统功能较为基础,同时操作又比较简单。系统开发的总体任务是实现基础的供应商管理模块、经销商管理模块、商品管理模块、库存管理模块、订货单管理模块、出库单管理模块。 供应商管理模块:为管理员提供实现对供应商信息的管理维,包括对供应商的查询、添加、修改和删除等操作。 经销商管理模块:为管理员提供实现对经销商信息的管理维,包括对供应商的查询、添加、修改和删除等操作。 商品管理模块:为管理员提供实现对商品信息的管理维,包括对商品的查询、添加、修改和删除出库等操作; 库存管理模块:为管理员提供实现对库位信息的管理维,包括对库位信息的查询、添加、修改和删除等操作; 订货单管理模块:为管理员提供实现对订货单信息的管理维,包括对订货单信息的查询、添加、修改和删除等操作; ---------------------------------------------分割线--------------- 评论中说的图片显示问题解决了,原因是文件被拦截了,css调用的时候掉不到资源,自带的字体库找不到,调用不了,就变成那个方框框了 需要在web.xml配置下就行,加入以下代码。感谢帮忙解决问题的同学! default *.svg default *.eot default *.woff default *.ttf

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值