基于SpringBoot的小型超市进销存管理系统的设计与实现

博主主页:一季春秋
博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:毕业设计(Java项目、小程序等)、简历模板、学习资料、面试题库、技术咨询。

🍅文末获取联系🍅

目录

一、项目介绍 

二、项目主要技术 

三、系统分析

3.1 系统功能分析和描述

3.2 系统UML用例分析

3.2.1 管理员用例

3.2.2 采购员用例

3.3 系统体系结构

四、系统实现

4.1 系统登录模块

4.2 采购员管理模块

4.3 客户信息管理模块

4.4 销售信息管理

4.5 采购员功能

4.6 业务员功能

4.7 仓管员功能

五、实现代码 


一、项目介绍 

该系统以 Mysql为基础,以 SpringBoot为框架,以 Tomcat为运行环境,以 idea为开发平台。在设计时,本系统的程序代码具有较好的可读性、实用性和扩展性;具有通用性强,后期维护方便,操作简单,网页简洁等优点。

小型超市进销存管理系统,主要的模块包括管理员;系统首页、个人中心、采购员管理、业务员管理、仓管员管理、供货商管理、客户信息管理、商品分类管理、仓库库存管理、采购进货管理、销售信息管理、入库信息管理、调拨单管理、出库信息管理、盘点信息管理、账目信息管理,采购员;系统首页、个人中心、供货商管理、仓库库存管理、采购进货管理,业务员;系统首页、个人中心、客户信息管理、销售信息管理、调拨单管理,仓管员;系统首页、个人中心、仓库库存管理、入库信息管理、出库信息管理等功能。系统中管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对小型超市进销存管理有相应的操作权限。

二、项目主要技术 

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:jdk1.8

Maven: apache-maven 3.8.1-bin

三、系统分析

3.1 系统功能分析和描述

使用小型超市进销存管理系统分为管理员、采购员、业务员、仓管员四个角色的权限子模块。

管理员所能使用的功能主要有:系统首页、个人中心、采购员管理、业务员管理、仓管员管理、供货商管理、客户信息管理、商品分类管理、仓库库存管理、采购进货管理、销售信息管理、入库信息管理、调拨单管理、出库信息管理、盘点信息管理、账目信息管理等。

采购员可以实现系统首页、个人中心、供货商管理、仓库库存管理、采购进货管理等。

业务员可以实现系统首页、个人中心、客户信息管理、销售信息管理、调拨单管理等。

仓管员可以实现系统首页、个人中心、仓库库存管理、入库信息管理、出库信息管理等。

3.2 系统UML用例分析

3.2.1 管理员用例

管理员登录后可进行系统首页、个人中心、采购员管理、业务员管理、仓管员管理、供货商管理、客户信息管理、商品分类管理、仓库库存管理、采购进货管理、销售信息管理、入库信息管理、调拨单管理、出库信息管理、盘点信息管理、账目信息管理,管理员的用例如图

3.2.2 采购员用例

采购员注册登录后可进行系统首页、个人中心、供货商管理、仓库库存管理、采购进货管理,采购员用例如图 

3.3 系统体系结构

模块包括主界面,系统首页、个人中心、采购员管理、业务员管理、仓管员管理、供货商管理、客户信息管理、商品分类管理、仓库库存管理、采购进货管理、销售信息管理、入库信息管理、调拨单管理、出库信息管理、盘点信息管理、账目信息管理等进行相应的操作。 

四、系统实现

4.1 系统登录模块

4.2 采购员管理模块

4.3 客户信息管理模块

4.4 销售信息管理

4.5 采购员功能

4.6 业务员功能

4.7 仓管员功能

五、实现代码 

package com.controller;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.RukuxinxiEntity;
import com.entity.view.RukuxinxiView;

import com.service.RukuxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;

/**
 * 入库信息
 * 后端接口
 * @author 
 * @email 
 * @date 2023-05-12 14:54:00
 */
