wlzboy
2026-01-24 b2bd9fb71ee17d0ec73429f03dc87c87a0a38325
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskStatusPushServiceImpl.java
@@ -134,6 +134,27 @@
                    cancelDispatch(emergency.getLegacyDispatchOrdId(), emergency.getCancelReason(), emergency.getCancelBy());
                }
            }
            // 判断是否需要更新实际开始时间:从待处理转到其他状态(除取消外)
            if ( targetStatusCode != 10 && task.getActualStartTime() != null) {
                try {
                    int rows = dispatchOrdService.updateDispatchOrdActualDate(
                        emergency.getLegacyDispatchOrdId(),
                        task.getActualStartTime());
                    if (rows > 0) {
                        log.info("【新推旧】更新实际开始时间成功,任务ID: {}, DispatchOrdID: {}, 实际开始时间: {}",
                            taskId, emergency.getLegacyDispatchOrdId(), task.getActualStartTime());
                    } else {
                        log.warn("【新推旧】更新实际开始时间失败,未找到对应调度单,DispatchOrdID: {}",
                            emergency.getLegacyDispatchOrdId());
                    }
                } catch (Exception e) {
                    log.error("【新推旧】更新实际开始时间异常,DispatchOrdID: {}",
                        emergency.getLegacyDispatchOrdId(), e);
                    // 不抛出异常,继续执行状态推送
                }
            }
            // 推送状态到旧系统
            boolean result = updateLegacyTaskStatus(emergency.getLegacyDispatchOrdId(), targetStatusCode);
            
@@ -174,7 +195,7 @@
        
        try {
            int totalSuccessCount = 0;
            int pageSize = 200; // 每页200条
            int pageSize = 5; // 每页10条
            int offset = 0;
            
            while (true) {
@@ -242,6 +263,7 @@
            
            if (cancelReason != null && !cancelReason.isEmpty()) {
                try {
                    log.info("取消原因 cancelReason:{},取消人:{}", cancelReason, cancelBy);
                    cancelReasonId = Integer.parseInt(cancelReason);
                    // 从数据字典查询取消原因文本
                    String dictLabel = sysDictDataService.selectDictLabel("task_cancel_reason", cancelReason);
@@ -251,7 +273,7 @@
                        cancelReasonText = "[取消操作:" + (cancelBy != null ? cancelBy : "系统") + "]";
                    }
                } catch (NumberFormatException e) {
                    log.warn("取消原因ID格式错误: {}", cancelReason);
                    log.error("取消原因ID格式错误: {}", cancelReason,e);
                    cancelReasonText = "[取消操作:" + (cancelBy != null ? cancelBy : "系统") + "] " + cancelReason;
                }
            } else {
@@ -283,10 +305,10 @@
        try {
            // 直接通过Service调用Mapper更新SQL Server数据库
            int rows = dispatchOrdService.updateDispatchOrdState(dispatchOrdId, statusCode);
//            log.debug("更新旧系统状态,DispatchOrdID: {}, StateInt: {}", dispatchOrdId, statusCode);
            log.debug("更新旧系统状态,DispatchOrdID: {}, statusCode: {}", dispatchOrdId, statusCode);
            if (rows > 0) {
//                log.debug("更新旧系统状态成功,DispatchOrdID: {}, StateInt: {}",
//                    dispatchOrdId, statusCode);
                log.debug("更新旧系统状态成功,DispatchOrdID: {}, statusCode: {}",
                    dispatchOrdId, statusCode);
                return true;
            } else {
//                log.warn("更新旧系统状态失败,未找到对应调度单,DispatchOrdID: {}", dispatchOrdId);