wanshenmean
18 小时以前 853f7a71577bd8694c848985e1eb21c74d30eba9
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ManualInbound/ManualInboundTaskHandler.cs
@@ -1,3 +1,4 @@
using Serilog;
using WIDESEAWCS_Core.LogHelper;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
@@ -20,12 +21,19 @@
        private readonly ITaskService _taskService;
        /// <summary>
        /// 日志记录器
        /// </summary>
        private readonly ILogger _logger;
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="taskService">任务服务</param>
        public ManualInboundTaskHandler(ITaskService taskService)
        /// <param name="logger">日志记录器</param>
        public ManualInboundTaskHandler(ITaskService taskService, ILogger logger)
        {
            _taskService = taskService;
            _logger = logger;
        }
        /// <summary>
@@ -38,7 +46,7 @@
        {
            if (conveyorLine == null || string.IsNullOrEmpty(childDeviceCode) || task == null)
            {
                QuartzLogger.Error("ManualInboundTaskHandler.WriteTaskToPlc: 参数为空", "ManualInbound");
                QuartzLogHelper.LogError(_logger, "ManualInboundTaskHandler.WriteTaskToPlc: 参数为空", "ManualInbound");
                return;
            }
@@ -49,24 +57,26 @@
                // 写入起始地址
                conveyorLine.SetValue(ConveyorLineDBNameNew.Source, short.Parse(task.SourceAddress ?? "0"), childDeviceCode);
                // 写入目标地址
                conveyorLine.SetValue(ConveyorLineDBNameNew.Target, short.Parse(task.TargetAddress ?? "0"), childDeviceCode);
                conveyorLine.SetValue(ConveyorLineDBNameNew.Target, short.Parse(task.NextAddress ?? "0"), childDeviceCode);
                // 写入托盘号
                conveyorLine.SetValue(ConveyorLineDBNameNew.Barcode, task.PalletCode, childDeviceCode);
                // 更新任务状态到下一阶段
                var updateResult = _taskService.UpdateTaskStatusToNext(task);
                if (!updateResult.Status)
                {
                    QuartzLogger.Error($"ManualInboundTaskHandler: 更新任务状态失败,任务号【{task.TaskNum}】,错误信息:{updateResult.Message}", conveyorLine.DeviceCode);
                    QuartzLogHelper.LogError(_logger, $"ManualInboundTaskHandler: 更新任务状态失败,任务号【{task.TaskNum}】,错误信息:{updateResult.Message}", conveyorLine.DeviceCode);
                    return;
                }
                // 写入ACK标志
                conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, (short)1, childDeviceCode);
                QuartzLogger.Info($"ManualInboundTaskHandler: 手动任务写入PLC成功,任务号【{task.TaskNum}】,源地址【{task.SourceAddress}】", conveyorLine.DeviceCode);
                QuartzLogHelper.LogInfo(_logger, $"ManualInboundTaskHandler: 手动任务写入PLC成功,任务号【{task.TaskNum}】,源地址【{task.SourceAddress}】", conveyorLine.DeviceCode);
            }
            catch (Exception ex)
            {
                QuartzLogger.Error($"ManualInboundTaskHandler: 写入输送线任务异常,错误信息:{ex.Message}", "ManualInbound");
                QuartzLogHelper.LogError(_logger, ex, $"ManualInboundTaskHandler: 写入输送线任务异常", $"ManualInboundTaskHandler: 写入输送线任务异常,错误信息:{ex.Message}", "ManualInbound");
            }
        }
    }