| | |
| | | package com.ruoyi.quartz.task; |
| | | |
| | | import com.ruoyi.system.service.ITaskAttachmentSyncService; |
| | | import com.ruoyi.system.service.IPaymentSyncService; |
| | | import com.ruoyi.system.service.IAdditionalFeeSyncService; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | * |
| | | * @author ruoyi |
| | | * @date 2024-01-20 |
| | | * |
| | | * 相关任务: |
| | | * 1. LegacySystemSyncTask - 旧系统任务同步(急救转运任务和服务单) |
| | | * 2. LegacyTransferSyncTask - 旧系统转运单同步(从SQL Server到新系统) |
| | | * 3. TaskStatusSyncService - 任务状态同步(从旧系统到新系统) |
| | | * 4. TaskStatusPushService - 任务状态推送(从新系统到旧系统) |
| | | * 5. TaskAttachmentSyncService - 任务附件同步(从新系统到旧系统) |
| | | * 6. PaymentSyncService - 支付信息同步(双向同步) |
| | | * 7. AdditionalFeeSyncService - 附加费用同步(双向同步) |
| | | */ |
| | | @Component("legacySystemSyncTask") |
| | | public class LegacySystemSyncTask { |
| | |
| | | |
| | | @Autowired |
| | | private ITaskStatusPushService taskStatusPushService; |
| | | |
| | | @Autowired |
| | | private ITaskAttachmentSyncService taskAttachmentSyncService; |
| | | |
| | | @Autowired |
| | | private IPaymentSyncService paymentSyncService; |
| | | |
| | | @Autowired |
| | | private IAdditionalFeeSyncService additionalFeeSyncService; |
| | | |
| | | |
| | | |
| | |
| | | log.error("任务状态推送异常", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 批量同步任务附件到旧系统ImageData表 |
| | | * |
| | | * 使用示例: |
| | | * 在系统管理 -> 定时任务中添加: |
| | | * 任务名称: 任务附件同步 |
| | | * 任务组名: DEFAULT |
| | | * 调用目标字符串: legacySystemSyncTask.syncPendingAttachments() |
| | | * cron表达式: 0 0/5 * * * ? (每5分钟执行一次) |
| | | * |
| | | * 同步条件: |
| | | * 1. 所属任务的调度单已同步成功 (dispatch_sync_status = 2) |
| | | * 2. 附件未同步 (synced_to_image_data = 0 或 null) |
| | | * 3. 有调度单ID和服务单ID |
| | | */ |
| | | public void syncPendingAttachments() { |
| | | log.info("开始执行任务附件同步定时任务"); |
| | | try { |
| | | int successCount = taskAttachmentSyncService.batchSyncPendingAttachments(); |
| | | log.info("任务附件同步完成,成功同步: {} 个附件", successCount); |
| | | } catch (Exception e) { |
| | | log.error("任务附件同步异常", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 批量同步支付信息到旧系统PaidMoney表 |
| | | * |
| | | * 使用示例: |
| | | * 在系统管理 -> 定时任务中添加: |
| | | * 任务名称: 支付信息同步 |
| | | * 任务组名: DEFAULT |
| | | * 调用目标字符串: legacySystemSyncTask.syncPaymentToLegacy() |
| | | * cron表达式: 0 0/10 * * * ? (每10分钟执行一次) |
| | | */ |
| | | public void syncPaymentToLegacy() { |
| | | log.info("开始执行支付信息同步定时任务(新系统 -> 旧系统)"); |
| | | try { |
| | | int successCount = paymentSyncService.batchSyncPaymentToLegacy(); |
| | | log.info("支付信息同步完成,成功同步: {} 条记录", successCount); |
| | | } catch (Exception e) { |
| | | log.error("支付信息同步异常", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 批量同步支付信息从旧系统到新系统 |
| | | * |
| | | * 使用示例: |
| | | * 在系统管理 -> 定时任务中添加: |
| | | * 任务名称: 支付信息反向同步 |
| | | * 任务组名: DEFAULT |
| | | * 调用目标字符串: legacySystemSyncTask.syncPaymentFromLegacy() |
| | | * cron表达式: 0 0/15 * * * ? (每15分钟执行一次) |
| | | */ |
| | | public void syncPaymentFromLegacy() { |
| | | log.info("开始执行支付信息同步定时任务(旧系统 -> 新系统)"); |
| | | try { |
| | | int successCount = paymentSyncService.batchSyncPaymentFromLegacy(); |
| | | log.info("支付信息同步完成,成功同步: {} 条记录", successCount); |
| | | } catch (Exception e) { |
| | | log.error("支付信息同步异常", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 批量同步附加费用到旧系统PaidMoney_Add表 |
| | | * |
| | | * 使用示例: |
| | | * 在系统管理 -> 定时任务中添加: |
| | | * 任务名称: 附加费用同步 |
| | | * 任务组名: DEFAULT |
| | | * 调用目标字符串: legacySystemSyncTask.syncAdditionalFeeToLegacy() |
| | | * cron表达式: 0 0/10 * * * ? (每10分钟执行一次) |
| | | */ |
| | | public void syncAdditionalFeeToLegacy() { |
| | | log.info("开始执行附加费用同步定时任务(新系统 -> 旧系统)"); |
| | | try { |
| | | int successCount = additionalFeeSyncService.batchSyncAdditionalFeeToLegacy(); |
| | | log.info("附加费用同步完成,成功同步: {} 条记录", successCount); |
| | | } catch (Exception e) { |
| | | log.error("附加费用同步异常", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 批量同步附加费用从旧系统到新系统 |
| | | * |
| | | * 使用示例: |
| | | * 在系统管理 -> 定时任务中添加: |
| | | * 任务名称: 附加费用反向同步 |
| | | * 任务组名: DEFAULT |
| | | * 调用目标字符串: legacySystemSyncTask.syncAdditionalFeeFromLegacy() |
| | | * cron表达式: 0 0/15 * * * ? (每15分钟执行一次) |
| | | */ |
| | | public void syncAdditionalFeeFromLegacy() { |
| | | log.info("开始执行附加费用同步定时任务(旧系统 -> 新系统)"); |
| | | try { |
| | | // 同步最近24小时内的记录 |
| | | int successCount = additionalFeeSyncService.batchSyncAdditionalFeeFromLegacy(24); |
| | | log.info("附加费用同步完成,成功同步: {} 条记录", successCount); |
| | | } catch (Exception e) { |
| | | log.error("附加费用同步异常", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 批量重新同步车辆和人员变更的任务 |
| | | * |
| | | * 使用示例: |
| | | * 在系统管理 -> 定时任务中添加: |
| | | * 任务名称: 重新同步车辆人员变更 |
| | | * 任务组名: DEFAULT |
| | | * 调用目标字符串: legacySystemSyncTask.resyncVehicleAndPersonnel() |
| | | * cron表达式: 0 0/5 * * * ? (每5分钟执行一次) |
| | | */ |
| | | public void resyncVehicleAndPersonnel() { |
| | | log.info("开始执行重新同步车辆和人员变更的任务定时任务"); |
| | | try { |
| | | int successCount = legacySystemSyncService.batchResyncPendingDispatchOrders(); |
| | | log.info("重新同步车辆和人员变更完成,成功同步: {} 个任务", successCount); |
| | | } catch (Exception e) { |
| | | log.error("重新同步车辆和人员变更异常", e); |
| | | } |
| | | } |
| | | } |