From b7308bba3d7ffad271ce7fc7a93c8c45d76be87d Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期五, 13 六月 2025 17:21:03 +0800
Subject: [PATCH] 优化印尼佳通-硫化胚胎出入库逻辑策略优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs |   80 +++++++++++++++++++++++----------------
 1 files changed, 47 insertions(+), 33 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs
index b6ad33a..e7363b5 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs
@@ -16,18 +16,6 @@
     internal class WCSCore {
         public static void OperateAgvTaskStatus(AgvTaskState model) {
             if (string.IsNullOrEmpty(model.No)) {
-                var alertorDevice = Settings.alertorLightInfos.Where(a => a.deviceNo == int.Parse(model.LockNo)).FirstOrDefault();
-                if (model.State == 1023) 
-                {
-                    var result = HH.WCS.Mobox3.YNJT_PT.device.TcpClient.SendHexOnce(alertorDevice.address, 502, alertorDevice.turnLight);
-                    LogHelper.Info("modbus 杩斿洖淇″彿锛� + result, "TSSG");
-                }
-
-                if (model.State == 1025)
-                {
-                    var result = HH.WCS.Mobox3.YNJT_PT.device.TcpClient.SendHexOnce(alertorDevice.address, 502, alertorDevice.offLight);
-                    LogHelper.Info("modbus 杩斿洖淇″彿锛� + result, "TSSG");
-                }
             }
             else {
                 var TN_Task = WCSHelper.GetTask(model.No);
@@ -56,31 +44,14 @@
                                     break;
                                 case 5:
                                     WCSHelper.UpdateStatus(TN_Task, "寮�鍗歌揣");
-                                    WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚");
-                                    TaskProcess.OperateStatus(TN_Task, 6);
-                                    if (TN_Task.S_OP_NAME == "绉诲簱鍗曠Щ搴�)
-                                    {
-                                        var startLoc = LocationHelper.GetLoc(TN_Task.S_START_LOC);
-                                        var endLoc = LocationHelper.GetLoc(TN_Task.S_END_LOC);
-
-                                        TN_YiKuDetail detail = new TN_YiKuDetail()
-                                        {
-                                            S_NO = TN_Task.S_OP_CODE,
-                                            S_START_AREA = startLoc.S_AREA_CODE,
-                                            S_START_ROW = startLoc.N_ROW,
-                                            S_END_AREA = endLoc.S_AREA_CODE,
-                                            S_END_ROW = endLoc.N_ROW
-                                        };
-                                        WMSHelper.updateShiftOrderDetail(detail);
-                                    }
-                                    WCSHelper.End(TN_Task);
                                     break;
                                 case 6:
+                                    WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚");
+                                    TaskProcess.OperateStatus(TN_Task, 6);
                                     break;
                                 #endregion
                                 case 2:
-                                    // 淇敼宸ュ崟鐘舵�
-                                    /*  WCSHelper.UpdateWorkOrderStatus(TN_Task.S_OP_CODE, "宸插畬鎴�);*/
+                                    WCSHelper.End(TN_Task);
                                     break;
                                 case 7:
                                     //鍒ゆ柇鏄惁鏀跺埌杩囧己鍒跺彇娑堬紝鏈夊氨涓嶅仛浠讳綍澶勭悊
@@ -137,7 +108,7 @@
                         //缁堢偣鎵樼洏缁戝畾
                         if (LocationHelper.BindingLoc(wcsTask.S_END_LOC, new List<string> { wcsTask.S_CNTR_CODE })) {
                             //淇敼鎵樼洏鐘舵�涓哄彲鐢紝澧炲姞搴撳瓨閲忚〃锛屽悗闈㈠垎鎷e嚭鍙互璁$畻鍒�-                            ContainerHelper.Enable(wcsTask.S_CNTR_CODE, wcsTask.S_END_LOC);
+                           /* ContainerHelper.Enable(wcsTask.S_CNTR_CODE, wcsTask.S_END_LOC);*/
 
                         }
                     }
@@ -157,5 +128,48 @@
                 }
             }
         }
+
+        /// <summary>
+        /// 鍒涘缓鏈�悗涓�釜浠诲姟
+        /// </summary>
+        /// <param name="startLocCode"></param>
+        /// <param name="mst"></param>
+        /// <returns></returns>
+        public static WCSTask createLastTask(string startLocCode, WMSTask mst)
+        {
+            LogHelper.Info($"浣滀笟鍙凤細{mst.S_CODE}锛屽垱寤篈GV鍑哄簱浠诲姟", "WMS");
+            var existTask = WCSHelper.GetTaskByStart(startLocCode);
+            if (existTask == null)
+            {
+                var startLoc = LocationHelper.GetLoc(startLocCode);
+                // 鍒涘缓涓�鍏ュ簱浠诲姟
+                WCSTask wcsTask = new WCSTask()
+                {
+                    S_OP_NAME = mst.S_OP_DEF_NAME,
+                    S_OP_CODE = mst.S_CODE,
+                    S_CODE = WCSHelper.GenerateTaskNo(),
+                    S_CNTR_CODE = mst.S_CNTR_CODE,
+                    S_TYPE = mst.S_TYPE,
+                    S_START_LOC = startLoc.S_CODE,
+                    S_START_AREA = startLoc.S_AREA_CODE,
+                    S_END_LOC = mst.S_END_LOC,
+                    S_END_AREA = mst.S_END_AREA,
+                    S_SCHEDULE_TYPE = "AGV",
+                    N_PRIORITY = mst.N_PRIORITY,
+                    T_START_TIME = DateTime.Now,
+                };
+
+                if (WCSHelper.CreateTask(wcsTask))
+                {
+                    // 璧风偣銆佹帴椹崇偣銆佺粓鐐瑰姞閿�+                    LocationHelper.LockLoc(wcsTask.S_START_LOC, 2);
+                    LocationHelper.LockLoc(wcsTask.S_END_LOC, 1);
+
+                    WMSHelper.UpdateTaskEnd(mst);
+                    return wcsTask;
+                }
+            }
+            return null;
+        }
     }
 }

--
Gitblit v1.9.1