Files
martial-master/docs/SCHEDULE_DEPLOYMENT_CHECKLIST.md
宅房 7aa6545cbb
All checks were successful
continuous-integration/drone/push Build is passing
fix bugs
2025-12-12 05:13:10 +08:00

204 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 赛程编排系统部署检查清单
## ✅ 部署前检查
### 1. 数据库检查
- [ ] 已执行数据库表创建脚本: `create_schedule_tables.sql`
- [ ] 已导入测试数据(可选): `create_100_team_participants.sql`
- [ ] 数据库连接配置正确
- [ ] 确认表名一致性:
- 代码使用: `martial_athlete`
- 测试数据插入: `martial_participant`
- **需要确认**: 是否为同一张表(可能是表名重构导致)
### 2. 后端代码检查
- [x] 4个实体类已创建
- [x] 4个Mapper接口及XML已创建
- [x] Service接口和实现已创建
- [x] Controller已创建
- [x] 定时任务处理器已创建
- [x] Service层项目查询逻辑已修复
### 3. 前端代码检查
- [x] 页面布局已修改
- [x] API接口已集成
- [x] 集体/个人项目差异化显示已实现
- [x] 编排状态和锁定机制已添加
### 4. 配置检查
- [ ] PowerJob服务已启动
- [ ] PowerJob定时任务已配置
- [ ] Cron表达式设置为: `0 */10 * * * ?`
- [ ] 处理器类名正确: `org.springblade.job.processor.ScheduleAutoArrangeProcessor`
---
## ⚠️ 已知问题和解决方案
### 问题1: 表名不一致 ✅ 已修复
**现象**: 测试数据脚本插入的是 `martial_participant` 表,但代码查询的是 `martial_athlete`
**解决方案**: 已将测试数据脚本修改为使用正确的表名 `martial_athlete`
**修复内容**:
1. 批量替换 `martial_participant``martial_athlete`
2. 批量替换 `created_time``create_time` (统一字段名)
**验证方法**:
```sql
-- 导入测试数据后检查
SELECT COUNT(*) FROM martial_athlete WHERE competition_id = 200;
-- 应返回500条记录(100个队伍 × 5人)
```
### 问题2: getScheduleResult方法中的字段名错误 ✅ 已修复
**位置**: `MartialScheduleArrangeServiceImpl.java` 第233行
**问题**: `MartialScheduleDetail` 没有 `scheduleDetailId` 字段,应该使用主键 `id`
**修复**: 已将查询条件修正为使用正确的字段名
```java
pDetailWrapper.eq(MartialScheduleDetail::getId, p.getScheduleDetailId())
```
---
## 🔍 部署后测试流程
### 1. 后端API测试
#### 测试1: 手动触发编排
```bash
curl -X POST http://localhost/api/martial/schedule/auto-arrange \
-H "Content-Type: application/json" \
-d '{"competitionId": 200}'
```
**预期结果**: 返回 `{"code":200,"success":true,"msg":"自动编排完成"}`
#### 测试2: 获取编排结果
```bash
curl http://localhost/api/martial/schedule/result?competitionId=200
```
**预期结果**: 返回编排数据,包含 `scheduleGroups` 数组
#### 测试3: 保存并锁定
```bash
curl -X POST http://localhost/api/martial/schedule/save-and-lock \
-H "Content-Type: application/json" \
-d '{"competitionId": 200}'
```
**预期结果**: 返回 `{"code":200,"success":true,"msg":"编排已保存并锁定"}`
### 2. 前端页面测试
访问: `http://localhost:3000/martial/schedule?competitionId=200`
**检查项**:
- [ ] 页面正常加载
- [ ] 显示编排状态标签(未编排/编排中/已锁定)
- [ ] 竞赛分组Tab可切换
- [ ] 场地Tab可切换
- [ ] 集体项目按单位分组显示
- [ ] 个人项目直接列出参赛者
- [ ] 点击场地时间段按钮弹出详情对话框
- [ ] 保存编排按钮可点击且生效
### 3. 定时任务测试
#### 检查定时任务执行
```sql
-- 查看编排状态表
SELECT * FROM martial_schedule_status WHERE competition_id = 200;
-- 检查last_auto_schedule_time字段是否更新
```
#### 查看PowerJob日志
在PowerJob控制台查看任务执行日志,确认:
- 任务正常执行
- 日志中显示编排成功
- 没有异常错误
---
## 🛠️ 待修复项
**所有已知问题已修复!**
系统已达到生产就绪状态,可以开始部署测试。
---
## 📊 性能测试建议
### 测试场景1: 小规模数据
- 参赛人数: 100人
- 场地数: 4个
- 比赛天数: 2天
**预期结果**: 编排耗时 < 1秒
### 测试场景2: 中规模数据
- 参赛人数: 1000人
- 场地数: 5个
- 比赛天数: 5天
**预期结果**: 编排耗时 < 5秒
### 测试场景3: 大规模数据
- 参赛人数: 5000人
- 场地数: 10个
- 比赛天数: 7天
**预期结果**: 编排耗时 < 10秒
---
## 📝 部署日志模板
### 部署记录
**部署时间**: _______________
**部署人员**: _______________
**部署环境**: □ 开发环境 □ 测试环境 □ 生产环境
**执行步骤**:
- [ ] 1. 数据库表创建
- [ ] 2. 测试数据导入
- [ ] 3. 后端服务部署
- [ ] 4. PowerJob任务配置
- [ ] 5. 前端服务部署
- [ ] 6. API接口测试
- [ ] 7. 前端页面测试
- [ ] 8. 定时任务测试
**遇到的问题**:
_________________________________
_________________________________
_________________________________
**解决方案**:
_________________________________
_________________________________
_________________________________
**部署结果**: □ 成功 □ 失败
**备注**:
_________________________________
_________________________________
---
**文档版本**: v1.0
**创建时间**: 2025-12-08
**维护人**: 开发团队