From ce1292c9cf37195b6abd2699dfc5d6cb3e143c9b Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期日, 12 四月 2026 23:38:19 +0800
Subject: [PATCH] feat(MES): 添加MES接口相关实体和DTO JS扩展文件至JSX格式并更新配置

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ManualInbound/ManualInboundTaskHandler.cs |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ManualInbound/ManualInboundTaskHandler.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ManualInbound/ManualInboundTaskHandler.cs
new file mode 100644
index 0000000..8c8886f
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ManualInbound/ManualInboundTaskHandler.cs
@@ -0,0 +1,73 @@
+using WIDESEAWCS_Core.LogHelper;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.ConveyorLine;
+
+namespace WIDESEAWCS_Tasks.ConveyorLineNewJob.ManualInbound
+{
+    /// <summary>
+    /// 鎵嬪姩鍏ュ簱浠诲姟澶勭悊鍣�
+    /// </summary>
+    /// <remarks>
+    /// 璐熻矗澶勭悊鎵嬪姩鍒涘缓鐨勫叆搴撲换鍔★紝褰揚LC璇锋眰鍏ュ簱鏃讹紝鏍规嵁childDeviceCode鏌ユ壘浠诲姟骞跺啓鍏LC銆�
+    /// </remarks>
+    public class ManualInboundTaskHandler
+    {
+        /// <summary>
+        /// 浠诲姟鏈嶅姟
+        /// </summary>
+        private readonly ITaskService _taskService;
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        /// <param name="taskService">浠诲姟鏈嶅姟</param>
+        public ManualInboundTaskHandler(ITaskService taskService)
+        {
+            _taskService = taskService;
+        }
+
+        /// <summary>
+        /// 鍐欏叆鎵嬪姩鍏ュ簱浠诲姟鍒癙LC
+        /// </summary>
+        /// <param name="conveyorLine">杈撻�佺嚎璁惧瀵硅薄</param>
+        /// <param name="childDeviceCode">瀛愯澶囩紪鐮�</param>
+        /// <param name="task">浠诲姟瀹炰綋</param>
+        public void WriteTaskToPlc(CommonConveyorLine conveyorLine, string childDeviceCode, Dt_Task task)
+        {
+            if (conveyorLine == null || string.IsNullOrEmpty(childDeviceCode) || task == null)
+            {
+                QuartzLogger.Error("ManualInboundTaskHandler.WriteTaskToPlc: 鍙傛暟涓虹┖", "ManualInbound");
+                return;
+            }
+
+            try
+            {
+                // 鍐欏叆浠诲姟鍙�
+                conveyorLine.SetValue(ConveyorLineDBNameNew.TaskNo, (short)task.TaskNum, childDeviceCode);
+                // 鍐欏叆璧峰鍦板潃
+                conveyorLine.SetValue(ConveyorLineDBNameNew.Source, short.Parse(task.SourceAddress ?? "0"), childDeviceCode);
+                // 鍐欏叆鐩爣鍦板潃
+                conveyorLine.SetValue(ConveyorLineDBNameNew.Target, short.Parse(task.NextAddress ?? "0"), childDeviceCode);
+
+                // 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴闃舵
+                var updateResult = _taskService.UpdateTaskStatusToNext(task);
+                if (!updateResult.Status)
+                {
+                    QuartzLogger.Error($"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);
+            }
+            catch (Exception ex)
+            {
+                QuartzLogger.Error($"ManualInboundTaskHandler: 鍐欏叆杈撻�佺嚎浠诲姟寮傚父锛岄敊璇俊鎭�:{ex.Message}", "ManualInbound");
+            }
+        }
+    }
+}

--
Gitblit v1.9.3