Vue.js+SpringBoot开发服装店库存管理系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 数据中心模块
    • 2.2 角色管理模块
    • 2.3 服装档案模块
    • 2.4 服装入库模块
    • 2.5 服装出库模块
  • 三、系统设计
    • 3.1 用例设计
    • 3.2 数据库设计
      • 3.2.1 角色表
      • 3.2.2 服装档案表
      • 3.2.3 服装入库表
      • 3.2.4 服装出库表
  • 四、系统展示
  • 五、核心代码
    • 5.1 查询服装品类
    • 5.2 新增服装
    • 5.3 新增服装入库
    • 5.4 查询服装入库
    • 5.5 新增服装出库
  • 六、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的服装店库存管理系统,包含了服装档案模块、服装入库模块、服装出库模块,可以自由的运营服装库存数据,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,服装店库存管理系统基于角色的访问控制,给服装店管理员、普通店员角色使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

服装类产品本身具有季节性强、生命周期短等特点,同时消费者对服饰的要求越来越个性化、时尚化和品质化,这样一来,服装零售店铺对库存管理提出更高的要求,服装店如果想做到在降低库存量的同时提高客户满意度及迅速地反应市场需求,服装店铺必须提高内部库存管理水平。因此,开发一个利用计算机进行的服装店库存管理系统,对提高服装店库存管理的效率还是有很重要的现实意义的。

在这里插入图片描述
服装店库存管理系统的功能性需求主要包含数据中心模块、角色管理模块、课程档案模块、排课位置模块和排课申请模块这五大模块,系统是基于浏览器运行的web管理后端,其中各个模块详细说明如下:

2.1 数据中心模块

数据中心模块包含了服装店库存管理系统的系统基础配置,如登录用户的管理、运营公司组织架构的管理、用户菜单权限的管理、系统日志的管理、公用文件云盘的管理。
其中登录用户管理模块,由管理员负责运维工作,管理员可以对登录用户进行增加、删除、修改、查询操作。
组织架构,指的是高校的组织架构,该模块适用于管理这些组织架构的部门层级和教师的部门归属情况。
用户菜单权限管理模块,用于管理不同权限的用户,拥有哪些具体的菜单权限。
系统日志的管理,用于维护用户登入系统的记录,方便定位追踪用户的操作情况。
公用云盘管理模块,用于统一化维护服装店库存管理系统中的图片,如合同签订文件、合同照片等等。

2.2 角色管理模块

角色是用户进入排课系统的身份标识,不同的角色有不同的菜单权限,所以需要对角色进行维护,角色的数据包括角色名称、角色状态、排序值、备注、创建人、创建时间、更新人、更新时间,管理员可以新增、删除、编辑和条件查询角色数据,用户可以查询管理员发布的角色数据。

2.3 服装档案模块

服装是服装店库存管理系统的核心实体,需要建立服装档案模块对管理员维护的服装进行管理,服装的字段包括服装名称、服装图片、价格、库存数量、创建人、创建时间、更新人、更新时间,管理员可以新增、删除、编辑和条件查询服装数据,用户可以查询管理员发布的服装数据。

2.4 服装入库模块

有了服装档案后,需要对服装进行入库操作,维持服装店的正常运营,服装入库的数据包括服装ID、服装名称、入库位置、入库数量、创建人、创建时间、更新人、更新时间,用户可以发起服装入库单,管理员可以查询用户发起的服装入库单。

2.5 服装出库模块

服装入库之后还有出库领用操作,这就需要建立服装出库模块,服装出库字段包括服装ID、服装名称、出库数量、出库原因、创建人、创建时间、更新人、更新时间,用户可以发起服装出库申请,管理员可以查询用户发起的服装出库单。


三、系统设计

3.1 用例设计

在这里插入图片描述

3.2 数据库设计

3.2.1 角色表

在这里插入图片描述

3.2.2 服装档案表

在这里插入图片描述

3.2.3 服装入库表

在这里插入图片描述

3.2.4 服装出库表

在这里插入图片描述


四、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


五、核心代码

5.1 查询服装品类

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询服装")
public Result<IPage<Clothing>> getByPage(@ModelAttribute Clothing clothing ,@ModelAttribute PageVo page){
    QueryWrapper<Clothing> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(clothing.getTitle())) {
        qw.like("title",clothing.getTitle());
    }
    if(!ZwzNullUtils.isNull(clothing.getContent())) {
        qw.like("content",clothing.getContent());
    }
    if(!ZwzNullUtils.isNull(clothing.getShelves())) {
        qw.eq("shelves",clothing.getShelves());
    }
    IPage<Clothing> data = iClothingService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Clothing>>().setData(data);
}

5.2 新增服装

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增服装")
public Result<Clothing> insert(Clothing clothing){
    iClothingService.saveOrUpdate(clothing);
    return new ResultUtil<Clothing>().setData(clothing);
}

