编辑 | blame | 历史 | 原始文档

旧系统同步功能 - 快速开始指南

🚀 5分钟快速配置

步骤1: 执行数据库脚本 (1分钟)

cd d:/project/急救转运/code/Api/RuoYi-Vue-master
mysql -u root -p ruoyi < sql/add_legacy_system_id.sql

或者在MySQL客户端中执行:
sql source d:/project/急救转运/code/Api/RuoYi-Vue-master/sql/add_legacy_system_id.sql

步骤2: 配置旧系统URL (1分钟)

编辑 ruoyi-admin/src/main/resources/application.yml,添加:

# 旧系统配置
legacy:
  system:
    base-url: http://your-legacy-system-url  # 修改为实际的旧系统地址
    enabled: true

示例:
yaml # 旧系统配置 legacy: system: base-url: http://192.168.1.100:8080 enabled: true

步骤3: 重启应用 (1分钟)

# 停止应用
# ... (根据你的启动方式停止)

# 重新启动应用
cd ruoyi-admin
mvn spring-boot:run

# 或者
java -jar ruoyi-admin.jar

步骤4: 配置定时任务 (2分钟)

  1. 登录后台管理系统
  2. 进入 系统管理 -> 定时任务
  3. 点击 新增 按钮
  4. 填写以下信息:
任务名称: 旧系统任务同步
任务组名: DEFAULT
调用目标字符串: legacySystemSyncTask.syncPendingTasks()
cron表达式: 0 0/10 * * * ?
  1. 点击 确定 保存
  2. 在任务列表中找到刚创建的任务,点击 执行一次 测试

步骤5: 验证同步 (1分钟)

方法1: 创建测试任务

  1. 在移动端或管理后台创建一个急救转运任务
  2. 等待2-3秒
  3. 在数据库中查询:
SELECT 
    t.task_id,
    t.task_code,
    e.sync_status,
    e.legacy_service_ord_id,
    e.sync_error_msg
FROM sys_task t
JOIN sys_task_emergency e ON t.task_id = e.task_id
WHERE t.task_type = 'EMERGENCY_TRANSFER'
ORDER BY t.create_time DESC
LIMIT 1;

方法2: 查看日志

# Linux
tail -f logs/sys-info.log | grep "LegacySystemSync"

# Windows (在日志文件中搜索)
# 搜索关键词: LegacySystemSyncServiceImpl

同步状态说明

sync_status 说明 是否正常
0 未同步 ⏳ 等待同步
1 同步中 ⏳ 正在同步
2 同步成功 ✅ 正常
3 同步失败 ❌ 需处理

🔧 常见问题

Q1: 同步状态一直是0

原因: 自动同步未触发或定时任务未启动

解决:
1. 检查 legacy.system.enabled 是否为 true
2. 在定时任务中点击"执行一次"
3. 查看日志是否有异常

Q2: 同步失败 (status=3)

原因: 旧系统URL错误或网络不通

解决:
1. 检查 legacy.system.base-url 配置
2. 查看 sync_error_msg 字段的错误信息
3. 测试网络: curl http://旧系统地址/admin_save_19.gds

Q3: 如何手动重新同步

-- 将同步状态重置为0
UPDATE sys_task_emergency 
SET sync_status = 0, 
    sync_error_msg = NULL
WHERE task_id = <任务ID>;

-- 然后执行定时任务或等待自动同步

Q4: 如何临时禁用同步

方法1 - 修改配置 (推荐):
yaml legacy: system: enabled: false

方法2 - 停止定时任务:
系统管理 -> 定时任务 中,将任务状态改为"暂停"


📊 监控查询

查看同步统计

SELECT 
    CASE sync_status
        WHEN 0 THEN '未同步'
        WHEN 1 THEN '同步中'
        WHEN 2 THEN '同步成功'
        WHEN 3 THEN '同步失败'
    END AS 状态,
    COUNT(*) AS 数量
FROM sys_task_emergency
GROUP BY sync_status;

查看最近10次同步记录

SELECT 
    t.task_code AS 任务编号,
    e.sync_status AS 同步状态,
    e.legacy_service_ord_id AS 旧系统ID,
    e.sync_time AS 同步时间,
    e.sync_error_msg AS 错误信息
FROM sys_task t
JOIN sys_task_emergency e ON t.task_id = e.task_id
ORDER BY e.sync_time DESC
LIMIT 10;

📞 获取帮助

如果遇到问题:
1. 查看详细文档: 旧系统同步配置说明.md
2. 检查日志文件: logs/sys-info.log
3. 联系系统管理员


✅ 配置检查清单

  • [ ] 数据库脚本已执行
  • [ ] application.yml 已配置 legacy.system.base-url
  • [ ] legacy.system.enabled 设置为 true
  • [ ] 应用已重启
  • [ ] 定时任务已创建且状态为"正常"
  • [ ] 已测试创建任务并验证同步
  • [ ] 日志中无错误信息

全部完成后,旧系统同步功能即可正常运行!🎉