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:
wangziqi
2026-01-07 14:28:50 +08:00
commit cfae122685
45 changed files with 5447 additions and 0 deletions

489
README.md Normal file
View 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)
- 完成系统架构设计
- 实现用户认证功能
- 实现车辆档案管理
- 实现维保工单管理
- 实现配件库存管理
- 实现预约管理功能
- 完成前端页面设计
- 完成数据库设计
---
## 联系方式
如有问题或建议,请联系:
- 邮箱: 学生邮箱
- 学校: 辽宁科技学院
- 院系: 电子与信息工程学院
---
**祝使用愉快!**