基于springboot物资管理系统源码含论文

本文介绍了一个采用Java三层架构和SpringBoot技术开发的物资管理系统。系统包括实体类、数据库管理、后台管理和前台管理四大模块,提供进退物资、库存、销售等管理功能。设计简洁,操作便捷,适用于管理员和员工,已在实际运行中,并计划根据业务需求持续优化。

摘要

目前,大型物资作为社会零售业态中最为重要的组成部分,处于社会零售商业 进入高速发展的轨道阶段,其在社会经济发展的作用日益明显。国内各大大型基本 上都拥有自己的社会网,将社会物资管理纳入网络管理系统,实现实际业务需求, 提高管理水平和工作效率,具有十分重要的现实意义。

物资管理系统采用基于java三层架构和B/S模块进行开发。系统分为实体 类模块、数据库管理模块、后台管理模块和前台管理模块四个模块。主要面向管 理员用户和员工用户,在浏览器中实现进退物资管理、库存信息管理、销售信息 管理、物资信息管理和综合信息管理五大功能。系统对硬件环境要求不高,模块 清晰,界面设计友好美观,操作简单,方便实用,数据存储安全。

文中首先介绍开发的背景、国内外发展现状,引出研究目的和意义;然后分 析三层架构设计模式和springboot技术在系统中的使用;再从实际调研出发,对系统 进行需求和性能分析,得到系统的功能设计和数据库设计,并利用idea 开发平台、mysql数据库管理系统java开发语言、springboot等技术进行详细 设计与实现;最后经过初步测试,已经基本达到设计要求。

随着国家骨干高等院校和数字化社会的建设,依 托现代和社会信息资源,建立了一个大型物资管理系统。本系统目前在 已安全开发完成并且在运行中。今后还要进一步根 据物资实际业务需要,完善系统功能。

关键词:物资管理系统,三层架构,信息管理

演示视频:

 

java毕业设计之基于springboot物资管理系统源码含论文mysql编号417【包运行 指导】

 

 

package com.warehouse.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.warehouse.bus.entity.Goods;
import com.warehouse.bus.entity.Provider;
import com.warehouse.bus.service.IGoodsService;
import com.warehouse.bus.service.IProviderService;
import com.warehouse.bus.vo.GoodsVo;
import com.warehouse.sys.common.AppFileUtils;
import com.warehouse.sys.common.Constast;
import com.warehouse.sys.common.DataGridView;
import com.warehouse.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;

/**
 * <p>
 * InnoDB free: 9216 kB; (`providerid`) REFER `warehouse/bus_provider`(`id`) 前端控制器
 * </p>
 *
 * @author cookie-
 * @since 2023-02-06
 */
@RestController
@RequestMapping("/goods")
public class GoodsController {

    @Autowired
    private IGoodsService goodsService;

    @Autowired
    private IProviderService providerService;

