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/PLCControl.cs |  150 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 97 insertions(+), 53 deletions(-)

diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
index be76331..5eb3b3d 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
@@ -3979,7 +3979,7 @@
         }
 
         /// <summary>
-        /// 鍥涢挻鎺ラ┏浣嶅叆绔嬪簱浠诲姟
+        /// 鐢甸挻鎺ラ┏浣嶅叆绔嬪簱浠诲姟
         /// </summary>
         /// <param name="locCode"></param>
         internal static void DGInWarehouse(string locCode)
@@ -3992,15 +3992,27 @@
                     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)
+                        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鐢熸垚浠诲姟澶辫触锛�);
+                        }
                     }
                 }
             }
@@ -4525,7 +4537,7 @@
         }
 
         /// <summary>
-        /// 鍥涢挻A锛堟礂鏉跨儤骞叉満缁勶級璁惧涓婄┖涓嬫弧
+        /// 鐢甸挻A锛堟礂鏉跨儤骞叉満缁勶級璁惧涓婄┖涓嬫弧
         /// </summary>
         /// <param name="plc"></param>
         /// <exception cref="NotImplementedException"></exception>
@@ -4548,8 +4560,8 @@
                         {
                             //閫佺┖
                             bool req = WMSHelper.WMSOut(plc.location, "", "");
-                            if (req) CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇绌烘墭鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級
-                            else CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇绌烘墭鍑哄簱鐢熸垚浠诲姟澶辫触锛�);
+                            if (req) CMMLog.Debug($"鐢甸挻A璁惧 璋冪敤WMS鑾峰彇绌烘墭鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級
+                            else CMMLog.Debug($"鐢甸挻A璁惧 璋冪敤WMS鑾峰彇绌烘墭鍑哄簱鐢熸垚浠诲姟澶辫触锛�);
                         }
                         if (result.result[0] == 2)
                         {
@@ -4557,20 +4569,20 @@
                             string wmstaskno = "";
                             string traycode = "";
                             bool req = WMSHelper.WMSIn(plc.location, "", ref wmstaskno, ref traycode);
-                            if (req) CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇婊℃墭鍏ュ簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級
-                            else CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇婊℃墭鍏ュ簱鐢熸垚浠诲姟澶辫触锛�);
+                            if (req) CMMLog.Debug($"鐢甸挻A璁惧 璋冪敤WMS鑾峰彇婊℃墭鍏ュ簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級
+                            else CMMLog.Debug($"鐢甸挻A璁惧 璋冪敤WMS鑾峰彇婊℃墭鍏ュ簱鐢熸垚浠诲姟澶辫触锛�);
                         }
                     }
                 }
                 catch (Exception ex)
                 {
-                    CMMLog.Info($"鍥涢挻A璁惧 err:{ex.Message}");
+                    CMMLog.Info($"鐢甸挻A璁惧 err:{ex.Message}");
                 }
             }
         }
 
         /// <summary>
-        /// 鍥涢挻C锛堥挻鏉垮壀鍒囨満缁勶級璁惧涓婃弧涓嬬┖
+        /// 鐢甸挻C锛堥挻鏉垮壀鍒囨満缁勶級璁惧涓婃弧涓嬬┖
         /// </summary>
         /// <param name="a"></param>
         /// <exception cref="NotImplementedException"></exception>
