# 毕设:仓库管理系统 **Repository Path**: abwan/my-wms ## Basic Information - **Project Name**: 毕设:仓库管理系统 - **Description**: 毕业设计 springboot + vue 前后端分离 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2022-01-28 - **Last Updated**: 2024-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # My_WMS :tw-1f1f2: :tw-1f1fe: :tw-1f437: :tw-1f1fc: :tw-1f1f2: :tw-1f1f8: ### 技术栈: #### 后端: ##### 开发主体框架: Spring Boot+ MyBatis-Plus ##### 数据库连接池: druid ##### 登录鉴权框架: Sa-Token(弃用Shiro + Jwt) ##### 定时任务: Quartz #### 前端: Vue + Element UI [前端地址](https://gitee.com/abwan/my-wms-front) #### 大数据: Docker Hadoop (Hdfs + Yarm )+ Hive : Hdfs: NameNode 1 DataNode 1 Hive: 元数据存储:ProgreSQL ###### 数据抽取: DataX ###### 定时执行启停: Crond ### 运行环境: 阿里云ECS 2核2G #### 数据库: MySQL5.7 #### 文件存储: 阿里云OSS #### web服务器: 前后端均为tomcat ### 功能与实现: #### 1.登录与鉴权 ##### (用户分为超级管理员和仓库管理员 超级管理员可以使用所有功能,仓库管理员不能操使用用户信息管理模块,包括查看用户信息、账号冻结与解锁 但可以进行个人信息的修改) 使用Sa-Token 头像上传与修改使用到了阿里云OSS的SDK #### 2.基础信息管理(客户、供应商、用户、仓库、货物) 基础SQL增删改查 搜索用到了MyBatis XML的逻辑标签 #### 3.出入库管理 (出入库记录查看、新增出入库) 将供应商、客户、仓库、货物用固定格式的标签标示 搜索用到了异步获取标签 #### 4.库存管理 库存是按照货物和进价来归类的,两者相同既可以认为是这两个库存相同,可以进行合并库存记录查看 库存整理: 仓库管理员每天下班前会将入库的货物进行归类,相同价格和种类的货物会放到一起这个时候需要将库存里价格和种类相同的货物记录合并 并将为0的记录清除 库存整理实现的就是这个功能。 库存预警: 设置一个阈值,当库存数量低于该阈值时就会报警 可以在预警记录中查看 整理库存之后 会进行库存预警 使用Quartz 设置定时时间(每天凌晨执行 可更改、开启、关闭、暂停、直接调用执行) #### 5.数据分析 对百万级数据量进行数据分析,实现各年收支情况、出入库情况、近期热供榜三张报表 ETL E Extract抽取 使用DataX脚本将MySQL中需要用到的表出去到ods层 一个存储原表的数据仓库 T Transform转换 将ods层的数据按照需求进行计算 结果存入ads层 一个存储中间/结果表的数据仓库 L Load加载 这里主要表现为 将结果表通过DataX抽取到MySQL中 在通过系统前端展示出来 每个部分都是一个任务 通过Shell脚本和Crond操控进行定时管理 (涉及HiveSQL编写、Hive连接(beeline)、Docker启停、系统启停) 实现一条工作流 在凌晨进行数据维护 ### 数据库表设计: 具体看my-wms.sql中的建表语句 hive中原表和结果表与之映射 共六张 #### 存储过程: 整理库存一个 库存预警一个 ### 快速部署: 1.自行部署一个单机的大数据环境(推荐[docker-hive](https://github.com/big-data-europe/docker-hive "docker-hive")) 2.将yml中的连接信息替换成你需要的数据库信息(mysql hdfs) 3.将前端localhost的替换为你后端运行所在机器的ip地址 4.所有的数据库脚本、shell脚本、linux脚本都在后端项目script文件夹中,请根据自己机器实际情况修改