wanshenmean
13 小时以前 419159c8611dca81b94b3103cdeaeb9272aed5ea
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -174,9 +174,8 @@
                bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
                if (!flag || value is not CommonStackerCrane commonStackerCrane)
                {
                    _logger.Information("Execute:参数无效,未找到 JobParams 或类型不匹配");
                    // 参数无效,直接返回
                    QuartzLogHelper.LogWarn(_logger, "Execute:参数无效", "Execute:参数无效", "CommonStackerCraneJob");
                    QuartzLogHelper.LogInfo(_logger, "Execute:参数无效", "CommonStackerCraneJob");
                    return Task.CompletedTask;
                }
@@ -190,8 +189,11 @@
                    QuartzLogHelper.LogInfo(_logger, "Execute:订阅任务完成事件,设备: {DeviceCode}", "订阅任务完成事件", _deviceCode, _deviceCode);
                }
                QuartzLogHelper.LogInfo(_logger, $"开始检查堆垛机完成状态,【{_deviceCode}】", _deviceCode);
                // ========== 检查堆垛机任务完成状态 ==========
                commonStackerCrane.CheckStackerCraneTaskCompleted();
                QuartzLogHelper.LogInfo(_logger, $"检查完成,正在监听堆垛机任务完成,【{_deviceCode}】", _deviceCode);
                // ========== 检查是否可以发送新任务 ==========
                //if (!commonStackerCrane.IsCanSendTask(commonStackerCrane.Communicator, commonStackerCrane.DeviceProDTOs, commonStackerCrane.DeviceProtocolDetailDTOs))
@@ -200,6 +202,8 @@
                    // 堆垛机不可用(如正在执行上一任务),直接返回
                    return Task.CompletedTask;
                }
                QuartzLogHelper.LogInfo(_logger, $"堆垛机可下发任务,【{_deviceCode}】", _deviceCode);
                // ========== 选择任务 ==========
                // 任务选择下沉到专用选择器
@@ -210,7 +214,7 @@
                    return Task.CompletedTask;
                }
                QuartzLogHelper.LogInfo(_logger, $"获取到任务,开始构建任务下发命令,【{_deviceCode}】", _deviceCode);
                // ========== 构建命令 ==========
                // 命令构建下沉到专用构建器
@@ -218,9 +222,12 @@
                if (stackerCraneTaskCommand == null)
                {
                    // 命令构建失败
                    QuartzLogHelper.LogWarn(_logger, "Execute:命令构建失败,设备: {DeviceCode},任务号: {TaskNum}", $"命令构建失败,任务号: {task.TaskNum}", _deviceCode, _deviceCode, task.TaskNum);
                    QuartzLogHelper.LogInfo(_logger, $"Execute:命令构建失败,设备: {_deviceCode},任务号: {task.TaskNum}", _deviceCode);
                    return Task.CompletedTask;
                }
                QuartzLogHelper.LogInfo(_logger, $"命令构建完成,开始下发任务,【{_deviceCode}】", _deviceCode);
                // ========== 发送命令 ==========
                bool sendFlag = SendStackerCraneCommand(commonStackerCrane, stackerCraneTaskCommand);
@@ -232,17 +239,17 @@
                    commonStackerCrane.LastTaskType = task.TaskType;
                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
                    QuartzLogHelper.LogInfo(_logger, "Execute:命令发送成功,设备: {DeviceCode},任务号: {TaskNum}", $"命令发送成功,任务号: {task.TaskNum}", _deviceCode, _deviceCode, task.TaskNum);
                    QuartzLogHelper.LogInfo(_logger, $"Execute:命令发送成功,设备: {_deviceCode},任务号: {task.TaskNum}", _deviceCode);
                }
                else
                {
                    QuartzLogHelper.LogError(_logger, "Execute:命令发送失败,设备: {DeviceCode},任务号: {TaskNum}", $"命令发送失败", _deviceCode, _deviceCode, task.TaskNum);
                    QuartzLogHelper.LogInfo(_logger, $"Execute:命令发送失败,设备: {_deviceCode},任务号: {task.TaskNum}", _deviceCode);
                }
            }
            catch (Exception ex)
            {
                // 记录异常
                QuartzLogHelper.LogError(_logger, ex, "Execute:执行异常,设备: {DeviceCode}", $"执行异常: {ex.Message}", _deviceCode, _deviceCode);
                QuartzLogHelper.LogError(_logger, ex, $"Execute:执行异常,设备: {_deviceCode}", $"执行异常: {ex.Message}", _deviceCode, _deviceCode);
            }
            finally
            {
@@ -270,7 +277,7 @@
            if (stackerCrane != null)
            {
                // 记录日志
                QuartzLogHelper.LogInfo(_logger, "CommonStackerCrane_StackerCraneTaskCompletedEventHandler:任务完成,任务号: {TaskNum}", $"任务完成,任务号: {e.TaskNum}", stackerCrane.DeviceCode, e.TaskNum);
                QuartzLogHelper.LogInfo(_logger, $"CommonStackerCrane_StackerCraneTaskCompletedEventHandler:任务完成,任务号: {e.TaskNum}", stackerCrane.DeviceCode);
                // 更新任务状态为完成
                if (_taskService.StackCraneTaskCompleted(e.TaskNum).Status)