From 6fe4792f1f71389400d075b57fb613d7815b6783 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期四, 10 七月 2025 17:21:51 +0800
Subject: [PATCH] 111

---
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs |   75 ++++++++++++++++++++++++++++++-------
 1 files changed, 60 insertions(+), 15 deletions(-)

diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
index bdd88ea..27e5351 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
@@ -228,6 +228,8 @@
                         MongoDBSingleton.Instance.Update<TN_I_TASK_MST>(Query.EQ("_id", mst._id), Update.Set("CN_S_ForkliftNo", action.CN_S_DEVICE_CODE), UpdateFlags.None);
                     }
 
+                    if (action.CN_N_ACTION_CODE != 1) ProcessHelper.UpdateTaskState(mst.CN_S_TASK_NO, action.CN_N_ACTION_CODE);
+
                     #region 鍐欏叆灏忚溅鐘舵�
                     writeAGVState(action);
                     #endregion
@@ -237,13 +239,25 @@
                     {
                         AMSHelper.SetStatus(action.CN_S_TASK_NO, 1, "1", action.CN_S_DEVICE_CODE, true);
                         WMSHelper.ExecuteState(mst.CN_S_SOURCE_NO, action.CN_N_ACTION_CODE);
-                        if (mst.CN_S_BUSS_TYPE == "缂撳瓨鏋跺叆绔嬪簱")
+                        if (mst.CN_S_BUSS_TYPE.Contains("缂撳瓨鏋跺叆绔嬪簱"))
                         {
-                            //灏嗕换鍔″彿鎻掑叆鍒颁腑闂磋〃
-                            var erpInfo = MongoDBSingleton.Instance.FindOne<SendErpTaskInfoTable>(Query.And(Query.EQ("Bit", mst.CN_S_START_BIT), Query.EQ("taskNo", "")), "SendErpTaskInfoTable");
-                            if (erpInfo != null)
+                            if (mst.CN_S_BUSS_TYPE.Contains("鐢甸挻"))
                             {
-                                MongoDBSingleton.Instance.Update<SendErpTaskInfoTable>(Query.And(Query.EQ("Bit", mst.CN_S_START_BIT), Query.EQ("taskNo", "")), Update.Set("taskNo", mst.CN_S_SOURCE_NO), UpdateFlags.None);
+                                //灏嗕换鍔″彿鎻掑叆鍒颁腑闂磋〃
+                                var erpInfo = MongoDBSingleton.Instance.FindOne<SendErpTaskInfoTableDG>(Query.And(Query.EQ("Bit", mst.CN_S_START_BIT), Query.EQ("taskNo", "")), "SendErpTaskInfoTableDG");
+                                if (erpInfo != null)
+                                {
+                                    MongoDBSingleton.Instance.Update<SendErpTaskInfoTableDG>(Query.And(Query.EQ("Bit", mst.CN_S_START_BIT), Query.EQ("taskNo", "")), Update.Set("taskNo", mst.CN_S_SOURCE_NO), UpdateFlags.None);
+                                }
+                            }
+                            else
+                            {
+                                //灏嗕换鍔″彿鎻掑叆鍒颁腑闂磋〃
+                                var erpInfo = MongoDBSingleton.Instance.FindOne<SendErpTaskInfoTable>(Query.And(Query.EQ("Bit", mst.CN_S_START_BIT), Query.EQ("taskNo", "")), "SendErpTaskInfoTable");
+                                if (erpInfo != null)
+                                {
+                                    MongoDBSingleton.Instance.Update<SendErpTaskInfoTable>(Query.And(Query.EQ("Bit", mst.CN_S_START_BIT), Query.EQ("taskNo", "")), Update.Set("taskNo", mst.CN_S_SOURCE_NO), UpdateFlags.None);
+                                }
                             }
                         }
                         if (mst.CN_S_BUSS_TYPE == "鑰佺墿鏂欑紦瀛樻灦鍏ョ珛搴�)
@@ -382,12 +396,16 @@
                         {
                             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 == "鐢甸挻缂撳瓨鏋跺叆绔嬪簱" || mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱(浜屾)")
+                        {
+                            MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", mst.CN_S_START_BIT), Update.Set("trayCode", "").Set("state", "0").Set("END_LOC", ""), UpdateFlags.None);
+                            MongoDBSingleton.Instance.Remove<DGPackingLineFullModel>(Query.EQ("trayCode", mst.CN_S_BATCH_NO), RemoveFlags.None);
+                        }
                         //if (mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵�) WMSHelper.ExecuteState(mst.CN_S_SOURCE_NO, action.CN_N_ACTION_CODE);
                         if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�)
                         {
                             //鎵撳寘涓嬬嚎鍙栬揣瀹屾垚锛屽皢鏁版嵁鍐欏叆涓棿琛�                         }
-
                     }
                     if (action.CN_N_ACTION_CODE == 6)
                     {
@@ -425,11 +443,16 @@
 
 
                         }
-                        if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�)
+                        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 == "鍖呰鏈烘弧鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱")
+                        {
+                            MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", mst.CN_S_END_BIT), Update.Set("state", "1"), UpdateFlags.None);
 
                         }