    /**
     * 查询物资
     * @param goodsVo
     * @return
     */
    @RequestMapping("loadAllGoods")
    public DataGridView loadAllGoods(GoodsVo goodsVo){
        IPage<Goods> page = new Page<Goods>(goodsVo.getPage(),goodsVo.getLimit());
        QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();
        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 {
            System.out.println("====================================");
            System.out.println(goodsVo.getGoodsimg());
            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_GOODS))){

                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 物资id
     * @return
     */
    @RequestMapping("deleteGoods")
    public ResultObj deleteGoods(Integer id,String goodsimg){
        try {
            //删除物资的图片
            AppFileUtils.removeFileByPath(goodsimg);
//            goodsService.removeById(id);
            goodsService.deleteGoodsById(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);
    }

    @RequestMapping("loadAllWarningGoods")
    public DataGridView loadAllWarningGoods(){
        List<Goods> goods = goodsService.loadAllWarning();
        return new DataGridView((long) goods.size(),goods);
    }



}

主要功能 在计算机业迅猛发展的今天,各产业皆与计算机技术紧密结合。物资管理系统就是利用计算机技术使复杂、繁锁的工作,变得更加的规范,更易于操作。对企业的管理效率,增加收入发挥不可取代的作用。 注意事项 (1)在输入数量后按一下回车键,可将合计金额显示出来。 (2)在输入固定资产编号后按一下回车键,可显示固定资产名称。 (3)如果没有添加“物资大类”信息,那么其它物资信息也无法添加。 业务流程 1.在“用户管理”树状菜单中。 (1)单击“添加用户”按钮,对用户信息添加操作。 (2)单击“修改密码”按钮,对当前用户密码修改操作。 2.在“系统维护”树状菜单中。 (1)单击“基本数据维护”按钮,主要对部门、仓库、计量单位、入库类型、出库类型、物资大类、物资类别、物资信息、往来单位以及收付款方式等信息进行添加操作。 (2)单击“数据库备份”按钮,对于对数据库中的数据备份操作。 (3)单击“数据库还原”按钮,对备份的数据进行还原操作。 3.在“单据管理”树状菜单中。 (1)单击“登记入库单”按钮,对入库信息登记操作。 (2)单击“登记出库单”按钮,对出库信息登记操作。 (3)单击“登记退库单”按钮,对退库信息登记操作。 (4)单击“登记盘点单”按钮,对盘点信息登记操作。 (5)单击“登记维修单”按钮,对维修信息登记操作。 (6)单击“登记付款单”按钮,对付款信息登记操作。 (7)单击“登记收款单”按钮,对收款信息登记操作。 4.在“固定资产管理”树状菜单中。 (1)单击“固定资产登记”按钮,对固定资产信息登记操作。 (2)单击“固定资产查询”按钮,对已登记的固定资产信息查询操作。 (3)单击“固定资产维修统计”按钮,对固定资产维修信息进行查询操作。 5.在“通用查询”树状菜单中。 (1)单击“单据查询”按钮,主要对入库单、出库单、退库单、盘点单、维修单、收款单以及付款单等信息进行查询操作。 (2)单击“入库物资统计”按钮,对入库物资信息查询操作。 (3)单击“出库物资统计”按钮,对出库物资信息查询操作。 (4)单击“退库物资统计”按钮,对退库物资信息查询操作。 (5)单击“应付账统计”按钮,对应付账信息浏览操作。 (6)单击“应收账统计”按钮,对应收账信息浏览操作。 App_Data下为Sql2005数据库,附加即可 默认管理员帐号/密码:51aspx/51aspx 【该源码由51aspx提供】
(1)在输入数量后按一下回车键,可将合计金额显示出来。 (2)在输入固定资产编号后按一下回车键,可显示固定资产名称。 (3)如果没有添加“物资大类”信息,那么其它物资信息也无法添加。 业务流程 1.在“用户管理”树状菜单中。 (1)单击“添加用户”按钮,对用户信息添加操作。 (2)单击“修改密码”按钮,对当前用户密码修改操作。 2.在“系统维护”树状菜单中。 (1)单击“基本数据维护”按钮,主要对部门、仓库、计量单位、入库类型、出库类型、物资大类、物资类别、物资信息、往来单位以及收付款方式等信息进行添加操作。 (2)单击“数据库备份”按钮,对于对数据库中的数据备份操作。 (3)单击“数据库还原”按钮,对备份的数据进行还原操作。 3.在“单据管理”树状菜单中。 (1)单击“登记入库单”按钮,对入库信息登记操作。 (2)单击“登记出库单”按钮,对出库信息登记操作。 (3)单击“登记退库单”按钮,对退库信息登记操作。 (4)单击“登记盘点单”按钮,对盘点信息登记操作。 (5)单击“登记维修单”按钮,对维修信息登记操作。 (6)单击“登记付款单”按钮,对付款信息登记操作。 (7)单击“登记收款单”按钮,对收款信息登记操作。 4.在“固定资产管理”树状菜单中。 (1)单击“固定资产登记”按钮,对固定资产信息登记操作。 (2)单击“固定资产查询”按钮,对已登记的固定资产信息查询操作。 (3)单击“固定资产维修统计”按钮,对固定资产维修信息进行查询操作。 5.在“通用查询”树状菜单中。 (1)单击“单据查询”按钮,主要对入库单、出库单、退库单、盘点单、维修单、收款单以及付款单等信息进行查询操作。 (2)单击“入库物资统计”按钮,对入库物资信息查询操作。 (3)单击“出库物资统计”按钮,对出库物资信息查询操作。 (4)单击“退库物资统计”按钮,对退库物资信息查询操作。 (5)单击“应付账统计”按钮,对应付账信息浏览操作。 (6)单击“应收账统计”按钮,对应收账信息浏览操作。
物资管理系统源码 主要功能 在计算机业迅猛发展的今天,各产业皆与计算机技术紧密结合。物资管理系统就是利用计算机技术使复杂、繁锁的工作,变得更加的规范,更易于操作。对企业的管理效率,增加收入发挥不可取代的作用。 注意事项 (1)在输入数量后按一下回车键,可将合计金额显示出来。 (2)在输入固定资产编号后按一下回车键,可显示固定资产名称。 (3)如果没有添加“物资大类”信息,那么其它物资信息也无法添加。 业务流程 1.在“用户管理”树状菜单中。 (1)单击“添加用户”按钮,对用户信息添加操作。 (2)单击“修改密码”按钮,对当前用户密码修改操作。 2.在“系统维护”树状菜单中。 (1)单击“基本数据维护”按钮,主要对部门、仓库、计量单位、入库类型、出库类型、物资大类、物资类别、物资信息、往来单位以及收付款方式等信息进行添加操作。 (2)单击“数据库备份”按钮,对于对数据库中的数据备份操作。 (3)单击“数据库还原”按钮,对备份的数据进行还原操作。 3.在“单据管理”树状菜单中。 (1)单击“登记入库单”按钮,对入库信息登记操作。 (2)单击“登记出库单”按钮,对出库信息登记操作。 (3)单击“登记退库单”按钮,对退库信息登记操作。 (4)单击“登记盘点单”按钮,对盘点信息登记操作。 (5)单击“登记维修单”按钮,对维修信息登记操作。 (6)单击“登记付款单”按钮,对付款信息登记操作。 (7)单击“登记收款单”按钮,对收款信息登记操作。 4.在“固定资产管理”树状菜单中。 (1)单击“固定资产登记”按钮,对固定资产信息登记操作。 (2)单击“固定资产查询”按钮,对已登记的固定资产信息查询操作。 (3)单击“固定资产维修统计”按钮,对固定资产维修信息进行查询操作。 5.在“通用查询”树状菜单中。 (1)单击“单据查询”按钮,主要对入库单、出库单、退库单、盘点单、维修单、收款单以及付款单等信息进行查询操作。 (2)单击“入库物资统计”按钮,对入库物资信息查询操作。 (3)单击“出库物资统计”按钮,对出库物资信息查询操作。 (4)单击“退库物资统计”按钮,对退库物资信息查询操作。 (5)单击“应付账统计”按钮,对应付账信息浏览操作。 (6)单击“应收账统计”按钮,对应收账信息浏览操作。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿毕业分享网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值