From 41accee47c8eeb8c6408507f873d68f890092468 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期四, 10 七月 2025 17:18:14 +0800
Subject: [PATCH] 111

---
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs       |   26 ++++++--
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs    |   98 +++++++++++++++++++++++++++++++-
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs |    7 +-
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs      |    3 +
 4 files changed, 118 insertions(+), 16 deletions(-)

diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs
index 7be0e86..81e6d42 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs
@@ -444,6 +444,9 @@
             }
             #endregion
 
+            #region 鐢熶骇閫�簱
+            #endregion
+
             #endregion
             return bResult;
         }
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
index 6529bb7..5eb3b3d 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
@@ -3992,15 +3992,27 @@
                     if (locInfo.state == "1")
                     {
                         CMMLog.Info("DGInWarehouse:" + JsonConvert.SerializeObject(locInfo));
-                        string wmstaskno = "";
-                        string trayCode = locInfo.trayCode;
-                        bool req = WMSHelper.WMSIn(locCode, "鐢甸挻鎵撳寘涓嬬嚎", ref wmstaskno, ref trayCode, "", "DGCK");
-                        if (req)
+                        if (!string.IsNullOrEmpty(locInfo.END_LOC))
                         {
-                            CMMLog.Info($"鐢甸挻鎺ラ┏浣嶅叆绔嬪簱娴佺▼锛歐MS鐢熸垚浠诲姟鎴愬姛锛�);
-                            MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", locCode), Update.Set("state", "2"), "DGConnectingBits", UpdateFlags.None);
+                            var amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), locInfo.Bit, locInfo.END_LOC, "鐢甸挻鐢熶骇閫�簱(浜屾)", 0, locInfo.trayCode);
+                            if(amsResult.success)
+                            {
+                                CMMLog.Info($"鐢甸挻鐢熶骇閫�簱(浜屾)娴佺▼锛歐MS鐢熸垚浠诲姟鎴愬姛锛�);
+                                MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", locCode), Update.Set("state", "2"), "DGConnectingBits", UpdateFlags.None);
+                            }
                         }
-                        else CMMLog.Info($"鐢甸挻鎺ラ┏浣嶅叆绔嬪簱娴佺▼锛歐MS鐢熸垚浠诲姟澶辫触锛�);
+                        else
+                        {
+                            string wmstaskno = "";
+                            string trayCode = locInfo.trayCode;
+                            bool req = WMSHelper.WMSIn(locCode, "鐢甸挻鎵撳寘涓嬬嚎", ref wmstaskno, ref trayCode, "", "DGCK");
+                            if (req)
+                            {
+                                CMMLog.Info($"鐢甸挻鎺ラ┏浣嶅叆绔嬪簱娴佺▼锛歐MS鐢熸垚浠诲姟鎴愬姛锛�);
+                                MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", locCode), Update.Set("state", "2"), "DGConnectingBits", UpdateFlags.None);
+                            }
+                            else CMMLog.Info($"鐢甸挻鎺ラ┏浣嶅叆绔嬪簱娴佺▼锛歐MS鐢熸垚浠诲姟澶辫触锛�);
+                        }
                     }
                 }
             }
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
index ce7e3bc..3a74ae0 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
@@ -16,10 +16,12 @@
 using System.Net.Configuration;
 using System.Text;
 using System.Web.UI.WebControls.WebParts;
+using static Hanhe.iWCS.JingmenGEMTwoProtocol.ApiHelper;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.EnentListen;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.MESHelper;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.PLCControl;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.ProtocolAnalysis;
+using static System.Runtime.CompilerServices.RuntimeHelpers;
 
 namespace Hanhe.iWCS.JingmenGEMTwoProtocol
 {
@@ -182,11 +184,27 @@
                     //涓や釜鎺ラ┏骞冲彴
                     if (mst.CN_S_START_BIT == conn1[0].locCode || mst.CN_S_START_BIT == conn1[1].locCode)
                     {
-                        start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[1];
+                        if (mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱(浜屾)")
+                        {
+                            start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[0];
+                        }
+                        else
+                        {
+                            start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[1];
+                        }
+                        
                     }
                     if (mst.CN_S_END_BIT == conn1[0].locCode || mst.CN_S_END_BIT == conn1[1].locCode)
                     {
-                        end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0];
+                        if (mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱")
+                        {
+                            end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[1];
+                        }
+                        else
+                        {
+                            end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0];
+                        }
+                        
                     }
                 }
                 if (conn1.Count == 1)
@@ -194,11 +212,26 @@
                     //涓�釜鎺ラ┏骞冲彴
                     if (mst.CN_S_START_BIT == conn1[0].locCode)
                     {
-                        start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[1];
+                        if(mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱(浜屾)")
+                        {
+                            start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[0];
+                        }
+                        else
+                        {
+                            start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[1];
+                        }
+                        
                     }
                     if (mst.CN_S_END_BIT == conn1[0].locCode)
                     {
-                        end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0];
+                        if(mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱")
+                        {
+                            end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[1];
+                        }
+                        else
+                        {
+                            end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0];
+                        }
                     }
                 }
                 #endregion
@@ -234,7 +267,7 @@
                         }
                     }
                 }
-                if (mst.CN_S_BUSS_TYPE == "缂撳瓨鏋跺叆绔嬪簱" || mst.CN_S_BUSS_TYPE == "鐢甸挻缂撳瓨鏋跺叆绔嬪簱")
+                if (mst.CN_S_BUSS_TYPE == "缂撳瓨鏋跺叆绔嬪簱" || mst.CN_S_BUSS_TYPE == "鐢甸挻缂撳瓨鏋跺叆绔嬪簱" || mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱")
                 {
                     TRow = "1";
                 }
@@ -529,6 +562,10 @@
                         result = true;
                     }
                 }