@@ -4593,8 +4605,8 @@
                         {
                             //閫佹弧
                             bool req = WMSHelper.WMSOut(plc.location, "", "");
-                            if (req) CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇婊℃墭鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級
-                            else CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇婊℃墭鍑哄簱鐢熸垚浠诲姟澶辫触锛�);
+                            if (req) CMMLog.Debug($"鐢甸挻C璁惧 璋冪敤WMS鑾峰彇婊℃墭鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級
+                            else CMMLog.Debug($"鐢甸挻C璁惧 璋冪敤WMS鑾峰彇婊℃墭鍑哄簱鐢熸垚浠诲姟澶辫触锛�);
                         }
                         if (result.result[0] == 2)
                         {
@@ -4602,14 +4614,14 @@
                             string wmstaskno = "";
                             string traycode = "";
                             bool req = WMSHelper.WMSIn(plc.location, "", ref wmstaskno, ref traycode);
-                            if (req) CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇绌烘墭鍏ュ簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級
-                            else CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇绌烘墭鍏ュ簱鐢熸垚浠诲姟澶辫触锛�);
+                            if (req) CMMLog.Debug($"鐢甸挻C璁惧 璋冪敤WMS鑾峰彇绌烘墭鍏ュ簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級
+                            else CMMLog.Debug($"鐢甸挻C璁惧 璋冪敤WMS鑾峰彇绌烘墭鍏ュ簱鐢熸垚浠诲姟澶辫触锛�);
                         }
                     }
                 }
                 catch (Exception ex)
                 {
-                    CMMLog.Info($"鍥涢挻C璁惧 err:{ex.Message}");
+                    CMMLog.Info($"鐢甸挻C璁惧 err:{ex.Message}");
                 }
             }
         }
@@ -4639,7 +4651,7 @@
                     if (result.result[0] == 1)
                     {
                         //鎺ㄩ�灏忚溅杩涘叆
-                        TSHelper.GoToAGV(taskNo, 10, 3);
+                        TSHelper.GoToAGV(taskNo, 10, 1);
                         writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
                         {
                             host = plc.ip,
@@ -4727,65 +4739,78 @@
                         host = plc.ip,
                         port = plc.port
                     });
+                    CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細璇诲彇閫氶亾鍙蜂负锛歿plc.readAddr},ip:{plc.ip},绔彛锛歿plc.port}");
+                    CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾垮�涓猴細{result.result[0]}");
                     if (result != null && result.errCode == 0)
                     {
                         if (result.result[0] == 1)
                         {
                             //鎴愬搧涓嬬嚎浠诲姟鐢熸垚鍒版帴椹冲钩鍙�-                            string traycode = DateTime.Now.ToString("yyyy-MM-dd").Replace("-", "");
-                            //鍙敓鎴愪换鍔�-                            var CBInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList();
-                            if (CBInfo != null)
+                            string traycode = "";
+                            var DGinfoList = MongoDBSingleton.Instance.FindAll<DGPackingLineFullModel>("DGPackingLineFullModel");
+                            if (DGinfoList.Count > 0)
                             {
-                                //string timeStamp = timecuo.data.First().timeStamp.ToString();
-                                string timeStamp = "";
-                                foreach (var a in CBInfo)
+                                var DGinfo = DGinfoList.Where(a => a.isUse == "0").OrderBy(a => a.createTime).First();
+                                //灏嗘暟鎹彃鍏ヤ腑闂磋〃
+                                traycode = DGinfo.trayCode;
+                            }
+                            //鍙敓鎴愪换鍔�+                            CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾�鑾峰彇鎵樼洏鍙凤細{traycode}");
+                            if (!string.IsNullOrEmpty(traycode))
+                            {
+                                var CBInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList();
+                                if (CBInfo != null)
                                 {
-                                    if (!string.IsNullOrEmpty(a.locCode))
+                                    foreach (var a in CBInfo)
                                     {
-                                        //鍦ㄤ腑闂磋〃涓煡鎵剧偣浣�-                                        var CBTable = MongoDBSingleton.Instance.FindOne<DGConnectingBits>(Query.EQ("Bit", a.locCode), "DGConnectingBits");
-                                        if (CBTable != null)
+                                        if (!string.IsNullOrEmpty(a.locCode))
                                         {
-                                            if (string.IsNullOrEmpty(CBTable.trayCode))
+                                            //鍦ㄤ腑闂磋〃涓煡鎵剧偣浣�+                                            var CBTable = MongoDBSingleton.Instance.FindOne<DGConnectingBits>(Query.EQ("Bit", a.locCode), "DGConnectingBits");
+                                            if (CBTable != null)
+                                            {
+                                                if (string.IsNullOrEmpty(CBTable.trayCode))
+                                                {
+                                                    //鐢熸垚浠诲姟锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�+                                                    var amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), plc.location, a.locCode, "鍖呰鏈烘弧鎵樹笅绾�, 0, traycode);
+                                                    if (amsResult.success)
+                                                    {
+                                                        CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API鎴愬姛锛�);
+                                                        MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode), UpdateFlags.None);
+                                                        MongoDBSingleton.Instance.Update<DGPackingLineFullModel>(Query.EQ("trayCode", traycode), Update.Set("isUse", "1"), UpdateFlags.None);
+                                                        break;
+                                                    }
+                                                    else CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
+                                                }
+                                            }
+                                            else
                                             {
                                                 //鐢熸垚浠诲姟锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�                                                 var amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), plc.location, a.locCode, "鍖呰鏈烘弧鎵樹笅绾�, 0, traycode);
                                                 if (amsResult.success)
                                                 {
                                                     CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API鎴愬姛锛�);
-                                                    MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeStamp), UpdateFlags.None);
+                                                    //鎵撳寘涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛屽悜涓棿琛ㄦ彃鍏ユ暟鎹� 
+                                                    MongoDBSingleton.Instance.Insert<DGConnectingBits>(new DGConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0" });
+                                                    MongoDBSingleton.Instance.Update<DGPackingLineFullModel>(Query.EQ("trayCode", traycode), Update.Set("isUse", "1"), UpdateFlags.None);
                                                     break;
                                                 }
                                                 else CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
                                             }
                                         }
