# Logistics **Repository Path**: kule111/logistics ## Basic Information - **Project Name**: Logistics - **Description**: 一个基于Vue 3 + Spring Boot的物流管理系统,提供货物、路线、订单、车辆、客户等管理功能,包含完整的用户认证和报表统计分析模块。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-17 - **Last Updated**: 2026-01-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 物流管理系统 (Logistics Management System) ## 📋 项目简介 一个完整的物流管理系统,采用前后端分离架构,提供货物管理、运输路线管理、订单跟踪、车辆调度、客户管理和报表统计分析等核心功能。系统支持多角色操作,具备实时通知机制和智能调度功能。 ## 🛠 技术栈 ### 后端技术 | 技术 | 版本 | 说明 | |------|------|------| | Java | 17+ | 编程语言 | | Spring Boot | 3.2.0 | 应用框架 | | Spring Security | 6.x | 安全框架 | | Spring Data JPA | 3.2.0 | 数据访问 | | MySQL | 8.0+ | 关系型数据库 | | JWT | 0.12.3 | 认证授权 | | Lombok | - | 代码简化 | ### 前端技术 | 技术 | 版本 | 说明 | |------|------|------| | Vue | 3.4.0 | 渐进式框架 | | Vite | 5.0.10 | 构建工具 | | Vue Router | 4.2.5 | 路由管理 | | Pinia | 2.1.7 | 状态管理 | | Ant Design Vue | 4.0.8 | UI组件库 | | Axios | 1.6.2 | HTTP客户端 | | ECharts | 5.4.3 | 图表库 | ## 📁 项目结构 ``` wuliu/ ├── backend/ # 后端项目 (Spring Boot) │ ├── src/main/java/com/logistics/ │ │ ├── config/ # 配置类 │ │ │ ├── DataInitializer.java # 数据初始化 │ │ │ └── SecurityConfig.java # 安全配置 │ │ ├── controller/ # 控制器层 │ │ │ ├── AuthController.java # 认证控制 │ │ │ ├── CustomerController.java │ │ │ ├── GoodsController.java │ │ │ ├── NotificationController.java │ │ │ ├── OrderController.java │ │ │ ├── ReportController.java │ │ │ ├── RouteController.java │ │ │ ├── UserController.java │ │ │ └── VehicleController.java │ │ ├── dto/ # 数据传输对象 │ │ ├── entity/ # 实体类 │ │ │ ├── Customer.java # 客户实体 │ │ │ ├── Goods.java # 货物实体 │ │ │ ├── Notification.java # 通知实体 │ │ │ ├── Order.java # 订单实体 │ │ │ ├── OrderLog.java # 订单日志 │ │ │ ├── Route.java # 路线实体 │ │ │ ├── User.java # 用户实体 │ │ │ ├── Vehicle.java # 车辆实体 │ │ │ └── VehicleAssignment.java # 车辆分配 │ │ ├── repository/ # 数据仓库 │ │ ├── security/ # 安全模块 │ │ │ ├── CustomUserDetailsService.java │ │ │ └── JwtAuthenticationFilter.java │ │ └── service/ # 业务逻辑层 │ │ ├── AuthService.java │ │ ├── CustomerService.java │ │ ├── GoodsService.java │ │ ├── NotificationService.java │ │ ├── OrderService.java │ │ ├── ReportService.java │ │ ├── RouteService.java │ │ ├── VehicleService.java │ │ └── VehicleAssignmentService.java │ └── src/main/resources/ │ ├── application.yml # 应用配置 │ ├── schema.sql # 数据库Schema │ └── data.sql # 初始化数据 │ ├── frontend/ # 前端项目 (Vue 3) │ ├── src/ │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 公共组件 │ │ │ └── NotificationBell.vue # 通知铃铛 │ │ ├── router/ # 路由配置 │ │ ├── store/ # Pinia状态管理 │ │ ├── utils/ # 工具函数 │ │ │ └── api.js # API封装 │ │ ├── views/ # 页面视图 │ │ │ ├── Login.vue │ │ │ ├── Register.vue │ │ │ ├── Dashboard.vue │ │ │ ├── Goods.vue │ │ │ ├── Routes.vue │ │ │ ├── Orders.vue │ │ │ ├── Vehicles.vue │ │ │ ├── Customers.vue │ │ │ ├── Reports.vue │ │ │ ├── Notifications.vue │ │ │ └── Profile.vue │ │ ├── App.vue │ │ └── main.js │ └── package.json │ └── README.md # 项目说明文档 ``` ## 📊 数据模型 ### 核心实体关系 ``` User (用户) ├── 1:N → Notification (通知) └── 1:N → OrderLog (订单日志) Customer (客户) ────── N:1 ────── Order (订单) Goods (货物) ───────── N:1 ────── Order (订单) Route (路线) ───────── N:1 ────── Order (订单) Vehicle (车辆) ├── 1:N → VehicleAssignment (车辆分配) └── 1:N → Notification (通知) Order (订单) ├── N:1 → VehicleAssignment ├── 1:N → OrderLog └── 1:N → Notification ``` ### 实体说明 | 实体 | 字段 | 说明 | |------|------|------| | **User** | id, username, password, role, email | 系统用户,支持管理员/普通用户 | | **Customer** | id, name, contact, address | 客户信息 | | **Goods** | id, name, description, weight, volume | 货物信息 | | **Route** | id, origin, destination, distance, estimated_time | 运输路线 | | **Order** | id, order_number, goods_id, route_id, customer_id, status | 订单,PENDING/PROCESSING/IN_TRANSIT/DELIVERED/CANCELLED | | **Vehicle** | id, license_plate, model, capacity, status | 车辆,AVAILABLE/IN_USE/MAINTENANCE | | **VehicleAssignment** | id, order_id, vehicle_id, assigned_at | 车辆分配记录 | | **Notification** | id, user_id, order_id, vehicle_id, type, title, content, is_read | 系统通知 | | **OrderLog** | id, order_id, user_id, status, description | 订单状态变更日志 | ## 🎯 功能模块 ### 1. 用户认证 - ✅ 用户注册 - ✅ 用户登录 (JWT认证) - ✅ 密码修改 - ✅ 角色管理 (管理员/普通用户) ### 2. 首页仪表盘 - 📊 订单统计概览 - 📈 订单状态分布图表 - 🚗 车辆使用情况 - 🔔 实时通知 ### 3. 货物管理 - 📦 货物列表查询 - ➕ 新增货物 - ✏️ 编辑货物信息 - 🗑️ 删除货物 ### 4. 运输路线管理 - 🛣️ 路线列表 - ➕ 新增路线 (起止点、距离、预计时间) - ✏️ 编辑路线 - 🗑️ 删除路线 ### 5. 订单管理 - 📋 订单列表 (支持状态筛选) - ➕ 创建订单 - 👁️ 订单详情查看 - 🔄 订单状态跟踪 - 📝 订单日志记录 ### 6. 车辆调度 - 🚚 车辆列表 (按状态筛选) - ➕ 新增车辆 - ✏️ 编辑车辆 - 🔧 车辆状态管理 - 📦 车辆分配 ### 7. 客户管理 - 👥 客户列表 - ➕ 新增客户 - ✏️ 编辑客户信息 - 🗑️ 删除客户 ### 8. 报表统计 - 📊 订单统计分析 - 📈 车辆使用率统计 - 📉 订单状态分布 - 📅 时间维度统计 ### 9. 通知系统 - 🔔 实时通知推送 - 📬 订单状态变更通知 - ⚠️ 订单超时预警 - 🔧 车辆保养提醒 - 📢 系统公告 ## 🚀 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 8.0+ - Node.js 18+ - npm 或 yarn ### 1. 数据库配置 创建数据库并配置连接: ```sql CREATE DATABASE logistics DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 修改 `backend/src/main/resources/application.yml` 中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/logistics username: root # 修改为你的用户名 password: 123456 # 修改为你的密码 ``` ### 2. 启动后端 ```bash cd backend mvn spring-boot:run ``` 后端服务将在 `http://localhost:8080` 启动 ### 3. 启动前端 ```bash cd frontend npm install npm run dev ``` 前端服务将在 `http://localhost:5173` 启动 ### 4. 访问系统 打开浏览器访问 `http://localhost:5173`,使用默认账号登录: | 用户名 | 密码 | 角色 | |--------|------|------| | admin | admin123 | 管理员 | | zhangsan | admin123 | 普通用户 | | lisi | admin123 | 普通用户 | ## 📡 API 接口 ### 认证接口 | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/auth/login | 用户登录 | | POST | /api/auth/register | 用户注册 | ### 业务接口 | 模块 | 方法 | 路径 | 说明 | |------|------|------|------| | 货物 | GET/POST | /api/goods | 货物列表/创建 | | 货物 | PUT/DELETE | /api/goods/{id} | 编辑/删除 | | 路线 | GET/POST | /api/routes | 路线列表/创建 | | 路线 | PUT/DELETE | /api/routes/{id} | 编辑/删除 | | 订单 | GET/POST | /api/orders | 订单列表/创建 | | 订单 | PUT/DELETE | /api/orders/{id} | 编辑/删除 | | 车辆 | GET/POST | /api/vehicles | 车辆列表/创建 | | 车辆 | PUT/DELETE | /api/vehicles/{id} | 编辑/删除 | | 客户 | GET/POST | /api/customers | 客户列表/创建 | | 客户 | PUT/DELETE | /api/customers/{id} | 编辑/删除 | | 报表 | GET | /api/reports/statistics | 统计报表 | | 通知 | GET | /api/notifications | 通知列表 | | 通知 | PUT | /api/notifications/{id}/read | 标记已读 | 详细API文档请参考 [后端 README](./backend/README.md) ## 🔐 安全特性 - **JWT认证**: 使用JSON Web Token进行无状态认证 - **密码加密**: 使用BCrypt加密存储 - **角色权限**: 基于角色的访问控制 (RBAC) - **SQL注入防护**: 使用参数化查询 - **XSS防护**: 输入验证和转义 ## 📦 项目构建 ### 后端打包 ```bash cd backend mvn clean package -DskipTests ``` ### 前端打包 ```bash cd frontend npm run build ``` ## 🧪 测试账号 系统启动时会自动初始化测试数据: | 用户名 | 密码 | 角色 | 说明 | |--------|------|------|------| | admin | admin123 | ADMIN | 管理员,拥有所有权限 | | zhangsan | admin123 | USER | 普通用户,仅有查看权限 | | lisi | admin123 | USER | 普通用户,仅有查看权限 | ## 📝 更新日志 ### v1.0.0 (2024-01) - ✨ 初始版本发布 - ✅ 完成核心业务功能 - ✅ 实现用户认证系统 - ✅ 添加通知实时推送 - ✅ 集成报表统计图表 ## 📄 License MIT License ## 👨‍💻 作者 项目地址: https://gitee.com/kule111/logistics.git