+                if (mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱")
+                {
+                    SGTK(mst);
+                }
                 var bussTypeInfo = Settings.GetHouWeiCodeo().Where(a => a.location == mst.Ext1).FirstOrDefault();
                 if (bussTypeInfo != null)
                 {
@@ -592,6 +629,57 @@
         }
 
         /// <summary>
+        /// 鍥涢挻鐢熶骇閫�簱
+        /// 灏嗕换鍔℃媶鍒嗘垚涓ゆ浠诲姟锛岀涓�浠诲姟缁堢偣鏀逛负鎺ラ┏骞冲彴
+        /// 浜屾浠诲姟浠庢帴椹冲钩鍙板叆搴�+        /// </summary>
+        /// <param name="mst"></param>
+        private static void SGTK(TN_I_TASK_MST mst)
+        {
+            var CBInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList();
+            if (CBInfo != null)
+            {
+                foreach (var a in CBInfo)
+                {
+                    if (!string.IsNullOrEmpty(a.locCode))
+                    {
+                        //鍦ㄤ腑闂磋〃涓煡鎵剧偣浣�+                        var CBTable = MongoDBSingleton.Instance.FindOne<DGConnectingBits>(Query.EQ("Bit", a.locCode), "DGConnectingBits");
+                        if (CBTable != null)
+                        {
+                            if (string.IsNullOrEmpty(CBTable.trayCode))
+                            {
+                                //鏀逛换鍔$殑缁堢偣
+                                MongoDBSingleton.Instance.Update<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", mst.CN_S_TASK_NO), Update.Set("CN_S_END_BIT", a.locCode), UpdateFlags.None);
+
+                                new SqlHelper<object>().ExecuteSql($"update dbo.tn_am_task_mst set CN_S_END_BIT='{a.locCode}',CN_S_END_AGVBIT = '{StockInstance.Instance.GetAGVCodeForBitCode(a.locCode)}' where CN_S_TASK_NO = '{mst.CN_S_TASK_NO}'");
+
+                                CMMLog.Debug($"鐢熶骇閫�簱锛氭洿鏀圭粓鐐规垚鍔燂紒");
+                                MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", mst.CN_S_BATCH_NO).Set("END_LOC",mst.CN_S_END_BIT), UpdateFlags.None);
+                                break;
+                            }
+                        }
+                        else
+                        {
+                            //鏀逛换鍔$殑缁堢偣
+                            MongoDBSingleton.Instance.Update<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", mst.CN_S_TASK_NO), Update.Set("CN_S_END_BIT", a.locCode), UpdateFlags.None);
+
+                            new SqlHelper<object>().ExecuteSql($"update dbo.tn_am_task_mst set CN_S_END_BIT='{a.locCode}',CN_S_END_AGVBIT = '{StockInstance.Instance.GetAGVCodeForBitCode(a.locCode)}' where CN_S_TASK_NO = '{mst.CN_S_TASK_NO}'");
+
+                            CMMLog.Debug($"鐢熶骇閫�簱锛氭洿鏀圭粓鐐规垚鍔燂紒");
+                            //鎵撳寘涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛屽悜涓棿琛ㄦ彃鍏ユ暟鎹�+
+                            MongoDBSingleton.Instance.Insert<DGConnectingBits>(new DGConnectingBits { Bit = a.locCode, trayCode = mst.CN_S_BATCH_NO,END_LOC = mst.CN_S_END_BIT, state = "0" });
+                            break;
+                        }
+                    }
+                    else CMMLog.Debug("鐢熶骇閫�簱鎺ラ┏浣嶇偣浣嶆湭閰嶇疆");
+                }
+            }
+            else CMMLog.Debug("鐢熶骇閫�簱鎺ラ┏浣嶆湭閰嶇疆");
+        }
+
+        /// <summary>
         /// 杈呮潗鍏ュ簱娴佺▼
         /// </summary>
         /// <param name="mst"></param>
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
index de44725..8341a46 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
@@ -396,7 +396,7 @@
                         {
                             MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", mst.CN_S_START_BIT), Update.Set("trayCode", "").Set("state", "0"), UpdateFlags.None);
                         }
-                        if (mst.CN_S_BUSS_TYPE == "鐢甸挻缂撳瓨鏋跺叆绔嬪簱")
+                        if (mst.CN_S_BUSS_TYPE == "鐢甸挻缂撳瓨鏋跺叆绔嬪簱" || mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱(浜屾)")
                         {
                             MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", mst.CN_S_START_BIT), Update.Set("trayCode", "").Set("state", "0"), UpdateFlags.None);
                             MongoDBSingleton.Instance.Remove<DGPackingLineFullModel>(Query.EQ("trayCode", mst.CN_S_BATCH_NO), RemoveFlags.None);
@@ -446,9 +446,8 @@
                         if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎")
                         {
                             MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", mst.CN_S_END_BIT), Update.Set("state", "1"), UpdateFlags.None);
-
                         }
-                        if (mst.CN_S_BUSS_TYPE == "鍖呰鏈烘弧鎵樹笅绾�)
+                        if (mst.CN_S_BUSS_TYPE == "鍖呰鏈烘弧鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱")
                         {
                             MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", mst.CN_S_END_BIT), Update.Set("state", "1"), UpdateFlags.None);
 
@@ -867,7 +866,7 @@
             /// <summary>
             /// 浜屾浠诲姟鐨勭粓鐐硅揣浣�             /// </summary>
-            //public string END_LOC { get; set; } //鍙樻洿娉ㄩ噴
+            public string END_LOC { get; set; }
         }
 
         #endregion

--
Gitblit v1.9.1