基于javaweb+mysql的springboot仓库管理系统(java+springboot+layui+html+thymeleaf+mysql+实训报告)

基于javaweb+mysql的springboot仓库管理系统(java+springboot+layui+html+thymeleaf+mysql+实训报告)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SpringBoot仓库管理系统(java+springboot+layui+html+thymeleaf+mysql+实训报告)

项目介绍

仓库管理系统总共分为三个大的模块,分别是基础管理、仓库管理和系统管理。其中各个模块底下又有其子模块。 功能模块

一、基础管理

1、客户管理 客户列表 客户分页和模糊查询 客户添加、修改、删除、批量删除 2、供应商管理 供应商列表 供应商分页和模糊查询 供应商添加、修改、删除、批量删除 3、商品管理 商品列表 商品分页和模糊查询 商品添加、修改、删除、商品图片的上传

二、仓库管理

1.入库 订单查询、创建订单、删除订单 2.出库 订单查询、创建订单、删除订单 3.仓库基础设置 查询仓库、添加仓库、编辑仓库、删除仓库

三、系统管理

1、角色管理 全查询角色和模糊查询 角色的添加、修改、删除以及给角色分配权限 2、用户管理 全查询用户和模糊查询

用户的添加、修改、删除、重置密码以及给用户分配角色

环境需要

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

6.数据库:MySql 8.0版本;

