# 旧系统同步功能 - 快速开始指南 ## 🚀 5分钟快速配置 ### 步骤1: 执行数据库脚本 (1分钟) ```bash 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`,添加: ```yaml # 旧系统配置 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分钟) ```bash # 停止应用 # ... (根据你的启动方式停止) # 重新启动应用 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 * * * ? ``` 5. 点击 `确定` 保存 6. 在任务列表中找到刚创建的任务,点击 `执行一次` 测试 ### 步骤5: 验证同步 (1分钟) #### 方法1: 创建测试任务 1. 在移动端或管理后台创建一个急救转运任务 2. 等待2-3秒 3. 在数据库中查询: ```sql 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: 查看日志 ```bash # 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: 如何手动重新同步 ```sql -- 将同步状态重置为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 - 停止定时任务: 在 `系统管理` -> `定时任务` 中,将任务状态改为"暂停" --- ## 📊 监控查询 ### 查看同步统计 ```sql 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次同步记录 ```sql 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](./旧系统同步配置说明.md) 2. 检查日志文件: `logs/sys-info.log` 3. 联系系统管理员 --- ## ✅ 配置检查清单 - [ ] 数据库脚本已执行 - [ ] `application.yml` 已配置 `legacy.system.base-url` - [ ] `legacy.system.enabled` 设置为 `true` - [ ] 应用已重启 - [ ] 定时任务已创建且状态为"正常" - [ ] 已测试创建任务并验证同步 - [ ] 日志中无错误信息 全部完成后,旧系统同步功能即可正常运行!🎉