wlzboy
2025-12-29 faff7314b240922d20fdd2fbc455c61dbc297cd5
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskStatusPushServiceImpl.java
@@ -129,6 +129,10 @@
                    log.info("取消转运任务: {}", emergency.getLegacyServiceOrdId());
                    cancelTask(emergency.getLegacyServiceOrdId(), emergency.getCancelReason(), emergency.getCancelBy());
                }
                if(LongUtil.isNotEmpty(emergency.getLegacyDispatchOrdId())){
                    log.info("取消调度单: {}", emergency.getLegacyDispatchOrdId());
                    cancelDispatch(emergency.getLegacyDispatchOrdId(), emergency.getCancelReason(), emergency.getCancelBy());
                }
            }
            // 推送状态到旧系统
            boolean result = updateLegacyTaskStatus(emergency.getLegacyDispatchOrdId(), targetStatusCode);
@@ -150,7 +154,11 @@
            return false;
        }
    }
    private void cancelDispatch(Long legacyDispatchOrdId, String cancelReason, String cancelReasonText) {
        dispatchOrdService.cancelDispatchOrd(legacyDispatchOrdId, Integer.parseInt(cancelReason), cancelReasonText);
    }
    /**
     * 批量推送任务状态到旧系统
     * 使用分页查询,确保所有符合条件的任务都能被推送
@@ -223,7 +231,7 @@
    private void cancelTask(Long serviceOrderId, String cancelReason, String cancelBy){
        // 取消任务,更新SQL Server中的ServiceOrder表
        try {
            if (serviceOrderId == null || serviceOrderId <= 0) {
            if (LongUtil.isEmpty(serviceOrderId)) {
                log.warn("ServiceOrderID为空,无法取消任务");
                return;
            }
@@ -234,6 +242,7 @@
            
            if (cancelReason != null && !cancelReason.isEmpty()) {
                try {
                    log.info("取消原因 cancelReason:{},取消人:{}", cancelReason, cancelBy);
                    cancelReasonId = Integer.parseInt(cancelReason);
                    // 从数据字典查询取消原因文本
                    String dictLabel = sysDictDataService.selectDictLabel("task_cancel_reason", cancelReason);
@@ -243,7 +252,7 @@
                        cancelReasonText = "[取消操作:" + (cancelBy != null ? cancelBy : "系统") + "]";
                    }
                } catch (NumberFormatException e) {
                    log.warn("取消原因ID格式错误: {}", cancelReason);
                    log.error("取消原因ID格式错误: {}", cancelReason,e);
                    cancelReasonText = "[取消操作:" + (cancelBy != null ? cancelBy : "系统") + "] " + cancelReason;
                }
            } else {
@@ -275,10 +284,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);