From 51141e4955e3021058664bea526f16b368738b3a Mon Sep 17 00:00:00 2001
From: pengmn <pmn@HanInfo>
Date: 星期二, 24 六月 2025 18:20:26 +0800
Subject: [PATCH] test

---
 HH.WCS.Mobox3.HangYang/process/TaskProcess.cs |  325 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 240 insertions(+), 85 deletions(-)

diff --git a/HH.WCS.Mobox3.HangYang/process/TaskProcess.cs b/HH.WCS.Mobox3.HangYang/process/TaskProcess.cs
index 1ef67ec..8661a37 100644
--- a/HH.WCS.Mobox3.HangYang/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3.HangYang/process/TaskProcess.cs
@@ -1667,6 +1667,246 @@
 
         #endregion
 
+        #region WCS璋冪敤鎺ュ彛
+
+        /// <summary>
+        /// WCS璋冪敤璁惧淇″彿鍙嶉
+        /// </summary>
+        /// <param name="model">璇锋眰鍙傛暟</param>
+        /// <returns></returns>
+        public static async Task<WcsResult> notifyDeviceSignal(List<WcsModel> model)
+        {
+            WcsResult result = new WcsResult() { code = 1, };
+            try
+            {
+                foreach (var item in model)
+                {
+                    if (string.IsNullOrEmpty(item.cntrNo))
+                    {
+                        result.msg = "鎵樼洏鍙蜂负绌猴紒";
+                        return result;
+                    }
+                    var list = WMSHelper.GetWmsTaskList("绛夊緟", item.cntrNo);
+                    if (list == null)
+                    {
+                        list = WMSHelper.GetWmsTaskList("鎵ц", item.cntrNo);
+                        if (list != null && list.S_TYPE.Contains("鍥炲簱"))
+                        {
+                            list.S_END_AREA = "TPLKQ";
+                        }
+                    }
+                    if (list == null)
+                    {
+                        result.msg = "鏈煡璇㈠埌鍦ㄧ瓑寰呬腑鐨勪綔涓氾紒";
+                        return result;
+                    }
+
+                    var inbound = new Inbound()
+                    {
+                        areaCode = list.S_END_AREA
+                    };
+                    var wh = new Warehouse(inbound);
+                    var stored = await wh.StoreItemAsync();
+                    if (stored == null)
+                    {
+                        result.msg = "绔嬪簱鍖烘湭鏌ヨ鍒板彲鐢ㄨ揣浣嶏紒";
+                        return result;
+                    }
+
+                    var startLoc = ContainerHelper.GetCntrLoc(list.S_CNTR_CODE);
+                    if (startLoc == null)
+                    {
+                        result.msg = $"鏈煡璇㈠埌鎵樼洏{list.S_CNTR_CODE}鎵�湪鐨勮揣浣嶏紒";
+                        return result;
+                    }
+                    var res = TaskProcess.HYCreateTransport(startLoc.S_LOC_CODE, stored.loationCode, list.S_B_STATE == "绛夊緟" ? "鏂欑鍏ュ簱" : "鎵樼洏鍏ュ簱", list.S_CNTR_CODE, list.S_CODE);
+                    if (!res)
+                    {
+                        result.msg = "鍏ュ簱浠诲姟鍒涘缓澶辫触锛�;
+                        return result;
+                    }
+                    WMSHelper.UpdateTaskStatus(list.S_CODE, 1);
+                    ContainerHelper.UpdateCntrAbouts(list.S_CNTR_CODE, "");
+                }
+                result.code = 0;
+                return result;
+            }
+            catch (Exception ex)
+            {
+                result.code = 2;
+                result.msg = ex.Message;
+                var st = new System.Diagnostics.StackTrace(ex, true);
+                var frame = st.GetFrame(0); // 鑾峰彇绗竴涓爢鏍堝抚
+                if (frame != null)
+                {
+                    LogHelper.Error($"notifyDeviceSignal璁惧淇″彿鍙嶉鍑虹幇閿欒锛侊紒", ex);
+                    LogHelper.Error($"鏂囦欢鍚� {frame.GetFileName()}", ex);
+                    LogHelper.Error($"琛屽彿: {frame.GetFileLineNumber()}", ex);
+                    LogHelper.Error($"鍒楀彿: {frame.GetFileColumnNumber()}", ex);
+                }
+                return result;
+            }
+        }
+
+        /// <summary>
+        /// WCS璋冪敤浠诲姟鐘舵�鍙嶉
+        /// </summary>
+        /// <param name="model">璇锋眰鍙傛暟</param>
+        /// <returns></returns>
+        public static async Task<WcsResult> notifyTaskStatus(WcsTaskModel model)
+        {
+            WcsResult result = new WcsResult() { code = 1, };
+            try
+            {
+                if (model == null)
+                {
+                    result.msg = "璇锋眰鍙傛暟涓虹┖";
+                    return result;
+                }
+
+                var task = WCSHelper.GetTask(model.taskNo);
+                if (task == null)
+                {
+                    result.msg = "鏈煡璇㈠埌浠诲姟鍙�;
+                    return result;
+                } 
+
+                // 鐘舵�涓庢搷浣滅殑鏄犲皠瀛楀吀
+                var stateActions = new Dictionary<int, Action>
+                {
+                    [1] = () => WCSHelper.Begin(task),
+                    [2] = () => HandleTaskCompletion(task),
+                    [3] = () => WCSHelper.UpdateStatus(task, "寮�鍙栬揣"),
+                    [4] = () => HandlePickCompletion(task),
+                    [5] = () => WCSHelper.UpdateStatus(task, "寮�鍗歌揣"),
+                    [6] = () => HandleUnloadCompletion(task),
+                    [7] = () => HandleTaskFailure(task),
+                    [8] = () => HandleTaskCompletion(task)
+                };
+                result.code = 0;
+                return result;
+            }
+            catch (Exception ex)
+            {
+                result.code = 2;
+                result.msg = ex.Message;
+                var st = new System.Diagnostics.StackTrace(ex, true);
+                var frame = st.GetFrame(0); // 鑾峰彇绗竴涓爢鏍堝抚
+                if (frame != null)
+                {
+                    LogHelper.Error($"notifyTaskStatus浠诲姟鐘舵�鍙嶉鍑虹幇閿欒锛侊紒", ex);
+                    LogHelper.Error($"鏂囦欢鍚� {frame.GetFileName()}", ex);
+                    LogHelper.Error($"琛屽彿: {frame.GetFileLineNumber()}", ex);
+                    LogHelper.Error($"鍒楀彿: {frame.GetFileColumnNumber()}", ex);
+                }
+                return result;
+            }
+        }
+
+        // 澶勭悊浠诲姟瀹屾垚閫昏緫
+        private static void HandleTaskCompletion(WCSTask task)
+        {
+            WCSHelper.End(task);
+
+            // 鏍规嵁浠诲姟绫诲瀷澶勭悊涓嶅悓鐨勫畬鎴愰�杈�+            if (Settings.CompleteTasks.taskType.Contains(task.S_TYPE))
+            {
+                WMSHelper.UpdateWmsTask(task, 2);
+                WMSHelper.UpdateDistributionCntrState(2, 3, task.S_CNTR_CODE);
+            }
+
+            if (new List<string> { "鏂欑鍏ュ簱", "鎵樼洏鍏ュ簱" }.Contains(task.S_TYPE))
+            {
+                ContainerHelper.UpdateCntrItem(task.S_CNTR_CODE);
+            }
+
+            // 澶勭悊鍖哄煙鍙樻洿
+            HandleAreaChange(task);
+        }
+
+        // 澶勭悊鍙栬揣瀹屾垚閫昏緫
+        private static void HandlePickCompletion(WCSTask task)
+        {
+            WCSHelper.UpdateStatus(task, "鍙栬揣瀹屾垚");
+            TaskProcess.OperateStatus(task, 4);
+        }
+
+        // 澶勭悊鍗歌揣瀹屾垚閫昏緫
+        private static void HandleUnloadCompletion(WCSTask task)
+        {
+            WCSHelper.UpdateStatus(task, "鍗歌揣瀹屾垚");
+            TaskProcess.OperateStatus(task, 6);
+        }
+
+        // 澶勭悊浠诲姟澶辫触閫昏緫
+        private static void HandleTaskFailure(WCSTask task)
+        {
+            TaskProcess.OperateStatus(task, 7);
+            WCSHelper.Fail(task);
+        }
+
+        // 澶勭悊鍖哄煙鍙樻洿閫昏緫
+        private static void HandleAreaChange(WCSTask task)
+        {
+            var areas = new List<string> { "TPLKQ", "LXLKQ" };
+            var area = new List<string> { "閰嶇洏鍑哄簱", "閰嶇洏缂撳瓨" };
+
+            if (areas.Contains(task.S_START_AREA) && !area.Contains(task.S_TYPE))
+            {
+                WMSHelper.DeleteChange(task);
+            }
+
+            if (areas.Contains(task.S_END_AREA))
+            {
+                WMSHelper.AddChange(task);
+            }
+        }
+
+        /// <summary>
+        /// WCS璋冪敤鐢宠缁堢偣
+        /// </summary>
+        /// <param name="model">璇锋眰鍙傛暟</param>
+        /// <returns></returns>
+        public static async Task<WcsResult> applyDest(WcsTaskEnd model)
+        {
+            WcsResult result = new WcsResult() { code = 1, };
+            try
+            {
+                if (model == null)
+                {
+                    result.msg = "璇锋眰鍙傛暟涓虹┖";
+                    return result;
+                }
+
+                var task = WCSHelper.GetTask(model.taskNo);
+                if (task == null)
+                {
+                    result.msg = "鏈煡璇㈠埌浠诲姟鍙�;
+                    return result;
+                }
+
+                result.code = 0;
+                result.data.Add(new DataModel { taskNo = task.S_CODE, cntrCode = task.S_CNTR_CODE, end = task.S_END_LOC });
+                return result;
+            }
+            catch (Exception ex)
+            {
+                result.code = 2;
+                result.msg = ex.Message;
+                var st = new System.Diagnostics.StackTrace(ex, true);
+                var frame = st.GetFrame(0); // 鑾峰彇绗竴涓爢鏍堝抚
+                if (frame != null)
+                {
+                    LogHelper.Error($"applyDest鐢宠缁堢偣鍑虹幇閿欒锛侊紒", ex);
+                    LogHelper.Error($"鏂囦欢鍚� {frame.GetFileName()}", ex);
+                    LogHelper.Error($"琛屽彿: {frame.GetFileLineNumber()}", ex);
+                    LogHelper.Error($"鍒楀彿: {frame.GetFileColumnNumber()}", ex);
+                }
+                return result;
+            }
+        }
+        #endregion
+
 
 
 
