From fee025c0d4fb4fd41d9dbf81b6435fd8e6229d5c Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期一, 16 六月 2025 17:33:05 +0800
Subject: [PATCH] 11111

---
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs       |   42 +++++++-
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs    |   14 ++
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs        |   38 +++++++
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs        |   13 ++
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs    |   91 +++++++++---------
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml        |   13 ++
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs         |   32 ++++++
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs |   34 ++++++
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs      |   15 +++
 9 files changed, 239 insertions(+), 53 deletions(-)

diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs
index ef0c19f..9b5ef31 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs
@@ -165,5 +165,19 @@
             result = ApiHelper.Bzxx(model);
             return result;
         }
+
+        /// <summary>
+        /// 鐢甸挻鍖呰涓嬬嚎
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("DGPackingLineFull")]
+        public SimpleResult DGPackingLineFull(string trayCode)
+        {
+            SimpleResult result = new SimpleResult();
+            CMMLog.Debug("DGPackingLineFull Request锛� + trayCode);
+            result = ApiHelper.DGPackingLineFull(trayCode);
+            return result;
+        }
     }
 }
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
index 9080940..86dda83 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
@@ -588,6 +588,37 @@
             return result;
         }
 
+        /// <summary>
+        /// 鐢甸挻杞﹂棿鍖呰涓嬬嚎鑾峰彇wms浼犲叆鐨勬墭鐩�+        /// </summary>
+        /// <param name="trayCode"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        internal static SimpleResult DGPackingLineFull(string trayCode)
+        {
+            SimpleResult result = new SimpleResult() { success = false,errCode = -1 };
+
+            if (!string.IsNullOrEmpty(trayCode)){
+                var DGInfo = MongoDBSingleton.Instance.FindOne<DGPackingLineFullModel>(Query.EQ("trayCode", trayCode), "DGPackingLineFullModel");
+                if (DGInfo == null)
+                {
+                    MongoDBSingleton.Instance.Insert<DGPackingLineFullModel>(new DGPackingLineFullModel() { trayCode = trayCode, createTime = DateTime.Now }, "DGPackingLineFullModel");
+                    result.success = true;
+                    result.errCode = 0;
+                }
+                else
+                {
+                    result.errMsg = $"褰撳墠鎵樼洏鍙凤紝宸插瓨鍦ㄤ簬ams涓棿琛ㄤ腑锛屾墭鐩樺彿锛歿trayCode}";
+                }
+            }
+            else
+            {
+                result.errMsg = $"褰撳墠鎵樼洏鍙蜂负绌�;
+            }
+            
+            return result;
+        }
+
         public class mesInfo
         {
             public int code { get; set; }
@@ -728,6 +759,13 @@
             public int haveItem { get; set; }
         }
 
+        public class DGPackingLineFullModel
+        {
+            public ObjectId _id { get; set; }
+            public string trayCode { get; set; }
+            public DateTime createTime { get; set; }
+        }
+
         public class secondResultCache
         {
             /// <summary>
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs
index 2d8dea4..98481ec 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs
@@ -414,6 +414,21 @@
             }
             #endregion
 
