wlzboy
6 天以前 3bbd80a63ac7728ac01b641a48a26befcb171a0f
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/LegacySystemSyncTask.java
@@ -1,6 +1,8 @@
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;
@@ -22,6 +24,8 @@
 * 3. TaskStatusSyncService - 任务状态同步(从旧系统到新系统)
 * 4. TaskStatusPushService - 任务状态推送(从新系统到旧系统)
 * 5. TaskAttachmentSyncService - 任务附件同步(从新系统到旧系统)
 * 6. PaymentSyncService - 支付信息同步(双向同步)
 * 7. AdditionalFeeSyncService - 附加费用同步(双向同步)
 */
@Component("legacySystemSyncTask")
public class LegacySystemSyncTask {
@@ -39,6 +43,12 @@
    
    @Autowired
    private ITaskAttachmentSyncService taskAttachmentSyncService;
    @Autowired
    private IPaymentSyncService paymentSyncService;
    @Autowired
    private IAdditionalFeeSyncService additionalFeeSyncService;
    
@@ -158,12 +168,113 @@
     * 3. 有调度单ID和服务单ID
     */
    public void syncPendingAttachments() {
        log.info("开始执行任务附件同步定时任务");
//        log.info("开始执行任务附件同步定时任务");
        try {
            int successCount = taskAttachmentSyncService.batchSyncPendingAttachments();
            log.info("任务附件同步完成,成功同步: {} 个附件", successCount);
//            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(72);
//            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);
        }
    }
}