5.3 新增服装入库

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增服装入库")
public Result<ClothingIn> insert(ClothingIn clothingIn){
    Clothing c = iClothingService.getById(clothingIn.getClothId());
    if(c == null) {
        return ResultUtil.error("服装不存在");
    }
    clothingIn.setTitle(c.getTitle());
    clothingIn.setContent(c.getContent());
    clothingIn.setTime(DateUtil.now());
    User currUser = securityUtil.getCurrUser();
    clothingIn.setWorkUser(currUser.getNickname());
    clothingIn.setWorkMobile(currUser.getMobile());
    iClothingInService.saveOrUpdate(clothingIn);
    c.setNumber(c.getNumber().add(clothingIn.getNumber()));
    iClothingService.saveOrUpdate(c);
    return new ResultUtil<ClothingIn>().setData(clothingIn);
}

5.4 查询服装入库

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询服装入库")
public Result<IPage<ClothingIn>> getByPage(@ModelAttribute ClothingIn clothingIn ,@ModelAttribute PageVo page){
    QueryWrapper<ClothingIn> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(clothingIn.getClothId())) {
        qw.eq("cloth_id",clothingIn.getClothId());
    }
    if(!ZwzNullUtils.isNull(clothingIn.getContent())) {
        qw.like("content",clothingIn.getContent());
    }
    if(!ZwzNullUtils.isNull(clothingIn.getWorkUser())) {
        qw.like("work_user",clothingIn.getWorkUser());
    }
    IPage<ClothingIn> data = iClothingInService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<ClothingIn>>().setData(data);
}

