# VehicleERP **Repository Path**: dengtijin_admin/VehicleERP ## Basic Information - **Project Name**: VehicleERP - **Description**: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: http://ruoyi.vip - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 33894 - **Created**: 2022-10-06 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 宏明工厂 ERP 系统(VehicleERP) 基于 [RuoYi v3.9.0](https://gitee.com/y_project/RuoYi-Vue) 前后端分离快速开发框架二次开发的**工厂一体化 ERP 系统**。 面向注塑/成型类制造工厂,覆盖客户与用户、产品 BOM、销售、采购、PMC 生产计划、车间生产(含外加工)、仓库物料、人力成本、绩效考核、利润核算与出货预警等全业务流程。 > 完整业务蓝图见 [`工厂ERP系统整体解决方案.md`](./工厂ERP系统整体解决方案.md)。 --- ## 一、项目定位与解决的核心痛点 | 核心痛点 | 解决方案 | | --- | --- | | 经营数据滞后(年底才知盈亏) | 实时核算成本、利润、应收应付,日/月/季/年随时查询 | | 出货管控混乱、欠货无预警 | 多维出货预警(当日/3天/一周/一月)、库存&人力前置校验、欠货明细 | | 生产计划不规范 | BOM 自动拆解物料 + 自动生成采购/生产计划,支持人工微调 | | 成本核算模糊 | 订单绑定物料、人工、外加工三类成本,可追溯 | | 绩效考核不通用 | 独立的薪资模块,适配计件、计时、月薪多模式 | | 产能/设备浪费 | 注塑机利用率、物料利用率、产能数据统计 | --- ## 二、技术栈 | 层级 | 技术选型 | | --- | --- | | 后端 | Spring Boot 2.5.15、Spring Security、JWT、MyBatis、Druid、Redis | | 前端 | Vue 2.6、Element UI 2.15、Vuex、Vue Router、Axios、ECharts | | 数据库 | MySQL 5.7+(默认库名 `erp`) | | 构建 | Maven(后端多模块)、npm / Vue CLI(前端) | | 代码生成 | RuoYi 内置代码生成器(可一键生成前后端 CRUD) | --- ## 三、系统模块(工程结构) ``` VehicleERP ├── bin/ # 启动/停止/重启脚本(ry.bat 等) ├── doc/ # 需求/设计文档 ├── sql/ # 数据库初始化脚本(含 ERP 业务表设计) │ ├── ry_20250522.sql # RuoYi 基础表(用户/角色/菜单/字典/日志等) │ ├── erp.sql # 进销存核心表:客户、产品、采购、生产、销售、库存 │ ├── erp-ct.sql # 基础码表:公司信息、产品、BOM 组成、库房货架 │ └── erp-log.sql # 业务操作日志表 ├── ruoyi-admin # Web 服务入口(启动类、全局配置、Controller) ├── ruoyi-common # 通用工具与公共模块 ├── ruoyi-framework # 框架核心(安全、数据源、缓存、AOP 等) ├── ruoyi-generator # 代码生成模块 ├── ruoyi-quartz # 定时任务模块 ├── ruoyi-system # 业务实体、Mapper、Service(当前为 RuoYi 基础域) └── ruoyi-ui # 前端工程(Vue) ``` --- ## 四、数据库设计(已规划) 数据库初始化 SQL 已落地,业务表按以下域划分(表名前缀:`ct_` 基础码表、`erp_` 业务表): ### 4.1 基础码表(ct_) - `ct_company_info` —— 客商档案(供应商 / 销售客户 / 双向客户) - `ct_product` —— 产品/物料主数据(原料/半成品/成品/外加工品) - `ct_product_composition` —— 产品 BOM 组成(配方、用量、损耗) - `ct_warehouse` / `ct_warehouse_shelf` —— 库房与货架 - `ct_machine` —— 机台/设备主数据(产能统计用) ### 4.2 采购(erp_) - `erp_purchase_order` —— 采购订单主表 - `erp_purchase_order_detail` —— 采购订单明细(含单价、入库数量) ### 4.3 生产(erp_) - `erp_production_order` —— 生产订单主表 - `erp_production_order_detail` —— 生产订单明细(计件/计时、物料成本) - `erp_company_product` —— 公司自制产品表 ### 4.4 销售(erp_) - `erp_sales_order` —— 销售订单主表(含出货状态、应收金额) - `erp_sales_order_detail` —— 销售订单明细(欠货/出货数量) ### 4.5 仓库(erp_) - `erp_stock` —— 库存余额(库房+物料维度) - `erp_stock_in` / `erp_stock_in_detail` —— 入库单及明细 - `erp_stock_out` / `erp_stock_out_detail` —— 出库单及明细 ### 4.6 日志(log_) - `log_producct` —— 产品生产操作日志 > 说明:以上为**数据库层设计**,对应的后端实体(Entity/Mapper/Service/Controller)与前端页面(Vue 视图 + API)尚未实现,是当前的主要开发内容。 --- ## 五、环境准备 - JDK 1.8+ - MySQL 5.7+(默认连接:`jdbc:mysql://localhost:3306/erp`,账号 `root`,密码 `dhcc`,见 `ruoyi-admin/src/main/resources/application-druid.yml`) - Redis 3.0+ - Node.js 12+ / npm 6+(前端) --- ## 六、安装配置 ### 6.1 安装依赖环境 | 依赖 | 版本要求 | 说明 | | --- | --- | --- | | JDK | 1.8+ | 后端运行/编译环境 | | Maven | 3.6+ | 后端依赖管理与打包 | | MySQL | 5.7+ | 业务数据库(默认库名 `erp`) | | Redis | 3.0+ | 缓存、限流、Token 存储 | | Node.js | 12+ | 前端运行环境 | | npm | 6+ | 前端依赖管理 | ### 6.2 配置数据库与中间件 1. **创建数据库** ```bash mysql -uroot -p -e "CREATE DATABASE erp DEFAULT CHARSET utf8mb4;" ``` 2. **初始化表结构与数据**(按顺序执行) ```bash mysql -uroot -p erp < sql/ry_20250522.sql # RuoYi 基础表 mysql -uroot -p erp < sql/erp-ct.sql # 基础码表(客商/产品/BOM/库房) mysql -uroot -p erp < sql/erp.sql # 进销存核心表 mysql -uroot -p erp < sql/erp-log.sql # 业务日志表 ``` 3. **修改数据库连接**(`ruoyi-admin/src/main/resources/application-druid.yml`) ```yaml url: jdbc:mysql://localhost:3306/erp?useUnicode=true&characterEncoding=utf8 username: root password: dhcc # 改为 your_password ``` 4. **修改 Redis 连接**(`ruoyi-admin/src/main/resources/application.yml`) ```yaml redis: host: localhost port: 6379 password: # 无密码留空 ``` 5. **前端代理**(如后端地址非 `http://localhost:8080`,修改 `ruoyi-ui/vue.config.js` 的 `devServer.proxy` 与 `.env.production` 的 `VUE_APP_BASE_API`)。 默认管理员账号:`admin / admin123`。 --- ## 七、调试(本地开发) 前后端分离,开发时可同时启动便于热调试。 ### 7.1 后端调试 ```bash # 方式一:Maven 插件直接运行(支持热加载) cd ruoyi-admin mvn spring-boot:run # 方式二:IDE 启动 # 用 IntelliJ IDEA / Eclipse 打开根 pom.xml, # 运行 RuoYiApplication.main(),勾选 Enable LiveReload ``` - 后端调试地址:`http://localhost:8080` - 接口文档(Knife4j/Swagger):`http://localhost:8080/doc.html` ### 7.2 前端调试 ```bash cd ruoyi-ui npm install # 首次安装依赖 npm run dev # 启动开发服务器(默认 http://localhost:80) ``` - 修改前端代码保存即自动热更新,浏览器无需手动刷新。 - 若需指定端口:`npm run dev -- --port 8081` --- ## 八、编译(构建产物) ### 8.1 后端编译打包 ```bash # 根目录:跳过测试快速打包所有模块 mvn clean install -DskipTests # 仅打包 Web 模块 cd ruoyi-admin mvn clean package -DskipTests # 产物:ruoyi-admin/target/ruoyi-admin.jar ``` ### 8.2 前端编译构建 ```bash cd ruoyi-ui npm install npm run build:prod # 生产环境构建(默认压缩混淆) # 或 npm run build:stage # 预发布/测试环境构建 # 产物目录:ruoyi-ui/dist ``` --- ## 九、发布(部署上线) ### 9.1 后端发布 ```bash # 1. 上传 ruoyi-admin.jar 至服务器 # 2. 使用内置脚本启动(bin/ 目录) ry.bat # Windows 一键启动(含 start/stop/restart/status) # 或手动: java -jar ruoyi-admin.jar --spring.profiles.active=prod & ``` - 生产配置建议:在 `application.yml` 中指定 `prod` 环境,关闭 devtools、开启日志滚动。 ### 9.2 前端发布 ```bash # 将 ruoyi-ui/dist 目录整体部署到 Web 服务器(nginx 示例) ``` `nginx.conf` 关键配置(反向代理到后端 8080): ```nginx server { listen 80; server_name erp.example.com; location / { root /usr/share/nginx/erp/dist; index index.html index.htm; try_files $uri $uri/ /index.html; } location /prod-api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` ### 9.3 一键发布检查清单 - [ ] 数据库已初始化并完成备份 - [ ] `application-druid.yml` 生产库账号/密码已改 - [ ] Redis 生产地址/密码已配 - [ ] 后端 `jar` 启动且无报错(`tail -f nohup.out`) - [ ] 前端 `dist` 已部署,Nginx 代理可达后端 `prod-api` - [ ] 登录 `admin / admin123` 验证通过后**立即修改默认密码** --- ## 十、Windows 本地实测启动命令(踩坑记录) 以下为在本机(Windows + 内网环境)实际跑通的命令,解决若干默认配置不可用的问题。 ### 10.1 后端实际可用命令 > 默认 `mvn spring-boot:run` 在本机会因前缀解析失败(`NoPluginFoundForPrefixException`)无法启动;全局 Maven `settings.xml` 中的 `mirrorOf=*` 指向不可达的内网 Nexus,导致依赖下载卡死。请用项目根目录自带的 `mvn-settings.xml`(仅阿里云镜像)覆盖。本机实测 **JDK 21(jdk-21.0.2)可正常编译运行**(编译器目标为 Java 8 字节码),无需切换 JDK。 ```bash # 1) 本机使用默认 JDK 21(jdk-21.0.2)即可,无需额外设置 JAVA_HOME # 若需显式指定:set JAVA_HOME=C:\Program Files\Java\jdk-21.0.2 # 2) 用阿里云镜像覆盖全局配置,打包 Web 模块 mvn -s mvn-settings.xml -pl ruoyi-admin -am clean package -DskipTests # 3) 启动 java -jar ruoyi-admin/target/ruoyi-admin.jar # 探活: http://localhost:8080/captchaImage 返回 200 即成功 ``` ### 10.2 Redis(Windows) > 本机未安装 Redis。已放置 Windows 版(tporadowski/redis 5.0.14.1)于 `.tools/redis/`,启动: ```bash .tools\redis\redis-server.exe .tools\redis\redis.windows.conf # 验证: redis-cli ping -> PONG ``` ### 10.3 前端实际可用命令 > 本机 Node 为 v24,而 vue-cli 4 / webpack 4 在 Node 17+ 下会因 OpenSSL 报错(`digital envelope routines::unsupported`)。需开启 legacy provider;且 `npm run dev` 默认占用 80 端口(需管理员)或改用其他端口。 ```bash cd ruoyi-ui set NODE_OPTIONS=--openssl-legacy-provider npm install npm run dev -- --port 8081 # 避免 80 端口权限问题 # 访问 http://localhost:8081 ``` ### 10.4 当前已完成模块 - **客户/公司档案(ct_company_info)**:后端 Entity/Mapper/Service/Controller + 前端 API/页面 均已实现;菜单已通过 `sql/erp-menu.sql` 注册。 --- ## 十一、项目状态与开发计划 | 模块 | 状态 | | --- | --- | | RuoYi 基础框架(权限/用户/角色/菜单/字典/日志/监控/代码生成) | ✅ 已就绪 | | ERP 数据库表结构(ct_/erp_/log_) | ✅ 已设计 | | 客户与用户管理(erp 客户档案、基础档案菜单) | ✅ 已实现(后端+前端+菜单) | | 产品与 BOM 管理 | 🚧 待实现 | | 销售管理(含出货预警) | 🚧 待实现 | | 采购管理 | 🚧 待实现 | | PMC 生产计划(含产能统计) | 🚧 待实现 | | 车间生产(含外加工、人力成本归集) | 🚧 待实现 | | 仓库与库存管理 | 🚧 待实现 | | 绩效考核与工资核算 | 🚧 待实现 | | 利润核算与经营分析 | 🚧 待实现 | **建议开发路径**:基于已落地的数据库设计,使用内置代码生成器逐域生成 `Entity → Mapper → Service → Controller → Vue 页面`,再补充跨模块业务编排(BOM 拆解、成本归集、出货预警等)。