-                                        else
-                                        {
-                                            //鐢熸垚浠诲姟锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�-                                            var amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), plc.location, a.locCode, "鍖呰鏈烘弧鎵樹笅绾�, 0, traycode);
-                                            if (amsResult.success)
-                                            {
-                                                CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API鎴愬姛锛�);
-                                                //鎵撳寘涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛屽悜涓棿琛ㄦ彃鍏ユ暟鎹�-
-                                                MongoDBSingleton.Instance.Insert<DGConnectingBits>(new DGConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeStamp });
-                                                break;
-                                            }
-                                            else CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
-                                        }
+                                        else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鐐逛綅鏈厤缃�);
                                     }
-                                    else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鐐逛綅鏈厤缃�);
                                 }
+                                else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鏈厤缃�);
                             }
-                            else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鏈厤缃�);
+                            
                         }
                     }
                 }
                 catch (Exception ex)
                 {
-                    CMMLog.Info($"鍥涢挻C璁惧 err:{ex.Message}");
+                    CMMLog.Info($"鐢甸挻C璁惧 err:{ex.Message}");
                 }
             }
         }
@@ -4834,14 +4859,33 @@
             public string Msg { get; set; }
             public LKData Data { get; set; }
             public int AffectedRows { get; set; }
-
             public bool Success { get; set; }
         }
 
         public class LKData
         {
+            /// <summary>
+            /// 鎵规鍙�+            /// </summary>
             public string CN_S_LOT_NO { get; set; }
-            public int CN_S_EXT8 { get; set; }
+            /// <summary>
+            /// 鐗╂枡缂栫爜
+            /// </summary>
+            public string CN_S_ITEM_CODE { get; set; }
+            /// <summary>
+            /// 妗堕噸閲�+            /// </summary>
+            public float CN_F_QUANTITY { get; set; }
+            /// <summary>
+            /// 妗舵暟閲�+            /// </summary>
+            public int CN_N_CONUT { get; set; }
+            /// <summary>
+            /// 鐢熶骇鏃ユ湡
+            /// </summary>
+            public string CN_T_PRODUCTION_S { get; set; }
+
+            public string CN_S_EXT8 { get; set; }
         }
 
         #endregion

--
Gitblit v1.9.1