在 ruoyi-ui 项目的任务列表和任务详情页面中,新增了旧系统同步状态及相关单号的显示功能,方便管理员实时查看急救转运任务与旧系统的同步情况。
文件路径: ruoyi-ui/src/views/task/general/index.vue
修改内容:
- 新增 hasEmergencyTask 数据属性,用于判断列表中是否包含急救转运任务
- 新增 同步状态 列,显示服务单同步状态(未同步、同步中、已同步、同步失败)
- 新增 服务单号 列,显示旧系统返回的 ServiceOrdID
- 新增 调度单号 列,显示旧系统返回的 DispatchOrdID
- 这些列仅在列表中存在急救转运任务时显示(v-if="hasEmergencyTask")
文件路径: ruoyi-ui/src/views/task/general/detail.vue
修改内容:
- 新增 旧系统同步信息 描述列表区域
- 显示服务单同步状态、服务单号、同步时间、同步错误信息
- 显示调度单同步状态、调度单号、同步时间、同步错误信息
- 该区域仅在急救转运任务详情页显示
| 状态值 | 含义 | 图标颜色 | 显示文本 |
|---|---|---|---|
| 0 | 未同步 | 灰色(info) | 未同步 |
| 1 | 同步中 | 橙色(warning) | 同步中 |
| 2 | 同步成功 | 绿色(success) | 已同步/同步成功 |
| 3 | 同步失败 | 红色(danger) | 同步失败 |
服务单同步 (syncStatus):
- 对应旧系统 admin_save_19.gds 接口
- 同步成功后返回 ServiceOrdID,存储在 legacy_service_ord_id 字段
- 由 LegacySystemSyncTask.syncPendingTasks() 定时任务执行
调度单同步 (dispatchSyncStatus):
- 对应旧系统 admin_save_24.asp 接口
- 同步成功后返回 DispatchOrdID,存储在 legacy_dispatch_ord_id 字段
- 由 LegacySystemSyncTask.syncPendingDispatchOrders() 定时任务执行
- 依赖服务单同步完成后才能执行
SysTask 实体 (sys_task 表):
- legacySynced: 旧系统同步标记(0-未同步,1-已同步)
SysTaskEmergency 实体 (sys_task_emergency 表):
服务单相关:
- legacyServiceOrdId: 旧系统服务单ID
- syncStatus: 服务单同步状态
- syncTime: 服务单同步时间
- syncErrorMsg: 服务单同步错误信息
调度单相关:
- legacyDispatchOrdId: 旧系统调度单ID
- dispatchSyncStatus: 调度单同步状态
- dispatchSyncTime: 调度单同步时间
- dispatchSyncErrorMsg: 调度单同步错误信息
在任务列表中:
```javascript
// 同步状态
scope.row.emergencyInfo.syncStatus
scope.row.emergencyInfo.dispatchSyncStatus
// 单号
scope.row.emergencyInfo.legacyServiceOrdId
scope.row.emergencyInfo.legacyDispatchOrdId
```
在任务详情中:
```javascript
// 服务单同步信息
taskDetail.emergencyInfo.syncStatus
taskDetail.emergencyInfo.legacyServiceOrdId
taskDetail.emergencyInfo.syncTime
taskDetail.emergencyInfo.syncErrorMsg
// 调度单同步信息
taskDetail.emergencyInfo.dispatchSyncStatus
taskDetail.emergencyInfo.legacyDispatchOrdId
taskDetail.emergencyInfo.dispatchSyncTime
taskDetail.emergencyInfo.dispatchSyncErrorMsg
```
--emergencyInfo 字段判断:emergencyInfo 为空,显示 --emergencyInfo 存在,根据对应字段显示具体内容taskDetail.taskType === 'EMERGENCY_TRANSFER' && taskDetail.emergencyInfo--管理员可以在任务列表中快速查看哪些急救转运任务已完成与旧系统的同步,哪些同步失败需要处理。
当同步失败时,可以在任务详情页查看详细的错误信息,帮助技术人员定位问题。
通过服务单号和调度单号,可以在旧系统中查询对应的单据,实现新旧系统数据的双向追溯。
sys_task_emergency 表,确保 Mapper XML 中已正确配置关联查询Cron 表达式:
- 服务单同步: 0 */10 * * * ? (每10分钟执行一次)
- 调度单同步: 0 5,15,25,35,45,55 * * * ? (每小时的5、15、25、35、45、55分执行)
配置位置: ruoyi-quartz 模块
任务逻辑:
1. 查询未同步或同步失败的急救转运任务
2. 调用旧系统 ASP 接口
3. 更新同步状态和单号
4. 记录同步时间和错误信息
文档版本: v1.0
创建日期: 2025-01-XX
最后更新: 2025-01-XX
维护人员: 系统管理员