技术栈

  1. 后端:SpringBoot+Shiro+MybatisPlus

  2. 前端:HTML+CSS+Javascript+LayUI+DTree+Thymeleaf

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行; 4. 运行项目,输入localhost:8080/ 登录 5. 管理员用户名:钱多多 密码:123456
            }
            if(changeNumber+stock.getNumber() > stock.getUpperAlert()){
                return ResultObj.ADD_ERROR_EXCEED;
            }else if(inputFormVo.getChangeNumber() ==0){
                return ResultObj.ERROR_ZERO;
            } else {
                stock.setNumber(inputFormVo.getChangeNumber()+stock.getNumber());
            }
            inputFormService.save(inputFormVo);
            stockService.update(stock,updateWrapper);
            return ResultObj.ADD_SUCCESS;
        }
        catch (Exception e) {
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }
    @RequestMapping("deleteInput")
    public ResultObj deleteInput(Integer id){
        try {
            inputFormService.removeById(id);
            return ResultObj.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }
}

        TbUser user = (TbUser) WebUtils.getSession().getAttribute("user");
        queryWrapper.eq(0!=user.getRoleId(),"house_id",user.getRoleId());
        inputFormService.page(page,queryWrapper);
        List<InputForm> records = page.getRecords();
        for(InputForm inputForm : records){
            Provider provider = providerService.getById(inputForm.getProviderId());
            if (null != provider){
                inputForm.setProviderName(provider.getName());
                inputForm.setAddress(provider.getAddress());
            }
            Goods goods = goodsService.getById(inputForm.getGoodsId());
            if(null != goods){
                inputForm.setGoodsName(goods.getName());
                inputForm.setSize(goods.getSize());
                inputForm.setPackages(goods.getPackages());
                inputForm.setPrice(goods.getPrice());
            }
            TbUser tbUser = tbUserService.getById(inputForm.getUserId());
            if(null != tbUser){
                inputForm.setUserName(tbUser.getName());
            }

            Warehouse warehouse = warehouseService.getById(inputForm.getHouseId());
            if(null != warehouse){
                inputForm.setHouseName(warehouse.getName());
            }
        }
        return new DataGridView(page.getTotal(),page.getRecords());
    }
    @RequestMapping("addInput")
    public ResultObj addInput(InputFormVo inputFormVo){
        try {
            TbUser tbUser = (TbUser) WebUtils.getSession().getAttribute("user");
            inputFormVo.setCreateTime(new Date());
            inputFormVo.setUserId(tbUser.getUserId());
            Integer goodsId = inputFormVo.getGoodsId();
            Integer houseId = inputFormVo.getHouseId();
            Integer changeNumber = inputFormVo.getChangeNumber();
            QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("goods_id",goodsId);
            queryWrapper.eq("house_id",houseId);
            Stock stock = stockService.getOne(queryWrapper);

/**
 * <p>
 *  前端控制器
 * </p>
 *
 */
@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){
                updateWrapper.eq("goods_id",stock.getGoodsId());
                updateWrapper.eq("house_id",stock.getHouseId());
            }else {                         //如果库存中没有这件商品
                QueryWrapper<Stock> query = new QueryWrapper();
                query.eq("house_id",houseId);
                query.eq("goods_id",0);
                Integer upperAlert = stockService.getOne(query).getUpperAlert();
                if(changeNumber < upperAlert){
                    Stock stock1 = new Stock(goodsId,houseId,changeNumber,upperAlert,0);
                    System.out.println("stock1 = " + stock1);
                    stockService.save(stock1);
                    inputFormService.save(inputFormVo);
                    return ResultObj.ADD_SUCCESS;
                }

            }
            if(changeNumber+stock.getNumber() > stock.getUpperAlert()){
                return ResultObj.ADD_ERROR_EXCEED;
            }else if(inputFormVo.getChangeNumber() ==0){
                return ResultObj.ERROR_ZERO;
            } else {
                stock.setNumber(inputFormVo.getChangeNumber()+stock.getNumber());
            }
            inputFormService.save(inputFormVo);
            stockService.update(stock,updateWrapper);
            return ResultObj.ADD_SUCCESS;
        }
        catch (Exception e) {
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }
    @RequestMapping("deleteInput")
    public ResultObj deleteInput(Integer id){
        try {
            inputFormService.removeById(id);
            return ResultObj.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }
        IPage<TbUser> page = new Page<>(userVo.getPage(),userVo.getLimit());
        QueryWrapper<TbUser> queryWrapper = new QueryWrapper();
        queryWrapper.like(StringUtils.isNotBlank(userVo.getName()),"name",userVo.getName());
        queryWrapper.like(StringUtils.isNotBlank(userVo.getAccount()),"account",userVo.getAccount());
        queryWrapper.eq(StringUtils.isNotBlank(userVo.getSex()),"sex",userVo.getSex());
        tbUserService.page(page,queryWrapper);
        return new DataGridView(page.getTotal(),page.getRecords());
    }

    @RequestMapping("addUser")
    public ResultObj addUser(UserVo userVo){
        try{
            String account = userVo.getAccount();
            TbUser user = tbUserService.getByAccount(account);
            if(null != user){
                return ResultObj.ADD_ERROR_EXIST;
            }
            //设置盐
            String salt = IdUtil.simpleUUID().toUpperCase();
            userVo.setSalt(salt);
            //设置密码
            //userVo.setPassword(new Md5Hash(userVo.getPassword(),salt,2).toString());
            //设置性别
            String sex = userVo.getSex()=="1"?"男":"女";
            userVo.setSex(sex);
            tbUserService.save(userVo);
            return ResultObj.ADD_SUCCESS;
        }catch (Exception e){
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }

    @RequestMapping("updateUser")
    public ResultObj updateUser(UserVo userVo){
        try {
            //userVo.setPassword(new Md5Hash(userVo.getPassword(),userVo.getSalt(),2).toString());
//            //设置性别
            String sex = "1".equals(userVo.getSex())?"男":"女";
            userVo.setSex(sex);
            tbUserService.updateById(userVo);
            return ResultObj.UPDATE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.UPDATE_ERROR;
        }
                stock.setPrice(goods.getPrice());
            }
        }
        return new DataGridView(page.getTotal(),page.getRecords());
    }

    @RequestMapping("addHouse")
    public ResultObj addHouse(StockVo stockVo){
        try {
            Integer houseId = warehouseService.getMaximumId()+1;
            stockVo.setHouseId(houseId);
            stockVo.setGoodsId(0);
            stockVo.setNumber(0);
            stockService.save(stockVo);

            Warehouse warehouse = new Warehouse();
            warehouse.setHouseId(houseId);
            warehouse.setName(stockVo.getHouseName());
            warehouse.setAddress(stockVo.getAddress());
            warehouseService.save(warehouse);

            Role role = new Role();
            role.setAvailable(0);
            role.setName(houseId+"号仓库管理员");
            role.setRoleId(houseId);
            role.setCreatetime(new Date());
            roleService.save(role);

            return ResultObj.ADD_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }

    @RequestMapping("updateHouse")
    public ResultObj updateHouse(StockVo stockVo){
        QueryWrapper<Stock> queryWrapper = new QueryWrapper<Stock>();
        queryWrapper.eq("house_id",stockVo.getHouseId());
        queryWrapper.eq("goods_id",stockVo.getGoodsId());
        Integer number = stockService.getOne(queryWrapper).getNumber();
        try {
            if(stockVo.getUpperAlert() < number){       //超出新的预警库存
                return ResultObj.UPDATE_ERROR_EXCEED;
            }else if(stockVo.getUnderAlert() > number){ //低于新的预警库存
                return ResultObj.UPDATE_ERROR_UNDER;
            }else {
    }
}

/**
 * <p>
 *  前端控制器
 * </p>
 *
 */
@RestController
@RequestMapping("/provider")
public class ProviderController {

    @Resource
    private ProviderService providerService;

    @RequestMapping("loadAllProvider")
    public DataGridView loadAllProvider(ProviderVo providerVo){
        //1.声明一个分页page对象
        IPage<Provider> page = new Page(providerVo.getPage(),providerVo.getLimit());
        //2.声明一个queryWrapper
        QueryWrapper<Provider> queryWrapper = new QueryWrapper();
        queryWrapper.eq(null != providerVo.getProviderId() && providerVo.getProviderId()!=0,"provider_id",providerVo.getProviderId());
        queryWrapper.like(StringUtils.isNotBlank(providerVo.getManager()),"manager",providerVo.getManager());
            Boolean spread = leftmenu.getOpen()==Constast.OPEN_TRUE?true:false;
            treeNodes.add(new TreeNode(id,pid,title,icon,href,spread));
        }
        //用获得的菜单信息生成相应的Json
        List<TreeNode> list1 = TreeNodeBuilder.build(treeNodes,1);
        return new DataGridView(list1);
    }
}

@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());
                }

            }
            if(changeNumber+stock.getNumber() > stock.getUpperAlert()){
                return ResultObj.ADD_ERROR_EXCEED;
            }else if(inputFormVo.getChangeNumber() ==0){
                return ResultObj.ERROR_ZERO;
            } else {
                stock.setNumber(inputFormVo.getChangeNumber()+stock.getNumber());
            }
            inputFormService.save(inputFormVo);
            stockService.update(stock,updateWrapper);
            return ResultObj.ADD_SUCCESS;
        }
        catch (Exception e) {
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }
    @RequestMapping("deleteInput")
    public ResultObj deleteInput(Integer id){
        try {
            inputFormService.removeById(id);
            return ResultObj.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }
}

