Initial commit: Car Maintenance Management System
Author: Yang Lu School: Liaoning Institute of Science and Technology Major: Computer Science and Technology Class: BZ246 Tech Stack: - Backend: Spring Boot 2.7.18 + JPA + MySQL - Frontend: HTML5 + CSS3 + JavaScript Features: - User Management (Admin/Staff/Customer roles) - Vehicle Archive Management - Service Order Management - Parts Inventory Management - Online Appointment Service - Data Statistics and Analysis Generated with Claude Code Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
489
README.md
Normal file
489
README.md
Normal file
@@ -0,0 +1,489 @@
|
||||
# 车管家4S店车辆维保管理系统
|
||||
|
||||
## 项目简介
|
||||
|
||||
基于 Spring Boot 与原生 HTML+CSS+JavaScript 的前后端分离技术,开发的功能完善的 B/S 架构车辆维保(4S 店)管理系统。该系统旨在为 4S 店提供一个集客户管理、车辆档案、维保流程、配件库存等功能于一体的高效信息化管理平台,同时为车主提供便捷的在线预约与查询服务。
|
||||
|
||||
**作者**: 杨璐
|
||||
**学校**: 辽宁科技学院
|
||||
**专业**: 计算机科学与技术
|
||||
**班级**: 计BZ246
|
||||
**学号**: 74133240622
|
||||
**指导教师**: 刘慧宇
|
||||
**日期**: 2025年1月
|
||||
|
||||
---
|
||||
|
||||
## 技术栈
|
||||
|
||||
### 后端技术
|
||||
- **Spring Boot 2.7.18** - 核心框架
|
||||
- **Spring Data JPA** - 数据访问层
|
||||
- **MySQL 8.0** - 关系型数据库
|
||||
- **Maven** - 项目管理工具
|
||||
- **Lombok** - 简化Java代码
|
||||
- **FastJSON** - JSON处理
|
||||
|
||||
### 前端技术
|
||||
- **HTML5** - 页面结构
|
||||
- **CSS3** - 样式设计
|
||||
- **JavaScript (ES6)** - 交互逻辑
|
||||
- **Fetch API** - HTTP请求
|
||||
|
||||
### 开发工具
|
||||
- **IntelliJ IDEA / Eclipse** - 后端开发IDE
|
||||
- **VS Code** - 前端开发编辑器
|
||||
- **MySQL Workbench** - 数据库管理
|
||||
- **Postman** - API测试
|
||||
|
||||
---
|
||||
|
||||
## 系统功能
|
||||
|
||||
### 1. 用户管理
|
||||
- 用户注册与登录
|
||||
- 角色管理(管理员、工作人员、客户)
|
||||
- 用户信息维护
|
||||
- 密码修改
|
||||
|
||||
### 2. 客户管理
|
||||
- 客户档案管理
|
||||
- 会员等级管理
|
||||
- 积分管理
|
||||
- 客户信息查询
|
||||
|
||||
### 3. 车辆档案管理
|
||||
- 车辆信息登记
|
||||
- 车辆档案查询
|
||||
- 车辆保养记录
|
||||
- 里程数管理
|
||||
|
||||
### 4. 维保工单管理
|
||||
- 工单创建与分配
|
||||
- 工单流转跟踪
|
||||
- 故障诊断记录
|
||||
- 费用计算
|
||||
- 工单状态管理
|
||||
|
||||
### 5. 配件库存管理
|
||||
- 配件信息管理
|
||||
- 库存数量管理
|
||||
- 库存预警
|
||||
- 配件出入库记录
|
||||
|
||||
### 6. 预约管理
|
||||
- 在线预约服务
|
||||
- 预约确认
|
||||
- 预约查询
|
||||
- 预约取消
|
||||
|
||||
---
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
car-maintenance-system/
|
||||
├── backend/ # Spring Boot后端
|
||||
│ ├── src/
|
||||
│ │ ├── main/
|
||||
│ │ │ ├── java/
|
||||
│ │ │ │ └── com/
|
||||
│ │ │ │ └── carmaintenance/
|
||||
│ │ │ │ ├── CarMaintenanceApplication.java # 主应用程序
|
||||
│ │ │ │ ├── config/ # 配置类
|
||||
│ │ │ │ │ └── WebConfig.java
|
||||
│ │ │ │ ├── controller/ # 控制器层
|
||||
│ │ │ │ │ ├── AuthController.java
|
||||
│ │ │ │ │ ├── UserController.java
|
||||
│ │ │ │ │ ├── VehicleController.java
|
||||
│ │ │ │ │ ├── ServiceOrderController.java
|
||||
│ │ │ │ │ ├── PartsInventoryController.java
|
||||
│ │ │ │ │ └── AppointmentController.java
|
||||
│ │ │ │ ├── dto/ # 数据传输对象
|
||||
│ │ │ │ │ ├── Result.java
|
||||
│ │ │ │ │ ├── LoginRequest.java
|
||||
│ │ │ │ │ └── LoginResponse.java
|
||||
│ │ │ │ ├── entity/ # 实体类
|
||||
│ │ │ │ │ ├── User.java
|
||||
│ │ │ │ │ ├── Customer.java
|
||||
│ │ │ │ │ ├── Vehicle.java
|
||||
│ │ │ │ │ ├── ServiceOrder.java
|
||||
│ │ │ │ │ ├── PartsInventory.java
|
||||
│ │ │ │ │ ├── Appointment.java
|
||||
│ │ │ │ │ └── ServiceItem.java
|
||||
│ │ │ │ └── repository/ # 数据访问层
|
||||
│ │ │ │ ├── UserRepository.java
|
||||
│ │ │ │ ├── CustomerRepository.java
|
||||
│ │ │ │ ├── VehicleRepository.java
|
||||
│ │ │ │ ├── ServiceOrderRepository.java
|
||||
│ │ │ │ ├── PartsInventoryRepository.java
|
||||
│ │ │ │ ├── AppointmentRepository.java
|
||||
│ │ │ │ └── ServiceItemRepository.java
|
||||
│ │ │ └── resources/
|
||||
│ │ │ └── application.properties # 应用配置
|
||||
│ │ └── test/
|
||||
│ └── pom.xml # Maven配置
|
||||
│
|
||||
├── frontend/ # HTML+CSS+JS前端
|
||||
│ ├── admin/ # 管理员界面
|
||||
│ │ └── dashboard.html
|
||||
│ ├── staff/ # 工作人员界面
|
||||
│ │ └── dashboard.html
|
||||
│ ├── customer/ # 客户界面
|
||||
│ │ └── dashboard.html
|
||||
│ ├── css/ # 样式文件
|
||||
│ │ ├── common.css # 通用样式
|
||||
│ │ ├── login.css # 登录页样式
|
||||
│ │ └── dashboard.css # 仪表板样式
|
||||
│ ├── js/ # JavaScript文件
|
||||
│ │ ├── config.js # 配置文件
|
||||
│ │ ├── api.js # API调用工具
|
||||
│ │ ├── login.js # 登录逻辑
|
||||
│ │ └── admin-dashboard.js # 管理员仪表板逻辑
|
||||
│ └── login.html # 登录页面
|
||||
│
|
||||
├── database/ # 数据库脚本
|
||||
│ ├── schema.sql # 表结构SQL
|
||||
│ └── data.sql # 初始数据SQL
|
||||
│
|
||||
└── README.md # 项目说明文档
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 数据库设计
|
||||
|
||||
### 主要数据表
|
||||
|
||||
1. **users** - 用户表
|
||||
2. **customers** - 客户信息表
|
||||
3. **vehicles** - 车辆档案表
|
||||
4. **service_orders** - 维保工单表
|
||||
5. **parts_inventory** - 配件库存表
|
||||
6. **parts_usage** - 配件使用记录表
|
||||
7. **appointments** - 预约记录表
|
||||
8. **service_items** - 服务项目表
|
||||
9. **system_logs** - 系统日志表
|
||||
|
||||
### ER图说明
|
||||
|
||||
```
|
||||
用户(User) 1---N 客户(Customer)
|
||||
客户(Customer) 1---N 车辆(Vehicle)
|
||||
车辆(Vehicle) 1---N 维保工单(ServiceOrder)
|
||||
客户(Customer) 1---N 维保工单(ServiceOrder)
|
||||
工单(ServiceOrder) N---N 配件(PartsInventory) [通过parts_usage]
|
||||
客户(Customer) 1---N 预约(Appointment)
|
||||
车辆(Vehicle) 1---N 预约(Appointment)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 安装与部署
|
||||
|
||||
### 环境要求
|
||||
|
||||
- **JDK**: 1.8 或更高版本
|
||||
- **Maven**: 3.6 或更高版本
|
||||
- **MySQL**: 8.0 或更高版本
|
||||
- **浏览器**: Chrome、Firefox、Edge 等现代浏览器
|
||||
|
||||
### 1. 数据库配置
|
||||
|
||||
#### 创建数据库
|
||||
|
||||
```bash
|
||||
# 登录MySQL
|
||||
mysql -u root -p
|
||||
|
||||
# 执行数据库脚本
|
||||
source database/schema.sql
|
||||
source database/data.sql
|
||||
```
|
||||
|
||||
或者直接在MySQL客户端中执行:
|
||||
|
||||
```sql
|
||||
-- 创建数据库
|
||||
CREATE DATABASE car_maintenance_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- 导入schema.sql和data.sql文件内容
|
||||
```
|
||||
|
||||
#### 修改数据库连接配置
|
||||
|
||||
编辑 `backend/src/main/resources/application.properties`:
|
||||
|
||||
```properties
|
||||
spring.datasource.url=jdbc:mysql://localhost:3306/car_maintenance_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
|
||||
spring.datasource.username=root
|
||||
spring.datasource.password=你的密码
|
||||
```
|
||||
|
||||
### 2. 后端部署
|
||||
|
||||
#### 方式一:使用IDE运行
|
||||
|
||||
1. 使用 IntelliJ IDEA 或 Eclipse 打开 `backend` 文件夹
|
||||
2. 等待 Maven 依赖下载完成
|
||||
3. 运行 `CarMaintenanceApplication.java` 主类
|
||||
4. 看到 "车管家4S店车辆维保管理系统启动成功!" 表示启动成功
|
||||
5. 后端服务地址:http://localhost:8080/api
|
||||
|
||||
#### 方式二:使用Maven命令行
|
||||
|
||||
```bash
|
||||
# 进入backend目录
|
||||
cd backend
|
||||
|
||||
# 清理并打包
|
||||
mvn clean package
|
||||
|
||||
# 运行jar包
|
||||
java -jar target/car-maintenance-system-1.0.0.jar
|
||||
```
|
||||
|
||||
### 3. 前端部署
|
||||
|
||||
#### 开发环境(使用Live Server)
|
||||
|
||||
1. 使用 VS Code 打开 `frontend` 文件夹
|
||||
2. 安装 Live Server 插件
|
||||
3. 右键点击 `login.html`,选择 "Open with Live Server"
|
||||
4. 浏览器自动打开:http://localhost:5500/login.html
|
||||
|
||||
#### 生产环境(使用Nginx)
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name yourdomain.com;
|
||||
|
||||
root /path/to/car-maintenance-system/frontend;
|
||||
index login.html;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
# 代理后端API请求
|
||||
location /api/ {
|
||||
proxy_pass http://localhost:8080/api/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 使用说明
|
||||
|
||||
### 演示账号
|
||||
|
||||
系统提供了以下演示账号供测试使用:
|
||||
|
||||
| 角色 | 用户名 | 密码 | 说明 |
|
||||
|------|--------|------|------|
|
||||
| 管理员 | admin | 123456 | 拥有所有权限 |
|
||||
| 工作人员 | staff001 | 123456 | 处理工单和维保 |
|
||||
| 客户 | customer001 | 123456 | 查看车辆和预约 |
|
||||
|
||||
### 登录流程
|
||||
|
||||
1. 打开浏览器访问系统首页
|
||||
2. 输入用户名和密码
|
||||
3. 选择对应的登录角色
|
||||
4. 点击"登录"按钮
|
||||
5. 系统自动跳转到对应角色的仪表板
|
||||
|
||||
### 管理员功能
|
||||
|
||||
- **系统概览**: 查看系统统计数据
|
||||
- **用户管理**: 管理所有系统用户
|
||||
- **车辆管理**: 管理所有车辆档案
|
||||
- **工单管理**: 管理所有维保工单
|
||||
- **配件管理**: 管理配件库存
|
||||
- **预约管理**: 管理客户预约
|
||||
|
||||
### 工作人员功能
|
||||
|
||||
- 查看分配给自己的工单
|
||||
- 更新工单状态
|
||||
- 记录维修诊断
|
||||
- 添加使用配件
|
||||
- 完成工单
|
||||
|
||||
### 客户功能
|
||||
|
||||
- 查看自己的车辆
|
||||
- 查看维保记录
|
||||
- 在线预约服务
|
||||
- 查看预约状态
|
||||
- 查询工单进度
|
||||
|
||||
---
|
||||
|
||||
## API接口文档
|
||||
|
||||
### 认证接口
|
||||
|
||||
#### 用户登录
|
||||
```
|
||||
POST /api/auth/login
|
||||
Content-Type: application/json
|
||||
|
||||
Request Body:
|
||||
{
|
||||
"username": "admin",
|
||||
"password": "123456"
|
||||
}
|
||||
|
||||
Response:
|
||||
{
|
||||
"code": 200,
|
||||
"message": "登录成功",
|
||||
"data": {
|
||||
"token": "TOKEN_1_1704614400000",
|
||||
"userInfo": {
|
||||
"userId": 1,
|
||||
"username": "admin",
|
||||
"realName": "系统管理员",
|
||||
"phone": "13800138000",
|
||||
"email": "admin@carmaintenance.com",
|
||||
"role": "admin"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 车辆管理接口
|
||||
|
||||
#### 获取所有车辆
|
||||
```
|
||||
GET /api/vehicles
|
||||
Authorization: Bearer {token}
|
||||
|
||||
Response:
|
||||
{
|
||||
"code": 200,
|
||||
"message": "操作成功",
|
||||
"data": [...]
|
||||
}
|
||||
```
|
||||
|
||||
#### 根据ID获取车辆
|
||||
```
|
||||
GET /api/vehicles/{id}
|
||||
Authorization: Bearer {token}
|
||||
```
|
||||
|
||||
#### 创建车辆
|
||||
```
|
||||
POST /api/vehicles
|
||||
Content-Type: application/json
|
||||
Authorization: Bearer {token}
|
||||
|
||||
Request Body:
|
||||
{
|
||||
"customerId": 1,
|
||||
"licensePlate": "京A12345",
|
||||
"brand": "奔驰",
|
||||
"model": "C200L",
|
||||
"color": "黑色",
|
||||
"vin": "LBVCU31J7DR123456"
|
||||
}
|
||||
```
|
||||
|
||||
### 工单管理接口
|
||||
|
||||
#### 获取所有工单
|
||||
```
|
||||
GET /api/orders
|
||||
Authorization: Bearer {token}
|
||||
```
|
||||
|
||||
#### 创建工单
|
||||
```
|
||||
POST /api/orders
|
||||
Content-Type: application/json
|
||||
Authorization: Bearer {token}
|
||||
|
||||
Request Body:
|
||||
{
|
||||
"vehicleId": 1,
|
||||
"customerId": 1,
|
||||
"serviceType": "maintenance",
|
||||
"appointmentTime": "2025-01-10T09:00:00",
|
||||
"faultDescription": "车辆到5000公里,需要小保养"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 1. 后端启动失败
|
||||
|
||||
**问题**: 端口被占用
|
||||
**解决**: 修改 `application.properties` 中的 `server.port` 为其他端口
|
||||
|
||||
**问题**: 数据库连接失败
|
||||
**解决**: 检查MySQL是否启动,确认用户名密码是否正确
|
||||
|
||||
### 2. 前端无法连接后端
|
||||
|
||||
**问题**: CORS跨域错误
|
||||
**解决**: 检查 `WebConfig.java` 中的CORS配置,确保前端地址在允许列表中
|
||||
|
||||
**问题**: API请求404
|
||||
**解决**: 确认后端服务已启动,检查 `config.js` 中的 `BASE_URL` 配置
|
||||
|
||||
### 3. 登录失败
|
||||
|
||||
**问题**: 用户名或密码错误
|
||||
**解决**: 使用演示账号,或检查数据库中的用户数据
|
||||
|
||||
---
|
||||
|
||||
## 开发团队
|
||||
|
||||
**作者**: 杨璐
|
||||
**学校**: 辽宁科技学院
|
||||
**专业**: 计算机科学与技术
|
||||
**班级**: 计BZ246
|
||||
**指导教师**: 刘慧宇
|
||||
|
||||
---
|
||||
|
||||
## 许可证
|
||||
|
||||
本项目为毕业设计作品,仅供学习和研究使用。
|
||||
|
||||
---
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v1.0.0 (2025-01-07)
|
||||
- 完成系统架构设计
|
||||
- 实现用户认证功能
|
||||
- 实现车辆档案管理
|
||||
- 实现维保工单管理
|
||||
- 实现配件库存管理
|
||||
- 实现预约管理功能
|
||||
- 完成前端页面设计
|
||||
- 完成数据库设计
|
||||
|
||||
---
|
||||
|
||||
## 联系方式
|
||||
|
||||
如有问题或建议,请联系:
|
||||
|
||||
- 邮箱: 学生邮箱
|
||||
- 学校: 辽宁科技学院
|
||||
- 院系: 电子与信息工程学院
|
||||
|
||||
---
|
||||
|
||||
**祝使用愉快!**
|
||||
Reference in New Issue
Block a user