+            #region 10019-鐢甸挻鎺ラ┏浣嶅叆绔嬪簱
+            if (currActionModel.CN_N_ACTION_CODE == 10019)
+            {
+                var conInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList();
+                if (conInfo != null)
+                {
+                    foreach (var a in conInfo)
+                    {
+                        CMMLog.Info(JsonConvert.SerializeObject(a));
+                        PLCControl.DGInWarehouse(a.locCode);
+                    }
+                }
+            }
+            #endregion
+
             #endregion
             return bResult;
         }
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
index 7298a28..8a086bc 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
@@ -731,7 +731,7 @@
         internal static void PickUpFullDoorComplete(string ip, string taskNo)
         {
             var plc = Settings.GetPlcInfo().Where(a => a.ip == ip).FirstOrDefault();
-            if (plc != null && !plc.location.Contains("FLZT"))
+            if (plc != null)
             {
                 if (plc.location.Contains("FLZT"))
                 {
@@ -3978,6 +3978,38 @@
             }
         }
 
+        /// <summary>
+        /// 鍥涢挻鎺ラ┏浣嶅叆绔嬪簱浠诲姟
+        /// </summary>
+        /// <param name="locCode"></param>
+        internal static void DGInWarehouse(string locCode)
+        {
+            try
+            {
+                var locInfo = MongoDBSingleton.Instance.FindOne<DGConnectingBits>(Query.EQ("Bit", locCode), "DGConnectingBits");
+                if (locInfo != null)
+                {
+                    if (locInfo.state == "1")
+                    {
+                        CMMLog.Info("DGInWarehouse:" + JsonConvert.SerializeObject(locInfo));
+                        string wmstaskno = "";
+                        string trayCode = "";
+                        bool req = WMSHelper.WMSIn(locCode, "鐢甸挻鎵撳寘涓嬬嚎", ref wmstaskno, ref trayCode, "", "CKHJ");
+                        if (req)
+                        {
+                            CMMLog.Info($"鐢甸挻鎺ラ┏浣嶅叆绔嬪簱娴佺▼锛歐MS鐢熸垚浠诲姟鎴愬姛锛�);
+                            MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", locCode), Update.Set("state", "2"), "DGConnectingBits", UpdateFlags.None);
+                        }
+                        else CMMLog.Info($"鐢甸挻鎺ラ┏浣嶅叆绔嬪簱娴佺▼锛歐MS鐢熸垚浠诲姟澶辫触锛�);
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                CMMLog.Info("DGInWarehouse" + ex.Message);
+            }
+        }
+
         internal static void outWare(string taskNo,bool flage)
         {
             var plc = Settings.GetPlcInfo().Where(a => a.Extend == "2" && a.enable == 1).FirstOrDefault();
@@ -4702,7 +4734,7 @@
                             //鎴愬搧涓嬬嚎浠诲姟鐢熸垚鍒版帴椹冲钩鍙�                             string traycode = DateTime.Now.ToString("yyyy-MM-dd").Replace("-", "");
                             //鍙敓鎴愪换鍔�-                            var CBInfo = Settings.GetConnectingbitsList().Where(a => a.enable == 1).ToList();
+                            var CBInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList();
                             if (CBInfo != null)
                             {
                                 //string timeStamp = timecuo.data.First().timeStamp.ToString();
@@ -4712,7 +4744,7 @@
                                     if (!string.IsNullOrEmpty(a.locCode))
                                     {
                                         //鍦ㄤ腑闂磋〃涓煡鎵剧偣浣�-                                        var CBTable = MongoDBSingleton.Instance.FindOne<ConnectingBits>(Query.EQ("Bit", a.locCode), "ConnectingBits");
+                                        var CBTable = MongoDBSingleton.Instance.FindOne<DGConnectingBits>(Query.EQ("Bit", a.locCode), "DGConnectingBits");
                                         if (CBTable != null)
                                         {
                                             if (string.IsNullOrEmpty(CBTable.trayCode))
@@ -4722,7 +4754,7 @@
                                                 if (amsResult.success)
                                                 {
                                                     CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API鎴愬姛锛�);
-                                                    MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeStamp), UpdateFlags.None);
+                                                    MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeStamp), UpdateFlags.None);
 
                                                     break;
                                                 }
@@ -4738,7 +4770,7 @@
                                                 CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API鎴愬姛锛�);
                                                 //鎵撳寘涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛屽悜涓棿琛ㄦ彃鍏ユ暟鎹� 
-                                                MongoDBSingleton.Instance.Insert<ConnectingBits>(new ConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeStamp });
+                                                MongoDBSingleton.Instance.Insert<DGConnectingBits>(new DGConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeStamp });
                                                 break;
                                             }
                                             else CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