5.5 新增服装出库

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增服装出库")
public Result<ClothingOut> insert(ClothingOut clothingOut){
    Clothing c = iClothingService.getById(clothingOut.getClothId());
    if(c == null) {
        return ResultUtil.error("服装不存在");
    }
    if(clothingOut.getNumber().compareTo(c.getNumber()) > 0) {
        return ResultUtil.error("服装库存不足");
    }
    clothingOut.setTitle(c.getTitle());
    clothingOut.setContent(c.getContent());
    clothingOut.setTime(DateUtil.now());
    User currUser = securityUtil.getCurrUser();
    clothingOut.setWorkUser(currUser.getNickname());
    clothingOut.setWorkMobile(currUser.getMobile());
    iClothingOutService.saveOrUpdate(clothingOut);
    c.setNumber(c.getNumber().subtract(clothingOut.getNumber()));
    iClothingService.saveOrUpdate(c);
    return new ResultUtil<ClothingOut>().setData(clothingOut);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/475299.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis 又双叒叕改开源协议了,微软提前推出高性能替代方案 Garnet

Redis 官宣&#xff1a;是的&#xff0c;我们又改开源协议了 3 月 20 号&#xff0c;Redis 商业公司 CEO Rowan Trollope 在公司官方博客上宣布了一项重大变革。Redis 核心软件将从 BSD 3-Clause 许可证过渡到双重许可证模式&#xff0c;这一变化将从 Redis v7.4 版本开始&…

Java 应用程序监控

Java 监控涉及监控在 Java 上运行的应用程序的关键性能指标&#xff0c;以及 支持 Java 应用程序的服务器。Java 监控可以帮助优化 Java 应用程序的性能&#xff0c;发现和识别以下问题&#xff1a; 导致常见的应用程序问题&#xff0c;并在问题影响最终用户之前解决问题。 Ja…

美联储3月会议来袭,市场对6月开启降息或仍较为乐观

KlipC报道&#xff1a;美国联邦储备委员会结束了为期两天的货币政策会议&#xff0c;宣布仍继续将联邦基金利率目标区间维持在5.25%-5.50%之间不变。 值得一提的是会议声明声明几乎只字未改&#xff0c;唯一改动的是在描述就业市场时&#xff0c;将“新增就业过去一年有所放缓但…

解决Oracle VM VirtualBox无法与Windows互相复制粘贴的教程

说明&#xff1a;要实现从Windows上复制然后在VM VirtualBox上粘贴&#xff0c;必须要在VM VirtualBox上下载virtualbox-guest-dkms 第一步&#xff1a; 第二步&#xff1a; 按CtrlALTT打开命令终端输入 sudo apt-get install virtualbox-guest-dkms 然后重启 第三步&…

Linux下QT界面小程序开发

背景&#xff1a;需要在linux不同环境下可以测试我们的读卡器设备 搭建本地linux开发环境&#xff08;本来想VS里开发然后通过SSH的方式在linux下编译&#xff0c;但是工具链一直没搞起来&#xff0c;所以我是在ubuntu里安装的QT Creator工具直接开发的&#xff09;&#xff1b…

(一)手把手教你如何通过ARM DesignStart计划在FPGA上搭建一个Cortex-M3软核

&#xff08;一&#xff09;手把手教你如何通过ARM DesignStart计划在FPGA上搭建一个Cortex-M3软核 一、ARM DesignStart计划 1.1 如何下载ARM DesignStart Cortex-M3相关文件 ​ 关于ARM DesignStart计划的介绍:ARM DesignStart计划——私人定制一颗ARM处理器 - 知乎 (zhih…

Android ViewPager不支持wrap_content的原因

文章目录 Android ViewPager不支持wrap_content的原因问题源码分析解决 Android ViewPager不支持wrap_content的原因 问题 <androidx.viewpager.widget.ViewPagerandroid:id"id/wrap_view_pager"android:layout_width"match_parent"android:layout_he…

快速画流程图

使用在线工具&#xff1a;PlantUML PlantUML 官网:https://plantuml.com/ 中文官网:https://plantuml.com/zh/ 使用步骤如下&#xff1a; 1、拷贝一个完成函数&#xff1a; int func_init(const char *tag) {if (tag ! NULL) {printf("set TAG :%s", tag);}print…

登录校验:JWT令牌、Filter、Interceptor

JWT&#xff1a; 全称&#xff1a;JSON Web Token 定义了一种简洁的、自包含的格式&#xff0c;用于在通信双方以json数据格式安全的传输信息&#xff0c;由于数字签名的存在&#xff0c;这些信息是可靠的。 组成&#xff1a; Header(头部)&#xff1a;&#xff08;“alg&q…

每日学习笔记:C++ STL 的set、multiset

定义 (自动排序&#xff0c;可指定自定义排序准则) 排序准则 特点 &#xff08;不同通过迭代器直接修改元素值&#xff0c;只能先删除后添加&#xff09; 操作函数 运行期指定排序准则

【项目实践】VS配置Qt

文章目录 前言版本使用具体步骤1&#xff09;安装Qt或者添加删除组件2&#xff09;VS安装Qt Visual Studio Tools 如何使用遇到的问题双击ui文件编辑报错 前言 最近因为一个项目&#xff0c;需要使用Qt&#xff0c;本来想使用Python的&#xff0c;但是由于另外一个第三方的库是…

Linux:vim编辑器的使用

1.Vim的安装 Linux默认是安装了的vim&#xff0c;未安装则可以使用以下指令安装。 yum install vim -y 2.Vim的四种模式 &#xff08;1&#xff09;命令模式 使用VIM编辑器时&#xff0c;默认处于命令模式。在该模式下可以移动光标位置&#xff0c;可以通过快捷键对文件内容…

路灯单灯控制器 智慧路灯杆智能照明新宠

路灯单灯控制器是现代城市管理中非常重要的设备之一。它们不仅可以提供照明功能&#xff0c;还可以通过智能控制系统实现远程监控和调节。   路灯单灯控制器通过感知环境亮度和运行状态&#xff0c;实现对路灯的智能控制。它使用先进的传感器技术&#xff0c;能够实时感知路灯…

von Mises-Fisher Distribution

1. 概率密度函数 关于 Bessel Function 请参阅《贝塞尔函数》《Modified Bessel Function of the First Kind》。 2. Relation to Normal Distribution 进一步的推导&#xff1a; G p ( x ; μ , κ ) ( κ 2 π ) p e x p ( − κ ( x − μ ) ⊺ ( x − μ ) 2 ) ( κ 2 π…

109 项目整合 spring-quartz 启动自动执行定时任务

前言 项目中使用了 quartz 来支持定时任务的相关基础支撑, 但是 最近添加了一个 资源消耗比较高的定时任务, 发布到测试环境之后, 发现服务突然 起不起来了[资源比较有限] 然后 查看了一下日志, 这个定时任务怎么在执行?, 不是 配置的是 凌晨两点么, 然后 仔细一看 几乎配置…

跳槽多次未成功,问题源自何处?

众所周知&#xff0c;2023年市场很难&#xff01;看着企业们纷纷裁员&#xff0c;甚至连内推这个后门都走不通&#xff01;哪怕有面试&#xff0c;都是屡屡碰壁&#xff0c;你想清楚问题出在哪了吗&#xff1f;&#x1f62d;“求职不得&#xff0c;夜不能寐&#xff1b;三更半夜…

免费升级https的方式(含教学)

背景&#xff1a;随着现在全民网络安全意识的日益提升&#xff0c;各个网站实现的https数量也随之提升&#xff0c;那么如何将原本网站的http访问方式升级为https呢&#xff1f;下面均为干货内容。 目录 http访问和https访问的区别&#xff1a; 实现https后有哪些好处&#x…

两个现货白银理财产品投资技术分析方法

现货白银是投资市场中比较受欢迎的理财产品。要投资现货白银&#xff0c;我们需要具备一定的金融投资经验。下面我们就来讨论一下&#xff0c;在现货白银这个理财产品的投资过程中&#xff0c;常常用到的一些技术分析方法。 宏观的趋势分析法。在现货白银理财产品投资中&#x…

助农抢农时,千耘导航保春耕

助农抢农时&#xff0c;千耘导航保春耕 在农业生产中&#xff0c;农机的作用不可忽视。随着人们生活水平的提高和科技的进步&#xff0c;对于农机的需求也越来越大。而千耘农机导航作为农机自动驾驶领域独具优势的一款设备&#xff0c;正以火爆的势头成为众多农户的首选。 在春…

C 结构体链表的一点想法

去年写的 白天和同事在聊一个东西&#xff0c;关于 c 里面链表的使用&#xff0c;通常是用一个 list 作为结构体的成员&#xff0c;然后通过 list 把结构体串起来&#xff0c;就像串糖葫芦一样。 而我发现项目中有一个结构体有三个类似 list 这样的成员&#xff0c;一个成员是…