/**
        List<Stock> records = page.getRecords();
        for (Stock stock : records) {
            Warehouse warehouse = warehouseService.getById(stock.getHouseId());
            if(null != warehouse){
                stock.setHouseName(warehouse.getName());
                stock.setAddress(warehouse.getAddress());
            }
            Goods goods = goodsService.getById(stock.getGoodsId());
            if(null != goods){
                stock.setName(goods.getName());
                stock.setSize(goods.getSize());
                stock.setPackages(goods.getPackages());
                stock.setPrice(goods.getPrice());
            }
        }
        return new DataGridView(page.getTotal(),page.getRecords());
    }

    @RequestMapping("addHouse")
    public ResultObj addHouse(StockVo stockVo){
        try {
            Integer houseId = warehouseService.getMaximumId()+1;
            stockVo.setHouseId(houseId);
            stockVo.setGoodsId(0);
            stockVo.setNumber(0);
            stockService.save(stockVo);

            Warehouse warehouse = new Warehouse();
            warehouse.setHouseId(houseId);
            warehouse.setName(stockVo.getHouseName());
            warehouse.setAddress(stockVo.getAddress());
            warehouseService.save(warehouse);

            Role role = new Role();
            role.setAvailable(0);
            role.setName(houseId+"号仓库管理员");
            role.setRoleId(houseId);
            role.setCreatetime(new Date());
            roleService.save(role);

            return ResultObj.ADD_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }

@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;
        }
    }
}

                outputForm.setPrice(goods.getPrice());
            }
            TbUser tbUser = tbUserService.getById(outputForm.getUserId());
            if(null != tbUser){
                outputForm.setUserName(tbUser.getName());
            }

            Warehouse warehouse = warehouseService.getById(outputForm.getHouseId());
            if(null != warehouse){
                outputForm.setHouseName(warehouse.getName());
            }
        }
        return new DataGridView(page.getTotal(),page.getRecords());
    }

    @RequestMapping("addOutput")
    public ResultObj addOutput(OutputFormVo outputFormVo){
        try {
            TbUser tbUser = (TbUser) WebUtils.getSession().getAttribute("user");
            outputFormVo.setCreateTime(new Date());
            outputFormVo.setUserId(tbUser.getUserId());
            QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("goods_id",outputFormVo.getGoodsId());
            queryWrapper.eq("house_id",outputFormVo.getHouseId());
            Stock stock = stockService.getOne(queryWrapper);
            UpdateWrapper<Stock> updateWrapper = new UpdateWrapper<>();
            updateWrapper.eq("goods_id",stock.getGoodsId());
            updateWrapper.eq("house_id",stock.getHouseId());
            System.out.println("stock = " + stock);
            if(stock.getNumber()-outputFormVo.getChangeNumber() < stock.getUnderAlert()){
                return ResultObj.ADD_ERROR_UNDER;
            } else if(outputFormVo.getChangeNumber() ==0){
                return ResultObj.ERROR_ZERO;
            } else {
                stock.setNumber(stock.getNumber()-outputFormVo.getChangeNumber());
            }
            outputFormService.save(outputFormVo);
            stockService.update(stock,updateWrapper);
            return ResultObj.ADD_SUCCESS;
        }
        catch (Exception e) {
            e.printStackTrace();
            return ResultObj.ADD_ERROR;
        }
    }

        try {
            roleService.updateById(roleVo);
            return ResultObj.UPDATE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.UPDATE_ERROR;
        }
    }
    //删除
    @RequestMapping("deleteRole")
    public ResultObj deleteRole(Integer id){
        try {
            this.roleService.removeById(id);
            return ResultObj.DELETE_SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultObj.DELETE_ERROR;
        }
    }
}

@Controller
@RequestMapping("/sys")
public class SystemController {

    /*
    * 跳转到登陆页面
     * @return
    * */
    @RequestMapping("toLogin")
    public String toLogin(){
        return "/index/login";
    }


    @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;
        }
    }
}