index 1e4237b..89db716 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
@@ -697,51 +697,52 @@
                 if (plc.Count > 0)
                 {
                     #region 鍒ゆ柇杈撻�绾挎ā寮�鍙樻洿娉ㄩ噴
-                    //bool action = true;
-                    //foreach(var a in plc)
-                    //{
-                    //    var modeResult = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
-                    //    {
-                    //        dataNum = 1,
-                    //        addr = a.readAddr + 3,
-                    //        host = a.ip,
-                    //        port = a.port
-                    //    });
-                    //    if (modeResult != null && modeResult.errCode == 0)
-                    //    {
-                    //        CMMLog.Debug($"OutWareTask锛氳鍙栨粴绛掓満{a.ip}閫氶亾鍙蜂负锛歿a.readAddr + 3}鐨勫�涓猴細{modeResult.result[0]}");
-                    //        if (modeResult.result[0] == 2)
-                    //        {
-                    //            action = false;
-                    //            CMMLog.Debug($"OutWareTask:杈撻�绾夸负 鍏ュ簱妯″紡锛岃緭閫佺嚎鐐逛綅锛歿a.location}");
-                    //            break;
-                    //        }
-                    //        else
-                    //        {
-                    //            //璇诲彇涓棿琛ㄦā寮�-                    //            var modelInfo = MongoDBSingleton.Instance.FindOne<ModeList>("ModeList");
-                    //            if (modelInfo != null)
-                    //            {
-                    //                if (modelInfo.Mode == "鍏ュ簱妯″紡")
-                    //                {
-                    //                    action = false;
-                    //                    CMMLog.Debug($"OutWareTask:涓棿琛�ModeList涓�鍏ュ簱妯″紡");
-                    //                    break;
-                    //                }
-                    //            }
-                    //            else
-                    //            {
-                    //                action = false;
-                    //                CMMLog.Debug("OutWareTask:涓棿琛�ModeList 涓虹┖");
-                    //                break;
-                    //            }
-                    //        }
-                    //    }
-                    //};
-                    //if (!action)
-                    //{
-                    //    return false;
-                    //}
+
+                    foreach(var a in plc)
+                    {
+                        bool action = false;
+                        var modeResult = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
+                        {
+                            dataNum = 1,
+                            addr = a.readAddr + 3,
+                            host = a.ip,
+                            port = a.port
+                        });
+                        if (modeResult != null && modeResult.errCode == 0)
+                        {
+                            CMMLog.Debug($"OutWareTask锛氳鍙栨粴绛掓満{a.ip}閫氶亾鍙蜂负锛歿a.readAddr + 3}鐨勫�涓猴細{modeResult.result[0]}");
+                            if (modeResult.result[0] == 2)
+                            {
+                                CMMLog.Debug($"OutWareTask:杈撻�绾夸负 鍏ュ簱妯″紡锛岃緭閫佺嚎鐐逛綅锛歿a.location}");
+                                break;
+                            }
+                            else
+                            {
+                                //璇诲彇涓棿琛ㄦā寮�+                                var modelInfo = MongoDBSingleton.Instance.FindOne<ModeList>("ModeList");
+                                if (modelInfo != null)
+                                {
+                                    if (modelInfo.Mode == "鍏ュ簱妯″紡")
+                                    {
+                                        CMMLog.Debug($"OutWareTask:涓棿琛�ModeList涓�鍏ュ簱妯″紡");
+                                    }
+                                    else
+                                    {
+                                        action = true;
+                                    }
+                                }
+                                else
+                                {
+                                    CMMLog.Debug("OutWareTask:涓棿琛�ModeList 涓虹┖");
+                                }
+                            }
+                        }
+                        if (!action)
+                        {
+                            return false;
+                        }
+                    };
+
                     #endregion
 
 
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
index 350756e..8bee715 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
@@ -387,7 +387,10 @@
                         {
                             //鎵撳寘涓嬬嚎鍙栬揣瀹屾垚锛屽皢鏁版嵁鍐欏叆涓棿琛�                         }
-
+                        if (mst.CN_S_BUSS_TYPE == "鐢甸挻缂撳瓨鏋跺叆绔嬪簱")
+                        {
+                            MongoDBSingleton.Instance.Remove<DGPackingLineFullModel>(Query.EQ("trayCode", mst.CN_S_BATCH_NO),RemoveFlags.None);
+                        }
                     }
                     if (action.CN_N_ACTION_CODE == 6)
                     {
@@ -821,6 +824,33 @@
             /// </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 timeCuo { get; set; }
+            /// <summary>
+            /// 浜屾浠诲姟鐨勭粓鐐硅揣浣�+            /// </summary>
+            //public string END_LOC { get; set; } //鍙樻洿娉ㄩ噴
+        }
+
+        #endregion
         public class InAndOutQuantity
         {
             public ObjectId _id { get; set; }
@@ -857,8 +887,6 @@
             public string Day { get; set; }
             public int Quntity { get; set; }
         }
