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.FJJT/core/Monitor.cs |  133 +++++++++++++++++++-------------------------
 1 files changed, 57 insertions(+), 76 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs
index 70d1b56..889f4cc 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/Monitor.cs
@@ -23,55 +23,67 @@
     /// </summary>
     internal class Monitor
     {
-       
+
         /// <summary>
-        /// 鐩戝惉MES浠诲姟涓棿琛�-        /// 1.閽㈠寘婊℃枡涓嬬嚎
-        /// 2.鎴愬瀷鏈哄彨鏂�+        /// 鐩戝惉閽㈠寘婊℃枡涓嬬嚎MES浠诲姟
         /// </summary>
-        public static void MonitorMesTask() {
-            LogHelper.Info("鐩戝惉MES浠诲姟涓棿琛�, "WMS");
+        public static void MonitorGBOffLineMesTask() 
+        {
             var mesTaskList = WMSHelper.GetLjMesTaskList("PENDING");
-            foreach (var mesTask in mesTaskList)
+            if (mesTaskList.Count > 0) 
             {
-                // 1.閽㈠寘婊℃枡涓嬬嚎
-                List<string> lineLoclist = new List<string>() { };
-                lineLoclist.Add("GBJTW-01");
-                lineLoclist.Add("GBJTW-02");
-                if (mesTask.MSG_TYPE == "1" && mesTask.PALLET_TYPE == "7" && lineLoclist.Contains(mesTask.PALLET_ID)) 
+                mesTaskList = mesTaskList.Where(a => a.MSG_TYPE == "1" && a.PALLET_TYPE == "7").ToList();
+                if (mesTaskList.Count > 0) 
                 {
-                    LogHelper.Info("MES閽㈠寘婊℃枡涓嬬嚎浠诲姟", "WMS");
-                    OffLineRequest request = new OffLineRequest(){ loc = mesTask.POSITION_ID, cntrNo = mesTask.PALLET_ID};
-                    ApiHelper.offLineProcess(request);
-                }
-
-                // 2.鎴愭柊鏈哄彨鏂�-                if (mesTask.MSG_TYPE == "0") {
-                    var lineSideLoc = WMSHelper.GetLineSideLoc(mesTask.POSITION_ID);  
-                    if (lineSideLoc != null ) 
+                    foreach (var mesTask in mesTaskList)
                     {
-                        LogHelper.Info("MES鎴愭柊鏈哄彨鏂欎换鍔�, "WMS");
+                        LogHelper.Info("MES閽㈠寘婊℃枡涓嬬嚎浠诲姟", "WMS");
+                        OffLineRequest request = new OffLineRequest() { loc = mesTask.POSITION_ID, cntrNo = mesTask.PALLET_ID };
+                        ApiHelper.offLineProcess(request);
+                    }
+                }
+            }
+        }
 
-                        // 2.1鎴愭柊鏈哄彨鏂�鏂滆)
-                        if (mesTask.PALLET_TYPE == "5" || mesTask.PALLET_TYPE == "6")
+        /// <summary>
+        /// 鐩戝惉鎴愬瀷鏈哄彨鏂橫ES浠诲姟
+        /// </summary>
+        public static void MonitorCXJCallMaterialMesTask()
+        {
+            var mesTaskList = WMSHelper.GetLjMesTaskList("PENDING");
+            if (mesTaskList.Count > 0)
+            {
+                mesTaskList = mesTaskList.Where(a => a.MSG_TYPE == "0").ToList();
+                if (mesTaskList.Count > 0)
+                {
+                    foreach (var mesTask in mesTaskList)
+                    {
+                        var lineSideLoc = WMSHelper.GetLineSideLoc(mesTask.EQP);
+                        if (lineSideLoc != null)
                         {
-                            var xcTask = WMSHelper.GetLjXcTaskById(mesTask.ID);
-                            if (xcTask == null)
+                            LogHelper.Info($"鎴愬瀷鏈哄彨鏂欎换鍔★紝MES浠诲姟ID锛歿mesTask.ID}", "WMS");
+
+                            // 2.1鎴愭柊鏈哄彨鏂�鏂滆)
+                            if (mesTask.PALLET_TYPE == "5" || mesTask.PALLET_TYPE == "6")
                             {
-                                ApiHelper.callMaterialHDK(mesTask.MATERIAL_CODE, mesTask.POSITION_ID, mesTask.ID);
+                                var xcTask = WMSHelper.GetLjXcTaskById(mesTask.ID);
+                                if (xcTask == null)
+                                {
+                                    ApiHelper.callMaterialXC(mesTask.MATERIAL_CODE, mesTask.POSITION_ID, mesTask.ID);
+                                }
+                                else
+                                {
+                                    mesTask.RETURN_CODE = xcTask.RETURN_CODE;
+                                    mesTask.RECEIVE_FLAG = xcTask.RECEIVE_FLAG;
+                                    mesTask.RECEIVE_DATE = xcTask.RECEIVE_DATE;
+                                    WMSHelper.updateLjMesTask(mesTask);
+                                }
                             }
                             else
                             {
-                                mesTask.RETURN_CODE = xcTask.RETURN_CODE;
-                                mesTask.RECEIVE_FLAG = xcTask.RECEIVE_FLAG;
-                                mesTask.RECEIVE_DATE = xcTask.RECEIVE_DATE;
-                                WMSHelper.updateLjMesTask(mesTask);
+                                // 2.2 鎴愭柊鏈哄彨鏂�+                                ApiHelper.callMaterial(mesTask.MATERIAL_CODE, mesTask.EQP, mesTask.ID);
                             }
-                        }
-                        else
-                        {
-                            // 2.2 鎴愭柊鏈哄彨鏂�-                            ApiHelper.callMaterial(mesTask.MATERIAL_CODE, mesTask.POSITION_ID, mesTask.ID);
                         }
                     }
                 }
@@ -91,12 +103,15 @@
                 if (mesTask != null && mesTask.RETURN_CODE == "2")
                 {
                     Location startLoc = LocationHelper.GetLoc(outTask.POSITION_ID);
-                    Location endLoc = LocationHelper.GetLoc(mesTask.POSITION_ID);
-
-                    var wmsTask = WMSHelper.GetWmsTaskByCntr(outTask.PALLET_ID);
-                    if (wmsTask == null)
+                    if (startLoc == null) 
                     {
-                        if (startLoc.N_LOCK_STATE == 0 && endLoc.N_LOCK_STATE == 0)
+                        WMSHelper.addAlarmRecord("娴佺▼寮傚父", "楂�, $"鎴愬瀷鏈哄彨鏂欏嚭搴�鏂滆)锛岃捣鐐�{outTask.POSITION_ID}鍦╓MS绯荤粺涓笉瀛樺湪");
+                    }
+                    Location endLoc = WMSHelper.getCallMaterialLocCode(mesTask.EQP);
+                    if (endLoc != null) 
+                    {
+                        var wmsTask = WMSHelper.GetWmsTaskByCntr(outTask.PALLET_ID);
+                        if (wmsTask == null)
                         {
                             // 1.鍒涘缓鏂滆-鎴愭柊鏈哄彨鏂欎綔涓�                             wmsTask = new WMSTask()
@@ -142,39 +157,6 @@
                                 }
                             }
                         }
-                        else
-                        {
-                            LogHelper.Info($"XC鍑哄簱浠诲姟ID锛歿mesTask.ID},鏃犳硶鐢熸垚鍙枡浠诲姟,璧风偣鎴栫粓鐐逛笂閿�, "鏂滆");
-                        }
-                    }
-                    else 
-                    {
-                        WCSTask wcsTask = new WCSTask()
-                        {
-                            S_OP_NAME = wmsTask.S_OP_DEF_NAME,
-                            S_OP_CODE = wmsTask.S_CODE,
-                            S_CODE = WCSHelper.GenerateTaskNo(),
-                            S_CNTR_CODE = wmsTask.S_CNTR_CODE,
-                            S_TYPE = wmsTask.S_TYPE,
-                            S_START_LOC = startLoc.S_CODE,
-                            S_START_AREA = startLoc.S_AREA_CODE,
-                            S_END_LOC = endLoc.S_CODE,
-                            S_END_AREA = endLoc.S_AREA_CODE,
-                            S_SCHEDULE_TYPE = "AGV",
-                            N_PRIORITY = 10,
-                            T_START_TIME = DateTime.Now,
-                        };
-
-                        if (WCSHelper.CreateTask(wcsTask))
-                        {
-                            // 璧风偣銆佺粓鐐瑰姞閿�-                            LocationHelper.LockLoc(wcsTask.S_START_LOC, 2);
-                            LocationHelper.LockLoc(wcsTask.S_END_LOC, 1);
-
-                            // 鏇存柊浣滀笟浠诲姟鐘舵�
-                            wmsTask.N_B_STATE = 1;
-                            WMSHelper.UpdateTaskState(wmsTask);
-                        }
                     }
                 }
             }
@@ -200,7 +182,6 @@
                         if (startLoc != null)
                         {
                             var locCntrRels = LocationHelper.GetLocCntr(startLoc.S_CODE);
-                            // 1.鍒涘缓鏂滆-鎴愭柊鏈哄彨鏂欎綔涓�                             wmsTask = new WMSTask()
                             {
                                 S_CNTR_CODE = locCntrRels[0].S_CNTR_CODE,
@@ -209,7 +190,7 @@
                                 S_START_AREA = startLoc.S_AREA_CODE,
                                 S_END_LOC = jbLoc.S_CODE,
                                 S_END_AREA = jbLoc.S_AREA_CODE,
-                                S_TYPE = "绌哄伐瑁呭嚭搴�,
+                                S_TYPE = "绌哄伐瑁呰嚜鍔ㄥ嚭搴撲换鍔�,
                                 S_OP_DEF_NAME = "鑷姩琛ュ厖绌哄伐瑁呭埌鎺ラ┏浣�,
                                 T_START_TIME = DateTime.Now,
                             };

--
Gitblit v1.9.1