5.4 KiB
5.4 KiB
出国登记状态显示修复完成 ✅
🐛 问题描述
现象: 前端列表显示"已提交",但应该显示"待审核"
原因: 后端代码中多处硬编码了旧的状态文本(已提交、已确认、已撤回),未同步更新为新的状态定义(待审核、已通过、已拒绝)
✅ 修复内容
1. Service层 - 状态文本转换(RsOverseasRegistrationServiceImpl.java)
位置: convertToVo() 方法
// 修复前:
case "1" -> vo.setStatusText("已提交");
case "2" -> vo.setStatusText("已确认");
case "3" -> vo.setStatusText("已撤回");
// 修复后:✅
case "1" -> vo.setStatusText("待审核");
case "2" -> vo.setStatusText("已通过");
case "3" -> vo.setStatusText("已拒绝");
2. Mapper XML - SQL查询状态转换(RsOverseasRegistrationMapper.xml)
位置: selectRegistrationVo SQL片段
-- 修复前:
WHEN '1' THEN '已提交'
WHEN '2' THEN '已确认'
WHEN '3' THEN '已撤回'
-- 修复后:✅
WHEN '1' THEN '待审核'
WHEN '2' THEN '已通过'
WHEN '3' THEN '已拒绝'
3. 业务逻辑注释(RsOverseasRegistrationServiceImpl.java)
删除验证
// 修复前:
// 校验:不能删除已提交或已确认的登记
throw new RuntimeException("不能删除已提交或已确认的出国登记!");
// 修复后:✅
// 校验:不能删除待审核或已通过的登记
throw new RuntimeException("不能删除待审核或已通过的出国登记!");
提交验证
// 修复前:
throw new RuntimeException("只有草稿或已撤回状态的登记才能提交!");
// 修复后:✅
throw new RuntimeException("只有草稿或已拒绝状态的登记才能提交!");
确认验证
// 修复前:
throw new RuntimeException("只有已提交状态的登记才能确认!");
// 修复后:✅
throw new RuntimeException("只有待审核状态的登记才能确认(通过)!");
撤回验证
// 修复前:
throw new RuntimeException("只有已提交状态的登记才能撤回!");
// 修复后:✅
throw new RuntimeException("只有待审核状态的登记才能撤回!");
4. 状态选项(RsOverseasRegistrationServiceImpl.java)
位置: getStatusOptions() 方法
// 修复前:
options.add(Map.of("value", "1", "label", "已提交"));
options.add(Map.of("value", "2", "label", "已确认"));
options.add(Map.of("value", "3", "label", "已撤回"));
// 修复后:✅
options.add(Map.of("value", "1", "label", "待审核"));
options.add(Map.of("value", "2", "label", "已通过"));
options.add(Map.of("value", "3", "label", "已拒绝"));
5. 注释(RsOverseasRegistrationServiceImpl.java)
// 修复前:
// 直接设置为已提交状态
add.setStatus("1"); // 已提交
// 修复后:✅
// 直接设置为待审核状态
add.setStatus("1"); // 待审核
📁 修改的文件
-
✅
backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/impl/RsOverseasRegistrationServiceImpl.java- 状态文本转换(convertToVo方法)
- 业务逻辑验证注释(4处)
- 状态选项(getStatusOptions方法)
- 提交注释(insertAndSubmitByBo方法)
-
✅
backend/ruoyi-modules/ruoyi-rs/src/main/resources/mapper/rs/RsOverseasRegistrationMapper.xml- SQL CASE语句中的状态文本
🔄 正确的状态定义
| 状态值 | 状态名称 | 标签颜色 | 说明 |
|---|---|---|---|
| 0 | 草稿 | ⚪ info | 初始创建,未提交 |
| 1 | 待审核 | 🟠 warning | ✅ 提交后的状态,等待审批 |
| 2 | 已通过 | 🟢 success | 审批通过 |
| 3 | 已拒绝 | 🔴 danger | 审批拒绝 |
✅ 验证结果
- ✅ 后端代码编译成功
- ✅ 所有硬编码的状态文本已更新
- ✅ 业务逻辑注释已更新
- ✅ SQL查询已更新
- ✅ 状态选项已更新
🚀 部署步骤
-
重启后端服务
cd backend/ruoyi-admin mvn clean package -DskipTests # 重启服务 -
清除浏览器缓存
- Windows:
Ctrl + F5 - Mac:
Cmd + Shift + R
- Windows:
-
验证显示
- 访问:http://localhost/rs/overseasRegistration
- 提交一条登记
- 确认状态显示为"待审核"(橙色标签)
📊 状态显示对照表
前端显示
| 数据库值 | 旧显示(错误) | 新显示(正确) | 标签颜色 |
|---|---|---|---|
| 0 | 草稿 | 草稿 | ⚪ 灰色 |
| 1 | ✅ 待审核 | 🟠 橙色 | |
| 2 | ✅ 已通过 | 🟢 绿色 | |
| 3 | ✅ 已拒绝 | 🔴 红色 |
🎯 关键要点
- 状态值不变:仍然是 0, 1, 2, 3
- 只改显示:改的是
statusText字段的值 - 全面修复:包括 Service、Mapper、注释、验证消息
- 保持一致:与出国申请模块的状态定义完全一致
📝 影响范围
用户可见变化
- ✅ 列表页状态列显示"待审核"而不是"已提交"
- ✅ 详情页状态标签显示"待审核"
- ✅ 所有错误提示消息更新为正确术语
不变内容
- ✅ 数据库中的状态值不变
- ✅ 状态流转逻辑不变
- ✅ 权限控制不变
修复完成时间: 2025-10-05 17:25
修复状态: ✅ 已完成
验证状态: ⏳ 待重启服务后验证
编译状态: ✅ BUILD SUCCESS