-
-        #endregion
 
 
         internal void writeAGVState(TN_I_TASK_DTL_ACTION action)
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs
index d205ab0..5159882 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs
@@ -499,6 +499,38 @@
         }
         #endregion
 
+        #region SGConnectingbits
+        private static string _SGConnectingbits = "";
+        private static string SGConnectingbitsList
+        {
+            get
+            {
+                if (_SGConnectingbits == "")
+                {
+                    _SGConnectingbits = XmlHelper.GetElementValue("SGConnectingbits");
+                }
+                return _SGConnectingbits;
+            }
+        }
+
+        private static List<SGConnectingbitsModel> SGconnectingbits = new List<SGConnectingbitsModel>();
+        public static List<SGConnectingbitsModel> GetDGConnectingbitsList()
+        {
+            if (SGconnectingbits.Count == 0 && SGConnectingbitsList != "")
+            {
+                SGconnectingbits = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SGConnectingbitsModel>>(SGConnectingbitsList);
+            }
+            return SGconnectingbits;
+        }
+
+        public class SGConnectingbitsModel
+        {
+            public string locCode { get; set; }
+            public int[] agvSite { get; set; }
+            public int enable { get; set; }
+        }
+        #endregion
+
         #region ThirdUrl
         private static string _ThirdUrl = "";
         private static string ThirdUrlList
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs
index 624e6db..a0430f9 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs
@@ -12,6 +12,7 @@
 using System.Security.Cryptography;
 using System.Text;
 using System.Threading.Tasks;
+using static Hanhe.iWCS.JingmenGEMTwoProtocol.ApiHelper;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.ERPService;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.MESHelper;
 using static System.Runtime.CompilerServices.RuntimeHelpers;
@@ -509,6 +510,18 @@
                             //灏嗘暟鎹彃鍏ヤ腑闂磋〃
                             ERPService.senderpTask(time, startBit);
                         }
+                        else if (ItemCode == "鍥涢挻鎵撳寘涓嬬嚎")
+                        {
+                            var DGinfoList = MongoDBSingleton.Instance.FindAll<DGPackingLineFullModel>("DGPackingLineFullModel");
+                            if(DGinfoList.Count > 0){
+                                var DGinfo = DGinfoList.OrderBy(a => a.createTime).First();
+                                model.trayCode = DGinfo.trayCode;
+                                //model.endArea = endArea;
+                            }
+
+                            //灏嗘暟鎹彃鍏ヤ腑闂磋〃
+                            //ERPService.senderpTask(time, startBit);
+                        }
                     }
                     else
                     {
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml
index b17b52b..fc54f34 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml
@@ -289,6 +289,19 @@
 	</Connectingbits>
 
 	<!--
+		鎴愬搧鍏ュ簱鐨勬帴椹充綅-鍥涢挻
+		鍙傛暟璇存槑锛�+		locCode:璐т綅缂栫爜
+	-->
+	<SGConnectingbits>
+		<![CDATA[
+        [
+		 {"locCode":"1","agvSite":[],"enable":1},
+		 {"locCode":"2","agvSite":[],"enable":1}
+        ]]]>
+	</SGConnectingbits>
+
+	<!--
 		绗笁鏂规帴鍙RL閰嶇疆椤� 		鍙傛暟璇存槑锛� 		UrlNo锛歎RL鏍囪瘑(鍞竴锛屽紑鍙戞寚瀹氾紝涓嶅厑璁镐慨鏀�

--
Gitblit v1.9.1