本软件基于 RuoYi 二次开发 https://github.com/yangzongzhuan/RuoYi-Vue3
PMBT (Prep Meals Blockchain Traceability) 是一个预制菜可信溯源平台,旨在为预制菜行业提供完整的供应链追溯解决方案。确保食品从原料采购到最终消费的全过程可追溯、可验证。
**注意:**本项目我用于毕设、竞赛、课程设计等,不具备生产环境使用条件,不足之处还请见谅。
- 🔗 溯源: 扫码,提供可信的溯源信息
- 🏭 生产管理: 完整的生产订单管理,支持设备监控和工艺控制
- 🛒 商城系统: 集成电商功能,支持商品展示、购物车、订单管理
- 📱 多端支持: 提供 Web 管理端、微信小程序端,满足不同用户需求
- 🔐 安全认证: 完善的用户认证和权限管理系统
- 📊 数据可视化: 丰富的图表展示,实时监控业务数据
- 框架: Spring Boot 3.3.4
- 数据库: MySQL 8.2.0
- ORM: MyBatis Plus 3.5.5
- 连接池: Druid 1.2.23
- 缓存: Redis
- 文档: SpringDoc OpenAPI 2.5.0
- 工具库: Hutool 5.1.0, FastJSON2 2.0.43
- 框架: Vue.js 3.4.31
- UI 组件: Element Plus 2.7.6
- 构建工具: Vite 5.3.2
- 状态管理: Pinia 2.1.7
- 路由: Vue Router 4.4.0
- 图表: ECharts 5.5.1
- 框架: 微信小程序原生开发
- UI 库: ColorUI
- 版本: 2.19.6
prep-meals-blockchain-traceability/
├── pmbt-api/ # 后端API服务
│ ├── pmbt-admin/ # 管理后台模块
│ ├── pmbt-common/ # 通用工具模块
│ ├── pmbt-framework/ # 核心框架模块
│ ├── pmbt-generator/ # 代码生成器模块
│ ├── pmbt-mall/ # 商城模块
│ ├── pmbt-production/ # 生产管理模块
│ ├── pmbt-quartz/ # 定时任务模块
│ ├── pmbt-system/ # 系统管理模块
│ └── pmbt-weixin/ # 微信集成模块
├── pmbt-web/ # Web前端
│ ├── src/
│ │ ├── api/ # API接口
│ │ ├── components/ # 公共组件
│ │ ├── views/ # 页面组件
│ │ ├── router/ # 路由配置
│ │ └── store/ # 状态管理
│ └── public/ # 静态资源
└── pmbt-miniapp/ # 微信小程序
├── pages/ # 页面
├── components/ # 组件
├── utils/ # 工具函数
└── public/ # 静态资源
- Java 17+
- Node.js 16+
- MySQL 8.0+
- Redis 6.0+
- Maven 3.6+
- Docker & Docker Compose (可选)
-
克隆项目
git clone https://github.com/linyshdhhcb/prep-meals-blockchain-traceability.git cd prep-meals-blockchain-traceability -
准备部署文件
# 构建后端JAR包 cd pmbt-api mvn clean package -DskipTests cp pmbt-admin/target/pmbt-admin.jar ../docker/jar/ # 构建前端静态文件 cd ../pmbt-web npm install npm run build cp -r dist/* ../docker/dist/ # 准备数据库脚本 cp sql/pmbt.sql ../docker/db/
-
启动服务
cd ../docker docker-compose up -d -
访问应用
- Web 管理端: http://localhost
- API 文档: http://localhost/swagger-ui.html
- 数据库监控: http://localhost/druid (用户名: admin, 密码: 123456)
| 服务 | 端口 | 说明 |
|---|---|---|
| pmbt-nginx | 80, 443 | 前端静态文件和反向代理 |
| pmbt-server | 7500 | 后端 API 服务 |
| pmbt-mysql | 3306 | MySQL 数据库 |
| pmbt-redis | 6379 | Redis 缓存 |
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f pmbt-server
# 重启服务
docker-compose restart pmbt-server
# 停止所有服务
docker-compose down
# 停止并删除数据卷
docker-compose down -v-
克隆项目
git clone https://github.com/linyshdhhcb/prep-meals-blockchain-traceability.git cd prep-meals-blockchain-traceability -
数据库配置
# 创建数据库 CREATE DATABASE pmbt CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 导入数据库脚本 mysql -u root -p pmbt < sql/pmbt.sql
-
配置文件修改
# pmbt-api/pmbt-admin/src/main/resources/application.yml spring: datasource: url: jdbc:mysql://localhost:3306/pmbt?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: your_username password: your_password redis: host: localhost port: 6379 password: your_redis_password
-
启动后端服务
cd pmbt-api mvn clean install cd pmbt-admin mvn spring-boot:run
-
安装依赖
cd pmbt-web npm install -
配置 API 地址
// src/config/env.js export default { baseURL: "http://localhost:8080/api", };
-
启动开发服务器
npm run dev
-
配置小程序信息
// config/env.js export default { baseURL: "https://your-domain.com/api", };
-
使用微信开发者工具
- 导入
pmbt-miniapp目录 - 配置 AppID
- 编译并上传
- 导入
- 生产订单管理
- 设备监控
- 工艺参数控制
- 质量检测记录
- 商品管理
- 购物车功能
- 订单处理
- 支付集成
- 供应链追溯
- 数据上链
- 溯源查询
- 防伪验证
- 用户注册/登录
- 权限管理
- 角色分配
- 操作日志
- 销售统计
- 生产统计
- 设备状态
- 实时监控
在 docker-compose.yml 中可以配置以下环境变量:
environment:
# MySQL配置
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: pmbt
# Redis配置
REDIS_PASSWORD: your_redis_password
# 应用配置
SPRING_PROFILES_ACTIVE: docker
TZ: Asia/ShanghaiDocker 容器中的数据会持久化到以下目录:
docker/
├── mysql/data/ # MySQL数据文件
├── redis/data/ # Redis数据文件
├── pmbt/logs/ # 应用日志
├── pmbt/uploadPath/ # 上传文件
└── nginx/logs/ # Nginx日志项目使用自定义网络 pmbt-network,服务间通过服务名通信:
pmbt-server→pmbt-mysql:3306pmbt-server→pmbt-redis:6379pmbt-nginx→pmbt-server:7500
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000spring:
redis:
database: 0
timeout: 10000ms
lettuce:
pool:
max-active: 8
max-wait: -1ms
max-idle: 8
min-idle: 0// 微信支付配置
wxPayConfig: {
appId: 'your_app_id',
mchId: 'your_mch_id',
apiKey: 'your_api_key'
}# 检查端口占用
netstat -tulpn | grep :80
netstat -tulpn | grep :3306
# 修改 docker-compose.yml 中的端口映射
ports:
- "8080:80" # 改为其他端口# 检查MySQL容器状态
docker-compose logs pmbt-mysql
# 检查网络连接
docker network ls
docker network inspect docker_pmbt-network# 检查Nginx配置
docker-compose logs pmbt-nginx
# 检查静态文件是否正确复制
docker exec -it pmbt-nginx ls -la /home/pmbt/projects/pmbt-web/# 查看详细日志
docker-compose logs -f pmbt-server
# 检查JAR文件是否存在
ls -la docker/jar/services:
pmbt-server:
deploy:
resources:
limits:
memory: 2G
cpus: "1.0"
reservations:
memory: 1G
cpus: "0.5"-- 在 docker/db/pmbt.sql 中添加
SET GLOBAL innodb_buffer_pool_size = 256M;
SET GLOBAL max_connections = 200;# 在 docker/conf/redis.conf 中配置
maxmemory 512mb
maxmemory-policy allkeys-lru
- 仪表盘:实时数据展示
- 生产管理:订单和设备监控
- 商城管理:商品和订单处理
- 用户管理:权限和角色配置
- 首页:商品展示和推荐
- 商品详情:详细信息查看
- 购物车:商品管理
- 订单:订单跟踪
- 溯源:区块链溯源查询
我们欢迎所有形式的贡献,包括但不限于:
- Bug 报告: 发现问题请提交 Issue
- 功能建议: 提出新功能想法
- 代码贡献: 提交 Pull Request
- 文档完善: 改进文档内容
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 项目维护者: linyi
- 邮箱: jingshuihuayue@qq.com
- 项目地址: https://github.com/linyshdhhcb/prep-meals-blockchain-traceability
感谢以下开源项目的支持:
⭐ 如果这个项目对您有帮助,请给我们一个 Star!