+
                         if (mst.CN_S_BUSS_TYPE == "3妤兼垚鍝佸嚭搴�)
                         {
                             //3妤兼垚鍝佸嚭搴撴敹鍒�涔嬪悗锛岀粓鐐硅揣浣嶆暟閲忓噺1锛岋紙娉細6淇″彿浼氬彂澶氭锛�@@ -546,7 +569,10 @@
                 {
                     CMMLog.Info($"璧风偣瀹夊叏瀵规帴锛氭敹鍒颁换鍔″彿锛歿mst.CN_S_TASK_NO},浠诲姟绫诲瀷锛歿mst.CN_S_BUSS_TYPE},浠诲姟淇″彿锛歿action.CN_N_ACTION_CODE}");
                     //3妤兼媶鐩樿ˉ绌猴細鎷嗙洏鏈鸿ˉ绌烘墭鐩�           3妤煎寘瑁呰ˉ绌猴細鍖呰鏈鸿ˉ绌烘墭
-                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋禢G" || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵� || mst.CN_S_BUSS_TYPE == "3妤煎彔鐩樹笅绾� || mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵楴G" || mst.CN_S_BUSS_TYPE == "杈呮潗鍏ュ簱")
+                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋禢G" 
+                        || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵� || mst.CN_S_BUSS_TYPE == "3妤煎彔鐩樹笅绾� || mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� 
+                        || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵楴G" || mst.CN_S_BUSS_TYPE == "杈呮潗鍏ュ簱" || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎" 
+                        || mst.CN_S_BUSS_TYPE == "鐑樺共鏈烘弧鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍓垏鏈虹┖鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍖呰鏈烘弧鎵樹笅绾�)
                     {
                         CMMLog.Info($"璧风偣瀹夊叏瀵规帴锛氬嵆灏嗚繘鍏ヤ换鍔℃祦绋嬶細{mst.CN_S_BUSS_TYPE},鐘舵�鍙蜂负:{action.CN_N_ACTION_CODE}");
                         ProcessHelper.StartPickUpDoorSafe(mst, action.CN_N_ACTION_CODE);
@@ -601,7 +627,7 @@
                 {
                     CMMLog.Info($"缁堢偣瀹夊叏瀵规帴锛氭敹鍒颁换鍔″彿锛歿mst.CN_S_TASK_NO},浠诲姟绫诲瀷锛歿mst.CN_S_BUSS_TYPE},浠诲姟淇″彿锛歿action.CN_N_ACTION_CODE}");
                     //3妤兼媶鐩樿ˉ绌猴細鎷嗙洏鏈鸿ˉ绌烘墭鐩�           3妤煎寘瑁呰ˉ绌猴細鍖呰鏈鸿ˉ绌烘墭
-                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� ||mst.CN_S_BUSS_TYPE == "鍦伴潰璐т綅鍙栨枡" || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵� || mst.CN_S_BUSS_TYPE == "3妤兼媶鐩樿ˉ绌� || mst.CN_S_BUSS_TYPE == "鍖呰绾胯ˉ绌� || mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "3妤兼垚鍝佸嚭搴�)
+                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� ||mst.CN_S_BUSS_TYPE == "鍦伴潰璐т綅鍙栨枡" || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵� || mst.CN_S_BUSS_TYPE == "3妤兼媶鐩樿ˉ绌� || mst.CN_S_BUSS_TYPE == "鍖呰绾胯ˉ绌� || mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "3妤兼垚鍝佸嚭搴� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎" || mst.CN_S_BUSS_TYPE == "鍓垏鏈烘弧鎵樹笂绾� || mst.CN_S_BUSS_TYPE == "鐑樺共鏈虹┖鎵樹笂绾�)
                     {
                         ProcessHelper.EndPickUpDoorSafe(mst, action.CN_N_ACTION_CODE);
                     }
@@ -668,9 +694,8 @@
 
                     if (result != null && result.errCode == 0)
                     {
-                        CMMLog.Info($"鐢靛姩闂ㄥ紑闂ㄦ祦绋嬶細璇诲彇鐢靛姩闂ㄩ�閬撳彿涓猴細{doorInfo.readAddr}閲岄潰鐨勫�涓簕result.result[0]},{doorInfo.readAddr + 1}閲岄潰鐨勫�涓簕result.result[1]}");
-                        Console.WriteLine($"鐢靛姩闂ㄥ紑闂ㄦ祦绋嬶細璇诲彇鐢靛姩闂ㄩ�閬撳彿涓猴細{doorInfo.readAddr}閲岄潰鐨勫�涓簕result.result[0]},{doorInfo.readAddr + 1}閲岄潰鐨勫�涓簕result.result[1]}");
-                        if(action.Ext2 == "4")
+                        CMMLog.Info($"鐢靛姩闂ㄥ紑闂ㄦ祦绋嬶細璇诲彇鐢靛姩闂ㄩ�閬撳彿涓猴細{doorInfo.readAddr}閲岄潰鐨勫�涓簕result.result[0]},{doorInfo.readAddr + 1}閲岄潰鐨勫�涓簕result.result[1]},闂ㄥ彿锛歿action.Ext2}");
+                        if(action.Ext2 == "4" || action.Ext2 == "5")
                         {
                             if (result.result[0] == 1)
                             {
@@ -681,7 +706,6 @@
                             }
                         }
                         else if(result.result[0] == 1 && result.result[1] == 1)
-                        //if(result.result[0] == 1 && result.result[1] == 1)
                         {
                             //鎺ㄩ�灏忚溅杩涘幓
                             CMMLog.Info($"鐢靛姩闂ㄥ凡缁忔墦寮�紝闂ㄥ彿锛歿action.Ext2}");
@@ -823,6 +847,29 @@
             /// </summary>
             //public string END_LOC { get; set; } //鍙樻洿娉ㄩ噴
         }
+
+        public class DGConnectingBits
+        {
+            public ObjectId _id { get; set; }
+            /// <summary>
+            /// 璐т綅缂栫爜
+            /// </summary>
+            public string Bit { get; set; }
+            /// <summary>
+            /// 鎵樼洏鍙�+            /// </summary>
+            public string trayCode { get; set; }
+            /// <summary>
+            /// 璐т綅鐘舵� 0 鏃犺揣  1 鏈夎揣
+            /// </summary>
+            public string state { get; set; }
+            /// <summary>
+            /// 浜屾浠诲姟鐨勭粓鐐硅揣浣�+            /// </summary>
+            public string END_LOC { get; set; }
+        }
+
+        #endregion
         public class InAndOutQuantity
         {
             public ObjectId _id { get; set; }
@@ -859,8 +906,6 @@
             public string Day { get; set; }
             public int Quntity { get; set; }
         }
-
-        #endregion
 
 
         internal void writeAGVState(TN_I_TASK_DTL_ACTION action)

--
Gitblit v1.9.1