/**
 * <p>
 *  前端控制器
 * </p>
 *
        return "/customer/customerManager";
    }

    @RequestMapping("toInputManager")
    public String toInputManager(){
        return "/input/inputManager";
    }

    @RequestMapping("toOutputManager")
    public String toOutputManager(){
        return "/output/outputManager";
    }

    @RequestMapping("toWarehouseManager")
    public String toWarehouseManager(){
        return "/warehouse/warehouseManager";
    }
//    <div class="layui-form-item magb0">
//                <div class="layui-inline">
//                    <label class="layui-form-label">上限预警</label>
//                    <div class="layui-input-inline">
//                        <input type="text" class="layui-input input-radius" name="packages" lay-verify="required" placeholder="请输入商品包装">
//                    </div>
//                </div>
//                <div class="layui-inline">
//                    <label class="layui-form-label">下限预警</label>
//                    <div class="layui-input-inline">
//                        <input type="text" class="layui-input input-radius" name="size" lay-verify="required" placeholder="请输入商品规格">
//                    </div>
//                </div>
//            </div>
}


    /*
    * 跳转到首页
    *
    * */
    @RequestMapping("index")
    public String index(){
        return "/index/index";
    }

    /*
    * 跳转到工作台
    * */
    @RequestMapping("toDesktopManager")
    public String toDesktopManager(){
        return "/index/desktopManager";
    }

    /**
     * 跳转到角色管理
     * @return
     */
    @RequestMapping("toRoleManager")
    public String toRoleManager(){
        return "/role/roleManager";
    }

    /**
     * 跳转到用户管理
     * @return
     */
    @RequestMapping("toUserManager")
    public String toUserManager(){
        return "/user/userManager";
    }

    @RequestMapping("toGoodsManager")
    public String toGoodsManager(){
        return "/goods/goodsManager";

/**
 * <p>
 *  前端控制器
 * </p>
 *
 */
@RestController
@RequestMapping("/output")
public class OutputFormController {

    @Resource
    private GoodsService goodsService;

    @Resource
    private CustomerService customerService;

    @Resource
    private OutputFormService outputFormService;


/**
 * <p>
 *  前端控制器
 * </p>
 *
 */
@RestController
@RequestMapping("/warehouse")
public class WarehouseController {

    @Resource
    WarehouseService warehouseService;
    //提供下拉框
    @RequestMapping("loadAllHouseForSelect")
    public DataGridView loadAllHouseForSelect(){
        QueryWrapper<Warehouse> queryWrapper = new QueryWrapper<Warehouse>();
        TbUser tbUser = (TbUser) WebUtils.getSession().getAttribute("user");
        queryWrapper.eq(0!=tbUser.getRoleId(),"house_id",tbUser.getRoleId());
        List<Warehouse> list = warehouseService.list(queryWrapper);
        return new DataGridView(list);
    }

}

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值