项目搭球为满足日益扩大的仓库管理需求,对仓库中商品进销存进行统一管理,而开发了此系统。系统主要包含:
1>用户管理(查询用户、添加用户、修改用户、删除用户、导出数据、批量删除、禁用/启用用户、重置密码、分配角色、更改权限)
2>角色管理(查询角色、添加角色、修改角色、删除角色、导出数据、禁用/启用角色、更改权限)
3>权限管理(查询权限、添加权限、修改权限、删除角色、禁用/启用权限)
4>商品管理(查询商品、添加商品、修改商品、商品审核等)
5>商品分类管理(商品分类的添加、商品分类的查询、商品分类的修改、商品分类的删除等)
6>采购管理(我的采购单、添加采购单、采购单的审核等)
7>入库管理(入库单、保存入库单、确认入库等)
8>出库管理(出库单、保存出库单、审核出库单等)
9>统计管理(各个仓库库存信息、仓库占有比、仓库存储走势、出入库信息统计、采购量占比、实时数据监测)
10>调货管理(调货单查询、确认调货)
11>仓库管理(查询仓库、添加仓库、修改仓库、删除仓库、导出数据)
12>供货商管理(供货商添加、供货商修改、供货商的查询等)
13>品牌管理(品牌添加、品牌修改、品牌的查询等)
14>产地管理(产地添加、产地修改、产地的查询等)
15>站内信管理(我的站内信、未读消息、站内信发送、站内信查询等)
SpringBoot + MyBatis + MySql + Redis + Vue3+axios+Element-Plus +Echarts等
1.安装node
node是一个基于chrome V8引擎的JavaScript运行环境,让JavaScript运行在服务端的开发平台
npm包管理器的介绍:
node安装之后一般都会默认安装npm包管理器;
类似于linux的yum包管理器,可以给ue项目下载相关插件、依赖;
测试安装是否成功
node -v
:查看node版本
npm -v
:查看npm包管理器的版本
如果在执行npm -v命令时出现如下警告,将node安装目录中的npm.cmd文件中的prefix -g改为
prefix --location=global。
2.给npm包管理器配置镜像加速器
npm config set registry https://registry.npm.taobao.org
npm config get registry -- 返回https://registry.npm.taobao.org,说明配置成功。
3.使用npm包管理器下载安装yarn,同时为其配置加速器
npm install -g yarn
如果node版本太低的会会提示更新,我们更新一下就可以
npm install -g [email protected]
yarn包管理器的介绍:
yarn包管理器跟npm包管理器的作用是一样的,区别就是npm包管理器是node自己的,而yarn包管理器属于第三方(facebook的);
配置镜像加速
yarn config set registry https://registry.npm.taobao.org
yarn config get registry -- 返回https://registry.npm.taobao.org,说明配置成功。
4.使用yarn包管理器为前端Vue项日下载安装所需插件
yarn
5.启动前端vue项目
在前端目录下打开doc窗口,执行命令:
yarn
启动前端Vue项目:
yarn dev
细节
前端vue项目对后台项目的访问问题:
vue项目目录下的.env文件
# 以下环境变量均为自定义
# 版本号
VITE_VERSION=v1.1.0
# 打包输出目录
VITE_OUTPUT_DIR=dist
# 项目访问基础路径
VITE_BASE_URL=/
# 服务端路径前缀
VITE_API_BASE_URL=/api
# 本地token存储名称
VITE_LOCAL_TOKEN=Sure-Token
# 向服务端发送token信息的名称
VITE_HEADER_TOKEN=Token
# 系统登录路由名称
VITE_LOGIN_ROUTE_NAME=Login
# 后台地址的上下文路径
VITE_WAREHOUSE_CONTEXT_PATH=http://localhost:9999/warehouse
#VITE_WAREHOUSE_CONTEXT_PATH=http://8.141.144.116:9999/warehouse
有一个如下的配置,前台访问后台的路径
我们可以在.env文件中通过VITE_WAREHOUSE_CONTEXT_PATH变量修改设置前端Vue项目访问后台项目的访问路径
如果不做修改设置,就要求我们的后台项目的项目路径必须是warehouse,访问端口必须是9999
# 后台地址的上下文路径
VITE_WAREHOUSE_CONTEXT_PATH=http://localhost:9999/warehouse
1.创建springboot项目 - 划分包层次仓库我们选择阿里仓库
创建包层次
下面这个配置应该是挺陌生的
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-dependenciesartifactId>
<version>${spring-boot.version}version>
<type>pomtype>
<scope>importscope>
dependency>
但是我们应该见过下面这个配置,将此项目继承spring-boot-starter-parent
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId> <version>2.3.12.RELEASEversion>
<relativePath>relativePath>
parent>
我们可以点进去spring-boot-starter-parent,如下所示,发现存在spring-boot-dependencies(spring依赖中心或者版本仲裁中心)
我们可以再点进spring-boot-dependencies看一下,里面有很多springboot用到的版本号
pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.pngroupId>
<artifactId>warehouseartifactId>
<version>0.0.1-SNAPSHOTversion>
<properties>
<java.version>1.8java.version>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
<spring-boot.version>2.3.12.RELEASEspring-boot.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>2.1.4version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.25version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-redis-reactiveartifactId>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>fastjsonartifactId>
<version>1.2.79version>
dependency>
<dependency>
<groupId>javax.validationgroupId>
<artifactId>validation-apiartifactId>
<version>2.0.1.Finalversion>
dependency>
<dependency>
<groupId>org.hibernate.validatorgroupId>
<artifactId>hibernate-validatorartifactId>
<version>6.2.0.Finalversion>
dependency>
<dependency>
<groupId>com.github.pengglegroupId>
<artifactId>kaptchaartifactId>
<version>2.3.2version>
dependency>
<dependency>
<groupId>com.belerwebgroupId>
<artifactId>pinyin4jartifactId>
<version>2.5.1version>
dependency>
<dependency>
<groupId>commons-langgroupId>
<artifactId>commons-langartifactId>
<version>2.6version>
dependency>
<dependency>
<groupId>com.auth0groupId>
<artifactId>java-jwtartifactId>
<version>3.18.3version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
<exclusions>
<exclusion>
<groupId>org.junit.vintagegroupId>
<artifactId>junit-vintage-engineartifactId>
exclusion>
exclusions>
dependency>
dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-dependenciesartifactId>
<version>${spring-boot.version}version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.8.1version>
<configuration>
<source>1.8source>
<target>1.8target>
<encoding>UTF-8encoding>
configuration>
plugin>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<version>${spring-boot.version}version>
<configuration>
<mainClass>com.pn.WarehouseApplicationmainClass>
<skip>trueskip>
configuration>
<executions>
<execution>
<id>repackageid>
<goals>
<goal>repackagegoal>
goals>
execution>
executions>
plugin>
plugins>
build>
project>
继承Springboot版本的两种方式:
方式一
在创建的Springboot工程的pom文件中使用
如果之前我们用idea自带的Springboot骨架,是通过继承Springboot的父工程来控制springboot版本的,这样以后继承的父工程pring-boot-starter-parent又把spring-boot-dependencies(版本控制中心)给继承了,这样以后就说明springboot的版本也控制了
方式二
在依赖的版本控制标签
但是这里我们并没有通过继承pring-boot-starter-parent来控制版本,而是直接通过引入spring-boot-dependencies来控制版本
一般是使用阿里的Springboot工程的骨架创建的Boot工程
//mapper接口扫描器,然后会自动为Mapper接口创建代理对象并加入到IOC容器
@MapperScan(basePackages = "com.pn.mapper")
@SpringBootApplication
public class WarehouseApplication {
public static void main(String[] args) {
SpringApplication.run(WarehouseApplication.class, args);
}
}
#项目的访问路径
server:
servlet:
context-path: /warehouse
#项目的访问端口
port: 9999
spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db_warehouse?serverTimezone=UTC
username: root
password: root
# #redis的配置
redis:
host: 127.0.0.1
port: 6379
database: 0
#mybatis的配置
mybatis:
#SQL映射文件的位置
mapper-locations: classpath:mapper/**/*.xml
configuration:
#开启驼峰命名法
map-underscore-to-camel-case: true
#日志功能
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 指定实体类起别名,(实体类所在的包的包路径,那么包中的所有实体类别名就默认是类名首字母小写)
type-aliases-package: com.pn.entity
#自定义属性
#自定义属性 - token过期时间: 令牌过期时间(单位秒),实际过期时间是该时间的两倍
warehouse.expire-time: 3600
#自定义属性 - 图片上传到的位置
file.upload-path: "classpath:static/img/upload"
#自定义属性 - 上传的图片保存数据库的访问路径的目录路径
file.access-path: "/img/upload/"