@RestController
@RequestMapping("/rukuxinxi")
public class RukuxinxiController {
    @Autowired
    private RukuxinxiService rukuxinxiService;


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,RukuxinxiEntity rukuxinxi,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("cangguanyuan")) {
			rukuxinxi.setYuangonggonghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<RukuxinxiEntity> ew = new EntityWrapper<RukuxinxiEntity>();

		PageUtils page = rukuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, rukuxinxi), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,RukuxinxiEntity rukuxinxi, 
		HttpServletRequest request){
        EntityWrapper<RukuxinxiEntity> ew = new EntityWrapper<RukuxinxiEntity>();

		PageUtils page = rukuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, rukuxinxi), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( RukuxinxiEntity rukuxinxi){
       	EntityWrapper<RukuxinxiEntity> ew = new EntityWrapper<RukuxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( rukuxinxi, "rukuxinxi")); 
        return R.ok().put("data", rukuxinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(RukuxinxiEntity rukuxinxi){
        EntityWrapper< RukuxinxiEntity> ew = new EntityWrapper< RukuxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( rukuxinxi, "rukuxinxi")); 
		RukuxinxiView rukuxinxiView =  rukuxinxiService.selectView(ew);
		return R.ok("查询入库信息成功").put("data", rukuxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        RukuxinxiEntity rukuxinxi = rukuxinxiService.selectById(id);
        return R.ok().put("data", rukuxinxi);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        RukuxinxiEntity rukuxinxi = rukuxinxiService.selectById(id);
        return R.ok().put("data", rukuxinxi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody RukuxinxiEntity rukuxinxi, HttpServletRequest request){
    	rukuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(rukuxinxi);
        rukuxinxiService.insert(rukuxinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody RukuxinxiEntity rukuxinxi, HttpServletRequest request){
    	rukuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(rukuxinxi);
        rukuxinxiService.insert(rukuxinxi);
        return R.ok();
    }



    /**
     * 修改
     */
    @RequestMapping("/update")
    @Transactional
    public R update(@RequestBody RukuxinxiEntity rukuxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(rukuxinxi);
        rukuxinxiService.updateById(rukuxinxi);//全部更新
        return R.ok();
    }



    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        rukuxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
	









}

 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于struts网上书店 JSP+Access论坛 网络招标信息管理系统 sql2000网络教学平台 mySQL超市管理系统 超市管理系统 教学管理系统 基于网络环境的选课系统 学生信息管理系统 新闻系统 新闻文章发布系统 考试系统 网络教学系统 网上书店系统 问卷管理... www.yateshi.com/service/13519.html 21K 2009-4-8 - 百度快照 求职java方向的web开发! - 程序员/软件工程师 - 58.com 2.熟悉STRUTS结构、MVC的开发;熟练Hibernate数据库持久层的开发Spring。 3.能熟练应用多种JAVA应用服务器(Tomcat ,...武汉星星超市管理系统(2007-10-2007-12) 项目描述:对超市的货物、员工、财务进行管理 职责:模块开发,系统设计,数据... bj.58.com/tech/35220795x.shtml 11K 2009-2-13 - 百度快照 源码下载列表 - 纽纶网 | Nulung.com 600G IT资料,文档,书籍,... 1568_fjswpic12人气:超市管理系统\\数据库脚本和数据库备份超市管理系统\\数据库脚本和数据库备份-Supermarket ...所属分类:发布日期:2008-10-13文件大小:3845697提供者:StrutsNETBOOK6人气:一款网上书店的J2EE代码,采用STRUTS技术 ... www.dssz.net/100304-size-asc/1249.html 15K 2009-4-21 - 百度快照 新东方一搏职业培训学校 开发基于桌面的J2SE应用系统;(...2、MVC模式、Struts框架 3、...系统分析师。主要研究方向为软件项目管理、软件产品生命...曾主持参与铁路系统多个大型项目设计开发,如全国铁路货车大修财务清算系统、车号标签自动识别系统、货车检修成本管理... www.hrbrcw.com/job/1920.aspx?jid=5165 53K 2009-4-22 - 百度快照
目  录 1 引 言 1 1.1课程设计选题 1 1.2课程设计的目的 1 1.3本选题的设计背景 1 2 系统分析与设计 2 2.1 功能及性能分析 2 2.1.1 功能需求 2 2.1.2 性能需求 2 2.2 系统的开发运行环境 3 2.3 系统总体设计 3 3 数据库设计 4 3.1 数据库概念结构 4 3.2 数据库逻辑结构 6 3.2.1 关系模型 6 3.2..2视图的设计 8 3.3 数据库的实现 8 3.3.1表 8 4 详细设计实现 11 4.1 登录模块 11 4.2 入库模块 11 4.3 员工管理模块 12 4.4 财务管理模块 13 4.5 销售管理模块 14 结  论 14 参 考 文 献 15 附录 15 1 引 言 1.1课程设计选题 《超市管理系统》 1.2课程设计的目的 通过数据库系统课程设计,熟悉了SQL SERVER数据库管理系统的结构与组成;掌握了SQL SERVER数据库管理系统的应用技术和的使用;应用JSP开发工具实践了《学生选课管理系统》的数据库应用系统的设计方法、开发过程和SQL SERVER数据库的管理与维护。最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。 1.3本选题的设计背景 超市需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息。面对不同种类的信息,需要合理的数据库结构来保存数据信息,需要有效的程序结构支持各种数据操作的执行。商店自动化的产品管理在欧美等国家早已经实现,也是零售业管理的基础。它最主要的特点是能够实时的和准确的控制店内的销售情况。如果可以能够实时掌握销售流程及销售情况,则可以有效地加速商品的周转率并提高服务质量,而且可以减少产品售价不符等所产生的问题。顾客的消费要求的是希望在超市购物能基本上都能购得所需的商品,并且还要既保证商品质量还要享受优质,方便的服务 随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。 超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:系统权限的设定、原始数据录入、数据的汇总及查询等。从而,实现对进货、销售及员工信息等实现全面、动态、及时的管理。 2.1 功能及性能分析 2.1.1 功能需求 整个系统基本包括了小型超市所要用到的模块。包括收款操作,库存查询,填写资金支出表,采购管理,库存管理,销售管理,资金管理,员工管理等。 1. 库存管理: 综合查询库存明细记录。 仓库信息搜索。仓库调度以及仓库货物信息查询。 2、商品录入:根据超巿业务特点制定相关功能,可以通过输入商品名称等来实现精确或模糊的商品录入。其将商品划分成不同的类型,方便管理和查询。 3. 财务管理:通过直接输入商品名称系统自动显示该商品的详细信息。明确显示折扣,现卖价,以及仓库剩余量,自动计算本次交易的总金额和判断购买数量的准确性。如果顾客是本店会员并持有本人会员卡,则在交易时选择顾客类型,并对所购物品全部实行等级折扣优惠,并将所购物品的总金额累计到该会员的总消费金额。 4、 进货管理: 根据销售情况及库存情况,制定进货计划(亦可手工制定修改),强大的查询功能可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询进货与入库记录及金额。 5. 销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。 6. 员工管理:基本信息登记管理。 员工操作权限管理。 客户销售权限管理。信息查询,修改更新,已经删除。 7. 安全性:对每位员工进行权限限制。其超市管理员具有最高权限。根据工作类型的不同现实相应系统的不同部分,避免了非法操作。 8、资金管理:系统采用每日自动报帐及报帐查询,用户可以按照自己的需要进行某个时间段的查询,查看订货情况,销售情况,财务支出收益情况,最终计算出此段时间内运营成本和销售利润,结算出最终的利润。 9. 供货商管理:对供货商基本信息进行登记管理,通过基本信息进行查询,修改更新,删除 2.2 系统的开发运行环境 本系统开发平台: jsp + sql server 2000 本系统采用架构: petshop 本系统运行环境: windows xp 或以上版本

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一季春秋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值