@@ -1689,10 +1929,6 @@
 
             LogHelper.Error("CreateInTask鑾峰彇浣滀笟鍒涘缓鍏ュ簱浠诲姟鍑虹幇閿欒锛� + errorDetails, ex);
         }
-
-
-
-
 
         /// <summary>
         /// 寰幆鍏ュ簱缂撳瓨鍖烘煡璇㈠悎鎵樺伐浣嶅拰鍏ュ簱鎺ラ┏浣嶆槸鍚︽湁绌鸿揣浣嶏紙鍒涘缓浠诲姟锛�@@ -1855,87 +2091,6 @@
                 return false;
             }
 
-        }
-
-        /// <summary>
-        /// WCS璋冪敤璁惧淇″彿鍙嶉
-        /// </summary>
-        /// <param name="model">璇锋眰鍙傛暟</param>
-        /// <returns></returns>
-        public static async Task<Result> notifyDeviceSignal(List<Wcsmodel> model)
-        {
-            Result result = new Result() { success = false, };
-            try
-            {
-                foreach (var item in model)
-                {
-                    if (string.IsNullOrEmpty(item.cntrNo))
-                    {
-                        result.errMsg = "鎵樼洏鍙蜂负绌猴紒";
-                        return result;
-                    }
-                    var list = WMSHelper.GetWmsTaskList("绛夊緟", item.cntrNo);
-                    if (list == null)
-                    {
-                        list = WMSHelper.GetWmsTaskList("鎵ц", item.cntrNo);
-                        if (list != null && list.S_TYPE.Contains("鍥炲簱"))
-                        {
-                            list.S_END_AREA = "TPLKQ";
-                        }
-                    }
-                    if (list == null)
-                    {
-                        result.errMsg = "鏈煡璇㈠埌鍦ㄧ瓑寰呬腑鐨勪綔涓氾紒";
-                        return result;
-                    }
-                    
-                    var inbound = new Inbound()
-                    {
-                        areaCode = list.S_END_AREA
-                    };
-                    var wh = new Warehouse(inbound);
-                    var stored = await wh.StoreItemAsync();
-                    if (stored == null)
-                    {
-                        result.errMsg = "绔嬪簱鍖烘湭鏌ヨ鍒板彲鐢ㄨ揣浣嶏紒";
-                        return result;
-                    }
-
-                    var startLoc = ContainerHelper.GetCntrLoc(list.S_CNTR_CODE);
-                    if (startLoc == null)
-                    {
-                        result.errMsg = $"鏈煡璇㈠埌鎵樼洏{list.S_CNTR_CODE}鎵�湪鐨勮揣浣嶏紒";
-                        return result;
-                    }
-                    var res = TaskProcess.HYCreateTransport(startLoc.S_LOC_CODE, stored.loationCode, list.S_B_STATE == "绛夊緟" ? "鏂欑鍏ュ簱" : "鎵樼洏鍏ュ簱", list.S_CNTR_CODE, list.S_CODE);
-                    if (!res)
-                    {
-                        result.errMsg = "鍏ュ簱浠诲姟鍒涘缓澶辫触锛�;
-                        return result;
-                    }
-                    WMSHelper.UpdateTaskStatus(list.S_CODE, 1);
-                    ContainerHelper.UpdateCntrAbouts(list.S_CNTR_CODE, "");
-                }
-
-
-                result.success = true;
-                return result;
-            }
-            catch (Exception ex)
-            {
-                result.success = false;
-                result.errMsg = ex.Message;
-                var st = new System.Diagnostics.StackTrace(ex, true);
-                var frame = st.GetFrame(0); // 鑾峰彇绗竴涓爢鏍堝抚
-                if (frame != null)
-                {
-                    LogHelper.Error($"notifyDeviceSignalWCS璋冪敤璁惧淇″彿鍙嶉鍑虹幇閿欒锛侊紒", ex);
-                    LogHelper.Error($"鏂囦欢鍚� {frame.GetFileName()}", ex);
-                    LogHelper.Error($"琛屽彿: {frame.GetFileLineNumber()}", ex);
-                    LogHelper.Error($"鍒楀彿: {frame.GetFileColumnNumber()}", ex);
-                }
-                return result;
-            }
         }
 
         /// <summary>

--
Gitblit v1.9.1