From b754b0d966600a3b12f7c6d2449e5bcb00e34779 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期五, 06 六月 2025 16:56:07 +0800
Subject: [PATCH] 111

---
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/TSHelper.cs                                        |   20 +-
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MoboxHelper.cs                                     |    2 
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs                                       |  227 +++++++++++++++++++++++++
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs                                     |   12 +
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/AMSHelper.cs                                       |    3 
 ams/Hanhe.iWCS.TaizhouGEMTwoTCP/.vs/Hanhe.iWCS.TaizhouGEMTwoTCP/v17/DocumentLayout.json |   65 +++++++
 ams/Hanhe.iWCS.TaizhouGEMTwoTCP/Hanhe.iWCS.TaizhouGEMTwoTCP.sln                         |   22 ++
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs                                      |  112 +++++++++---
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs                                   |   12 +
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs                                       |   22 ++
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProtocolAnalysis.cs                                |   17 +
 11 files changed, 469 insertions(+), 45 deletions(-)

diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/AMSHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/AMSHelper.cs
index 76d2e4a..c1644aa 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/AMSHelper.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/AMSHelper.cs
@@ -146,7 +146,8 @@
         /// <param name="actionCode"></param>
         public static void SetStatus(string taskNo, int orderNo, string actionCode, string forkliftNo, bool success = false) {
             HardwareAccessObject AMSHao = HardwareAccessHelper.Instance.GetEquipmentsHAO(Constants.WMS_DEVICE_TYPE_AMS);
-            if (AMSHao != null) {
+            if (AMSHao != null)
+            {
                 //           if (actionCode == "2")
                 //           {
                 //actionCode = "瀹屾垚";
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs
index 46bc41a..9107ef9 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs
@@ -166,7 +166,15 @@
                     {
                         list.ForEach(a =>
                         {
-                            PLCControl.PickUpBlankTwo(a);
+                            if(a.deviceType == "1")
+                            {
+                                PLCControl.PickUpBlank(a);
+                            }
+                            else
+                            {
+                                PLCControl.PickUpBlankTwo(a);
+                            }
+                            
                         });
                     }
                 }
@@ -327,7 +335,7 @@
             {
                 lock (lock10015)
                 {
-                    //ERPService.insertMidTable();
+                    ERPService.insertMidTable();
                 }
             }
             #endregion
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs
index db55fe0..78b8f99 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs
@@ -1431,5 +1431,27 @@
             public string FStaffNumber { get; set; }
         }
 
+        public class trayTypeTable
+        {
+
+            public ObjectId _id { get; set; }
+            /// <summary>
+            /// 璐т綅缂栫爜
+            /// </summary>
+            public string locCode { get; set; }
+            /// <summary>
+            /// 鎵樼洏绫诲瀷
+            /// </summary>
+            public string trayType { get; set; }
+        }
+
+        public class STOCK_LOCATION_Two
+        {
+            public ObjectId _id { get; set; }
+            public string CN_S_LOCATION_CODE { get; set; }
+            public int CN_N_AGV_LOCATION { get; set; }
+        }
+
+
     }
 }
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MoboxHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MoboxHelper.cs
index ac30c05..bdad4ed 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MoboxHelper.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MoboxHelper.cs
@@ -58,7 +58,7 @@
             var result = false;
             try
             {
-                string taskState = state == 3 ? "寮�鍙栬揣" : state == 4 ? "鍙栬揣瀹屾垚" : state == 5 ? "寮�鍗歌揣" : state == 6 ? "鍗歌揣瀹屾垚" : "";
+                string taskState = state == 3 ? "寮�鍙栬揣" : state == 4 ? "鍙栬揣瀹屾垚" : state == 5 ? "寮�鍗歌揣" : state == 6 ? "鍗歌揣瀹屾垚" : state == 2 ? "瀹屾垚" : "";
                 CMMLog.Info($"SQLServer 鏇存柊浠诲姟鐘舵�锛氫换鍔″彿锛歿taskNo},鏇存敼鐘舵�锛歿taskState}");
                 if (!string.IsNullOrEmpty(taskState)) result = new SqlHelper<SQL_TN_I_TASK_MST>().ExecuteSql($"update dbo.tn_am_task_mst set CN_S_STATUS='{taskState}' where CN_S_TASK_NO='{taskNo}'");
             }
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs
index 70ca140..a87bf99 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs
@@ -543,10 +543,10 @@
                 CMMLog.Debug($"鏀笰GV鍙傛暟锛�0锛�");
                 //鍒ゆ柇浠诲姟璧风偣锛屾壘鍒拌捣鐐瑰寘瑁呮満璁惧鍙凤紝鍦ㄤ腑闂磋〃MachineInfo涓煡鎵句笂涓�彴璁惧锛堝寘瑁呮満锛夌殑鏁版嵁锛岄�杩噈odbus閫氶亾浼犲叆锛堟暟鎹渶瑕佽浆鎹紝ASCII杞�6short锛屽彲鑳借繕闇�鏁版嵁鎷嗗垎锛�                 var taskInfo = MongoDBSingleton.Instance.FindOne<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", taskNo), "TN_I_TASK_MST");
-                if (plc.deviceType == "21")
+                if (plc.deviceType == "22")
                 {
                     //鍥涢挻杞﹂棿
-                    var machine = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.EQ("trayCode", taskInfo.CN_S_BATCH_NO), "MachineInfo");
+                    var machine = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.EQ("trayCode", taskInfo.CN_S_BATCH_NO), "MachineInfoTetracobalt");
                     if (machine != null)
                     {
                         CMMLog.Debug("杩涘叆machine鍒ゆ柇");
@@ -735,7 +735,15 @@
                 });
                 if (result.result.Length > 0)
                 {
-                    MongoDBSingleton.Instance.Update<MachineInfo>(Query.EQ("trayCode", model.ext2), Update.Set("secondNg", result.result[2]), UpdateFlags.None);
+                    if(plc.deviceType == "22")
+                    {
+                        MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(Query.EQ("trayCode", model.ext2), Update.Set("secondNg", result.result[2]), UpdateFlags.None);
+                    }
+                    else
+                    {
+                        MongoDBSingleton.Instance.Update<MachineInfo>(Query.EQ("trayCode", model.ext2), Update.Set("secondNg", result.result[2]), UpdateFlags.None);
+                    }
+                    
                     //鑾峰彇浠庡绉板钩鍙拌鍑虹殑 鏃堕棿鎴筹紝骞惰浆鎹㈠鐞嗕负 string 瀛楃涓�                     //string timeStamp = Convert.ToInt32(Completion(result.result[26]) + Completion(result.result[27]), 2).ToString();
                     string timeStamp = Convert.ToInt32(Completion(result.result[25]) + Completion(result.result[26]), 2).ToString();
@@ -759,7 +767,15 @@
                     if (result.result[0] == 3 && result.result[2] == 1)
                     {
                         CMMLog.Info($"SecondWeightActionOne:鍑嗗鐢熸垚澶嶇О鍏ョ紦瀛樻灦浠诲姟锛屽紑濮嬬‘瀹氭墭鐩樺彿:{model.ext2}");
-                        req = WMSHelper.WMSIn(plc.location, model.ext2, ref wmstaskno, ref traycode, timeStamp);
+                        if(plc.deviceType == "22")
+                        {
+                            req = WMSHelper.WMSInTwo(plc.location, model.ext2, ref wmstaskno, ref traycode, timeStamp);
+                        }
+                        else
+                        {
+                            req = WMSHelper.WMSIn(plc.location, model.ext2, ref wmstaskno, ref traycode, timeStamp);
+                        }
+                        
                         ERPService.updatePackageInfo(model.machince, model.ext2, result.result);
                         //if (req) TSHelper.GoToAGV(cN_S_TASK_NO, 10, 6);
                         //else CMMLog.Debug($"WMS杩斿洖{req}");
@@ -775,7 +791,15 @@
                     {
                         //澶嶇О骞冲彴澶嶇О璐х墿NG鈥斺�杩涘叆NG澶嶇О娴佺▼  璋冪敤WMS鎺ュ彛鍒嗛厤璐ф灦搴撲綅
                         //TSHelper.GoToAGV(cN_S_TASK_NO, 10, 6);
-                        req = WMSHelper.WMSIn(plc.location, model.ext2, ref wmstaskno, ref traycode, timeStamp);
+                        if(plc.deviceType == "22")
+                        {
+                            req = WMSHelper.WMSInTwo(plc.location, model.ext2, ref wmstaskno, ref traycode, timeStamp);
+                        }
+                        else
+                        {
+                            req = WMSHelper.WMSIn(plc.location, model.ext2, ref wmstaskno, ref traycode, timeStamp);
+                        }
+                        
                         if (req) CMMLog.Info($"SecondWeightActionOne:澶嶇О鍏ョ紦瀛樻灦NG娴佺▼锛歐MS鐢熸垚浠诲姟鎴愬姛锛�);
                         else CMMLog.Info($"SecondWeightActionOne:澶嶇О鍏ョ紦瀛樻灦NG娴佺▼锛歐MS鐢熸垚浠诲姟澶辫触锛�);
                         var plcInfo = Settings.GetPlcInfo().Where(a => a.location == model.ext3).FirstOrDefault();
@@ -914,7 +938,7 @@
                     CMMLog.Debug($"涓夋ゼ鍙屽眰缂撳瓨鏋跺嵏璐т氦浜掞細trayCode:{trayCodeTask.CN_S_BATCH_NO}");
                     if (plc.deviceType =="22")
                     {
-                        MongoDBSingleton.Instance.Remove<MachineInfoTetracobalt>(Query.EQ("trayCode", trayCodeTask.CN_S_BATCH_NO), "MachineInfo", RemoveFlags.Single);
+                        MongoDBSingleton.Instance.Remove<MachineInfoTetracobalt>(Query.EQ("trayCode", trayCodeTask.CN_S_BATCH_NO), "MachineInfoTetracobalt", RemoveFlags.Single);
                         if (ERPService.ERPSwitch01 == "0") MongoDBSingleton.Instance.Remove<MachineInfoTetracobalt>(Query.EQ("trayCode", trayCodeTask.CN_S_BATCH_NO), "MachineInfoTetracobalt", RemoveFlags.Single);
                     }
                     else
@@ -1168,10 +1192,10 @@
 
         public static void WriteCacheStackingData(Settings.PlcInfo plc, TN_I_TASK_MST task, WMSInfo machine)
         {
-            if (plc.deviceType == "23")
+            if (plc.deviceType == "22")
             {
                 //鍥涢挻杞﹂棿
-                var machineTwo = MongoDBSingleton.Instance.FindOne<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", task.CN_S_BATCH_NO), "MachineInfoTwo");
+                var machineTwo = MongoDBSingleton.Instance.FindOne<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", task.CN_S_BATCH_NO), "MachineInfoTwoTetracobalt");
                 CMMLog.Info($"3妤肩紦瀛樻灦鍏ュ彔鎵�鏀跺埌淇″彿4锛屾煡璇achineInfoTwoTetracobalt琛ㄤ俊鎭細{JsonConvert.SerializeObject(machineTwo)}銆�);
                 if (machineTwo != null)
                 {
@@ -1188,7 +1212,7 @@
                     CMMLog.Info($"3妤肩紦瀛樻灦鍏ュ彔鎵�杩斿洖鏁版嵁锛歿JsonConvert.SerializeObject(wirteall01)},IPort:{plc.ip},{plc.port}");
                     if (wirteall01.errCode == 0)
                     {
-                        MongoDBSingleton.Instance.Remove<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", task.CN_S_BATCH_NO), "MachineInfoTwo", RemoveFlags.Single);
+                        MongoDBSingleton.Instance.Remove<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", task.CN_S_BATCH_NO), "MachineInfoTwoTetracobalt", RemoveFlags.Single);
                     }
                 }
             }
@@ -1723,7 +1747,23 @@
                             string trayType = "";
                             if(plc.deviceType == "25") trayType = result.result[1] == 1 ? "宸濆瓧鎵� : "鐢板瓧鎵�;
                             bool req = WMSHelper.WMSIn(plc.location, "", ref wmstaskno, ref traycode,"","",false, trayType);
-                            if (req) CMMLog.Debug($"璋冪敤WMS鑾峰彇涓夋ゼ鍙犵洏鏈虹敓鎴愪换鍔℃垚鍔燂紒");
+                            if (req)
+                            {
+                                CMMLog.Debug($"璋冪敤WMS鑾峰彇涓夋ゼ鍙犵洏鏈虹敓鎴愪换鍔℃垚鍔燂紒");
+                                if (plc.deviceType == "25")
+                                {
+                                    //璁板綍鎵樼洏绫诲瀷
+                                    var trayTypeInfo = MongoDBSingleton.Instance.FindOne<trayTypeTable>(Query.EQ("locCode", plc.location), "trayTypeTable");
+                                    if (trayTypeInfo == null)
+                                    {
+                                        MongoDBSingleton.Instance.Insert<trayTypeTable>(new trayTypeTable
+                                        {
+                                            locCode = plc.location,
+                                            trayType = result.result[1].ToString()
+                                        });
+                                    }
+                                }
+                            }
                             else CMMLog.Debug($"璋冪敤WMS鑾峰彇涓夋ゼ鍙犵洏鏈虹敓鎴愪换鍔″け璐ワ紒");
                         }
                     }
@@ -2706,8 +2746,9 @@
         {
             CMMLog.Info($"鏁版嵁澶勭悊娴佺▼锛氳繘鍏ユ暟鎹鐞嗘祦绋嬶紒");
             
-            string empCode = GetTrayCode(result.Take(5).ToArray());//鍛樺伐缂栫爜
+            string empCode = RemoveNull(GetTrayCode(result.Take(5).ToArray()));//鍛樺伐缂栫爜
             string trayCode = GetTrayCode(result.Skip(5).Take(3).ToArray());//鎵樼洏鐮�+            trayCode = "0";
             string location = GetTrayCode(result.Skip(8).Take(1).ToArray());//璁惧璐т綅缂栫爜
             if(trayCode != null && location != null)
             {
@@ -2731,7 +2772,7 @@
                     }
                     else CMMLog.Info($"鏁版嵁澶勭悊娴佺▼锛氬寘瑁呮満鏃燤ES鎯呭喌涓嬶紝妯℃嫙MES鏁版嵁锛屼腑闂磋〃<MachineInfoTetracobalt>涓凡鏈夊綋鍓嶅寘瑁呮満鍙穥location}涓洪鐨勬暟鎹�);
                 }
-                var info = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.EQ("machineNo", location), "MachineInfo");
+                var info = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.EQ("machineNo", location), "MachineInfoTetracobalt");
 
                 if (info != null)
                 {
@@ -2777,7 +2818,7 @@
                 }
                 else CMMLog.Info($"鏁版嵁澶勭悊娴佺▼锛氳鏌ヨ<MachineInfoTetracobalt>琛ㄤ腑machineNo瀛楁鏄惁涓哄綋鍓嶅寘瑁呮満鍙凤紝骞朵笖trayCode鏄惁涓�");
 
-                var infoPack = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.And(Query.EQ("machineNo", location), Query.EQ("trayCode", "0")), "MachineInfo");
+                var infoPack = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.And(Query.EQ("machineNo", location), Query.EQ("trayCode", "0")), "MachineInfoTetracobalt");
 
                 if (infoPack != null)
                 {
@@ -2806,18 +2847,18 @@
                         //娉ㄦ剰锛氳繖閲岃祴鍊间腑闂磋〃鍙傛暟璇峰鐓т俊鎭氦浜掕〃鍏蜂綋閫氶亾鍊煎搴�                         UpdateBuilder update = Update.Set("palletLayers", info.secondNg.ToString()).Set("overlappingLayers", info.addState.ToString()).Set("bagNo", info.packageCode).
                             Set("lotNo", info.lotNo).Set("productType", info.productType).Set("materialCode", info.materialCode).Set("materialName", info.materialName).Set("measurementUnit", info.measurementUnit);
-                        MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(Query.EQ("machineNo", location), update, "MachineInfo", UpdateFlags.None);
-                        MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", trayCode), update, "MachineInfoTwo", UpdateFlags.None);
+                        MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(Query.EQ("machineNo", location), update, "MachiMachineInfoTetracobaltneInfo", UpdateFlags.None);
+                        MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", trayCode), update, "MachineInfoTwoTetracobalt", UpdateFlags.None);
                     }
                     //鍦ㄤ腑闂磋〃涓壘鍒板垰鍒氭彃鍏ョ殑MES鏁版嵁锛堢洰鍓嶈繕娌℃湁璇诲彇骞跺啓鍏ヨ澶囨暟鎹級
                     var query1 = Query.And(Query.EQ("machineNo", location), Query.EQ("trayCode", "0"));
                     UpdateBuilder updateBuider = Update.Set("empCode", info.empCode).Set("location", info.location).
                         Set("trayCode", info.trayCode).Set("productWeight", info.productWeight).
-                        Set("trayCodeWeight", info.trayCodeWeight).Set("oneTrayWeight", info.oneTrayWeight).
+                        Set("trayCodeWeight", info.trayCodeWeight).Set("oneTrayWeight", info.oneTrayWeight).Set("trayType", info.trayType).Set("addState", info.addState).
                         Set("addWeight", info.addWeight).Set("packNg", info.packNg).Set("secondNg", info.secondNg).Set("productTime", info.productTime).
                         Set("jsonData", json).Set("modify", DateTime.Now);
-                    MongoDBSingleton.Instance.Update<MachineInfo>(query1, updateBuider, "MachineInfo", UpdateFlags.None);
-                    MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", trayCode), updateBuider, "MachineInfoTwo", UpdateFlags.None);
+                    MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(query1, updateBuider, "MachineInfoTetracobalt", UpdateFlags.None);
+                    MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", trayCode), updateBuider, "MachineInfoTwoTetracobalt", UpdateFlags.None);
                     CMMLog.Info($"鏁版嵁澶勭悊娴佺▼锛氭洿鏂癕achineInfoTetracobalt涓棿琛ㄥ垰鍒氭彃鍏ョ殑MES鏁版嵁!璁惧鍙蜂负锛歿location},鎵樼洏鍙蜂负锛歿trayCode}");
                 }
                 else
@@ -2834,8 +2875,8 @@
                         Set("trayCodeWeight", info.trayCodeWeight).Set("oneTrayWeight", info.oneTrayWeight).
                         Set("addWeight", info.addWeight).Set("packNg", info.packNg).Set("secondNg", info.secondNg).Set("productTime", info.productTime).
                         Set("jsonData", json).Set("modify", DateTime.Now);
-                        MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(query2, updateBuider, "MachineInfo", UpdateFlags.None);
-                        MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", trayCode), updateBuider, "MachineInfoTwo", UpdateFlags.None);
+                        MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(query2, updateBuider, "MachineInfoTetracobalt", UpdateFlags.None);
+                        MongoDBSingleton.Instance.Update<MachineInfoTwoTetracobalt>(Query.EQ("trayCode", trayCode), updateBuider, "MachineInfoTwoTetracobalt", UpdateFlags.None);
                         CMMLog.Info($"鏁版嵁澶勭悊娴佺▼锛氭洿鏂癕achineInfoTetracobalt涓棿琛ㄥ叾浠栬澶囩殑鏁版嵁!璁惧鍙蜂负锛歿location},鎵樼洏鍙蜂负锛歿trayCode}");
                     }
                     else CMMLog.Info($"鏁版嵁澶勭悊娴佺▼锛氭棤娉曞湪MachineInfoTetracobalt涓棿琛ㄤ腑鎵惧埌褰撳墠璁惧缂栧彿鐨勬暟鎹紒褰撳墠璁惧缂栧彿涓猴細{location}锛屾墭鐩樼爜涓猴細{trayCode}");
@@ -3613,7 +3654,7 @@
         internal static void CheckPackingMachineTetracobalt(Settings.PlcInfo pmInfo)
         {
             //var count = MongoDBSingleton.Instance.FindOne<>//occupy
-            var count = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.EQ("occupy", "1"), "MachineInfo");
+            var count = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.EQ("occupy", "1"), "MachineInfoTetracobalt");
 
             //妫�煡鍖呰鏈洪�閬�鏄惁鏈変笅鏂欎俊鍙凤紝濡傛灉鏈夌敓鎴愪笅鏂欎换鍔°�绾跨▼寰幆璇诲彇锛屾棤闇�缃惊鐜�鈥斺�閫氶亾0鍙傛暟涓�
             if (count == null)
@@ -3665,40 +3706,57 @@
                                                 {
                                                     //鑾峰彇鎵樼洏鐮佺瓑淇℃伅  璇诲彇閫氶亾 11銆�2銆�3鐨勬暟鎹綔涓烘墭鐩樼爜   璇诲彇鍏跺畠閫氶亾 閲嶉噺 鍙犲寘绛変俊鎭�鎵�湁鏁版嵁瀛樺叆MachineInfo琛�                                                     GetMachineDataTetracobalt(trayCode.result, false);
-                                                    var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo");
+                                                    var tray = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.EQ("machineNo", pmInfo.location), "MachineInfoTetracobalt");
                                                     if (tray != null)
                                                     {
+                                                        CMMLog.Debug($"锛堝洓閽磋溅闂达級鍖呰涓嬬嚎娴佺▼-{pmInfo.location}锛歁achineInfoTetracobalt鏁版嵁鎻掑叆鎴愬姛锛�);
                                                         bool IsContLaterCode = true;
                                                         if (ERPService.ERPSwitch01 == "1")
                                                         {
-                                                            string employeeId = "G" + tray.trayCodeWeight.PadLeft(7, '0');
+                                                            string employeeId = "G" + tray.empCode.PadLeft(7, '0');
+                                                            CMMLog.Debug($"锛堝洓閽磋溅闂达級鍖呰涓嬬嚎娴佺▼-{pmInfo.location}锛氬憳宸ョ紪鐮侊細{employeeId}");
                                                             // 鍒ゆ柇褰撳墠銆愬憳宸ョ紪鍙枫�閫氶亾淇℃伅璇诲嚭鏉ョ殑鍛樺伐缂栧彿鏄惁宸茬粡瀛樺湪浜庢垜浠殑鍛樺伐淇℃伅琛�ERPEmployeeTable(鏌ヨ瀛楁-employee_id)
                                                             var erpEmployeeInfo = MongoDBSingleton.Instance.FindOne<ERPEmployeeTable>(Query.EQ("employee_id", employeeId), "ERPEmployeeTable");
                                                             if (erpEmployeeInfo == null) IsContLaterCode = false;
+                                                            else CMMLog.Debug($"锛堝洓閽磋溅闂达級鍖呰涓嬬嚎娴佺▼-{pmInfo.location}锛氬憳宸ョ紪鐮佹煡璇㈡垚鍔�);
                                                         }
 
                                                         if (IsContLaterCode)
                                                         {
+                                                            string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1);
+                                                            tray.trayCode = "VW" + timeStamp;
+                                                            MongoDBSingleton.Instance.Update<MachineInfoTetracobalt>(Query.EQ("_id", tray._id), Update.Set("trayCode", tray.trayCode), UpdateFlags.None);
+                                                            CMMLog.Debug($"锛堝洓閽磋溅闂达級鍖呰涓嬬嚎娴佺▼-{pmInfo.location}锛氭墭鐩樼爜锛歿tray.trayCode}");
                                                             if (tray.addState == 0)
                                                             {
-                                                                MongoDBSingleton.Instance.Remove<MachineInfoTetracobalt>(Query.EQ("machineNo", pmInfo.location), "MachineInfo", RemoveFlags.None);
+                                                                MongoDBSingleton.Instance.Remove<MachineInfoTetracobalt>(Query.EQ("machineNo", pmInfo.location), "MachineInfoTetracobalt", RemoveFlags.None);
                                                                 if (ERPService.ERPSwitch01 == "0") MongoDBSingleton.Instance.Remove<MachineInfoTetracobalt>(Query.EQ("machineNo", pmInfo.location), "MachineInfoTwo", RemoveFlags.None);
                                                                 CMMLog.Debug($"锛堝洓閽磋溅闂达級鍖呰涓嬬嚎娴佺▼-{pmInfo.location}锛氬彔鎵樺眰鏁颁负0锛屼笉鍏佽鐢熸垚浠诲姟");
                                                             }
                                                             else if (tray.trayCode != "0" && !string.IsNullOrEmpty(tray.trayCode))
                                                             {
-                                                                string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1);
                                                                 HHAmsExecuteResult req = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), pmInfo.location, PlcBit02, "3妤煎寘瑁呭彇鏂�鍥涢挻)", 0, tray.trayCode, timeStamp);
                                                                 if (req.success)
                                                                 {
                                                                     string weight = (double.Parse(tray.oneTrayWeight) / 100).ToString();
-                                                                    //int weight = int.Parse(tray.oneTrayWeight) / 100;
                                                                     ERPService.packageInfo(tray.machineNo, tray.trayCode, tray.lotNo, weight);
+
+                                                                    //璁板綍鎵樼洏绫诲瀷
+                                                                    var trayTypeInfo = MongoDBSingleton.Instance.FindOne<trayTypeTable>(Query.EQ("locCode", pmInfo.location), "trayTypeTable");
+                                                                    if(trayTypeInfo == null)
+                                                                    {
+                                                                        MongoDBSingleton.Instance.Insert<trayTypeTable>(new trayTypeTable
+                                                                        {
+                                                                            locCode = pmInfo.location,
+                                                                            trayType = tray.trayType
+                                                                        });
+                                                                    }
                                                                 }
                                                             }
                                                         }
                                                         else
                                                         {
+                                                            CMMLog.Debug($"锛堝洓閽磋溅闂达級鍖呰涓嬬嚎娴佺▼-{pmInfo.location}锛氬憳宸ョ紪鐮佹煡璇㈠け璐�);
                                                             //妫�储鍛樺伐淇℃伅澶辫触鍐欏叆瀵规柟閫氶亾鍊� 璇诲彇鍦板潃+3 
                                                             var wirteall01 = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
                                                             {
@@ -3749,7 +3807,7 @@
                 // }
                 // else CMMLog.Info($"褰撳墠鍖呰鏈哄嚭鐜版晠闅滐紝鏃犳硶鐢熸垚浠诲姟銆傚寘瑁呮満鍙凤細{pmInfo.location}");
             }
-            else CMMLog.Debug($"褰撳墠machineInfo涓棿琛ㄥ凡瀛樺湪鏁版嵁锛歿JsonConvert.SerializeObject(count)}");
+            else CMMLog.Debug($"褰撳墠MachineInfoTetracobalt涓棿琛ㄥ凡瀛樺湪鏁版嵁锛歿JsonConvert.SerializeObject(count)}");
         }
 
 
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs
index 16352e4..c65ff93 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProcessHelper.cs
@@ -132,6 +132,14 @@
                 string TRow = string.IsNullOrEmpty(end.CN_S_FLOOR) ? "1" : end.CN_S_FLOOR;
                 CMMLog.Info($"浠诲姟鎺ㄩ�锛氳揣浣嶇紪鐮侊細璧风偣淇℃伅:{JsonConvert.SerializeObject(start)},缁堢偣淇℃伅:{JsonConvert.SerializeObject(end)}锛涗换鍔′俊鎭細{JsonConvert.SerializeObject(mst)}");
 
+                var trayInfo = MongoDBSingleton.Instance.FindOne<trayTypeTable>(Query.EQ("locCode", mst.CN_S_START_BIT), "trayTypeTable");
+                if (trayInfo != null && trayInfo.trayType == "2")
+                {
+                    start.CN_N_AGV_LOCATION = MongoDBSingleton.Instance.FindOne<STOCK_LOCATION_Two>(Query.EQ("CN_S_LOCATION_CODE", mst.CN_S_START_BIT), "STOCK_LOCATION_Two").CN_N_AGV_LOCATION;
+                    end.CN_N_AGV_LOCATION = MongoDBSingleton.Instance.FindOne<STOCK_LOCATION_Two>(Query.EQ("CN_S_LOCATION_CODE", mst.CN_S_END_BIT), "STOCK_LOCATION_Two").CN_N_AGV_LOCATION;
+                    CMMLog.Info($"浠诲姟鎺ㄩ�锛氱敯瀛楁墭璧风偣缁堢偣 绔欑偣鏇存敼锛岃捣鐐癸細{start.CN_N_AGV_LOCATION}锛岀粓鐐癸細{end.CN_N_AGV_LOCATION}");
+                }
+
                 if (mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋�)
                 {
                     CMMLog.Info($"浠诲姟鎺ㄩ�鐗规畩浠诲姟澶勭悊-3妤煎绉板叆缂撳瓨鏋讹細浠诲姟鍙凤細{mst.CN_S_TASK_NO},鍑嗗鑾峰彇 sendBit 閰嶇疆鏁版嵁銆傚娉細姝や换鍔$被鍨嬩粎鑾峰彇璧风偣銆�);
@@ -155,6 +163,10 @@
                         {
                             start.CN_N_AGV_LOCATION = agvLoc.Site[emp.Quantity - 1];
                         }
+                        if(agvLoc.trayType == 2)
+                        {
+                            end.CN_N_AGV_LOCATION = MongoDBSingleton.Instance.FindOne<STOCK_LOCATION_Two>(Query.EQ("CN_S_LOCATION_CODE", mst.CN_S_END_BIT), "STOCK_LOCATION_Two").CN_N_AGV_LOCATION;
+                        }
                     }
                 }
                 try
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProtocolAnalysis.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProtocolAnalysis.cs
index e425a79..3dea30b 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProtocolAnalysis.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ProtocolAnalysis.cs
@@ -222,7 +222,7 @@
                     {
                         // 鍥犺皟鐢ˋMSAPI鏃犳硶鍦ㄥ紑濮嬪彇璐ф椂鏇存柊杞﹀彿锛屽洜姝ゆ澶勭洿鎺ヨ繛鎺MS鏁版嵁搴撹繘琛屾洿鏂�                         MoboxHelper.UpdateEndBit(mst.CN_S_TASK_NO, action.CN_S_DEVICE_CODE);
-                        if (action.CN_N_ACTION_CODE != 1 && action.CN_N_ACTION_CODE != 2) MoboxHelper.UpdateTaskState(mst.CN_S_TASK_NO, action.CN_N_ACTION_CODE);
+                        if (action.CN_N_ACTION_CODE != 1) MoboxHelper.UpdateTaskState(mst.CN_S_TASK_NO, action.CN_N_ACTION_CODE);
                     }
                     if (action.CN_N_ACTION_CODE == 1)
                     {
@@ -238,9 +238,17 @@
                         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妤肩紦瀛樻灦鍏ュ彔鎵�) PLCControl.writeStackingMouth6(mst.CN_S_END_BIT, mst.CN_S_TASK_NO);
                         if (mst.CN_S_BUSS_TYPE == "鍖呰绾胯ˉ绌�) PLCControl.PickUpBlankCompleteTetracobalt(mst.CN_S_END_BIT, mst.CN_S_START_BIT);
+
+                        //鍥涢挻杞﹂棿鏍规嵁璧风偣鏀瑰彉璐т綅鎵樼洏绫诲瀷缁戝畾鍏崇郴
+                        var trayInfo = MongoDBSingleton.Instance.FindOne<trayTypeTable>(Query.EQ("locCode", mst.CN_S_START_BIT), "trayTypeTable");
+                        if(trayInfo != null)
+                        {
+                            MongoDBSingleton.Instance.Update<trayTypeTable>(Query.EQ("locCode", mst.CN_S_START_BIT), Update.Set("locCode", mst.CN_S_END_BIT), UpdateFlags.None);
+                        }
                     }
                     if (action.CN_N_ACTION_CODE == 6)
                     {
+                        AMSHelper.SetStatus(action.CN_S_TASK_NO, 1, "6", action.CN_S_DEVICE_CODE, true);
                         if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呰ˉ绌�)
                         {
                             //灏嗘暟鎹褰曞埌涓棿琛�@@ -268,6 +276,9 @@
                             {
                                 MongoDBSingleton.Instance.Update<SLPTLoc>(Query.EQ("locCode", mst.CN_S_END_BIT), Update.Set("taskNum", slptInfo.taskNum - 1).Set("count", slptInfo.count + 1), UpdateFlags.None);
                             }
+
+                            //鍥涢挻鎴愬搧鍑哄簱鍗歌揣瀹屾垚锛屽垹闄よ揣浣嶆墭鐩樼被鍨嬬粦瀹氳〃鏁版嵁
+                            MongoDBSingleton.Instance.Remove<trayTypeTable>(Query.EQ("locCode", mst.CN_S_END_BIT), "trayTypeTable", RemoveFlags.None);
                         }
                     }
                     if (action.CN_N_ACTION_CODE == 2) {
@@ -300,10 +311,6 @@
 
                         iCallTask.DeleteTask(mst.CN_S_TASK_NO);
                     }
-                    //if (action.CN_N_ACTION_CODE == 5)
-                    //{
-                    //    CMMLog.Info($"3妤肩紦瀛樻灦鍏ュ彔鎵�鏀跺埌淇″彿5锛屽紑濮嬪噯澶囧啓鍏ュ彔鐩樻満鏁版嵁銆�);
-                    //}
                 }
             }
             #endregion
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/TSHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/TSHelper.cs
index 4c186cc..04d58b4 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/TSHelper.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/TSHelper.cs
@@ -23,9 +23,11 @@
         {
             bool bResult = false;
             //TN_I_TASK_DTL_ACTION GoToAction = WorkFlowAction.GetActionNode(taskNo, orderNo, 0);
-            TN_I_TASK_DTL_ACTION GoToAction = WorkFlowAction.GetActionNode(taskNo, 1, 0);
-            if (GoToAction != null) {
-                HardwareAccessObject GoToAGVHao = HardwareAccessHelper.Instance.GetEquipmentsHAO(GoToAction.CN_S_PROGRAM_CODE);
+            //TN_I_TASK_DTL_ACTION GoToAction = WorkFlowAction.GetActionNode(taskNo, 1, 0);
+            //if (GoToAction != null) {
+                
+                //HardwareAccessObject GoToAGVHao = HardwareAccessHelper.Instance.GetEquipmentsHAO(GoToAction.CN_S_PROGRAM_CODE);
+                HardwareAccessObject GoToAGVHao = HardwareAccessHelper.Instance.GetEquipmentsHAO("1");
                 if (GoToAGVHao != null) {
                     //鍙戦�琛岃蛋鎸囦护 鍒癆GV
                     CMMLog.Info($"銆愭澀鍙堿GV銆慓oToAGVHao:{GoToAGVHao}");
@@ -60,12 +62,12 @@
                     CMMLog.Info($"銆愭澀鍙堿GV銆慓oToAGVHao==null!");
                     Console.WriteLine($"銆愭澀鍙堿GV銆慓oToAGVHao==null!");
                 }
-            }
-            else
-            {
-                CMMLog.Info($"銆愭澀鍙堿GV銆慓oToAction==null!");
-                Console.WriteLine($"銆愭澀鍙堿GV銆慓oToAction==null!");
-            }
+            //}
+            //else
+            //{
+            //    CMMLog.Info($"銆愭澀鍙堿GV銆慓oToAction==null!");
+            //    Console.WriteLine($"銆愭澀鍙堿GV銆慓oToAction==null!");
+            //}
             return bResult;
         }
 
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs
index e566c2f..a45cbfd 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs
@@ -539,6 +539,233 @@
             return result;
         }
 
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="startBit"></param>
+        /// <param name="ItemCode"></param>
+        /// <param name="taskNo"></param>
+        /// <param name="trayCode"></param>
+        /// <param name="timeStamp"></param>
+        /// <param name="employee_id">鍛樺伐缂栫爜</param>
+        /// <returns></returns>
+        public static bool WMSInTwo(string startBit, string ItemCode, ref string taskNo, ref string trayCode, string timeStamp = "", string employee_id = "", bool isTwo = false, string trayType = "")
+        {
+            //XMZ001A11-1
+            //startBit = startBit.Substring(0, 9);
+            bool result = false;
+            HardwareAccessObject hao = HardwareAccessHelper.Instance.GetEquipmentsHAO(Constants.WMS_DEVICE_TYPE_WMS);
+            string msg = "";
+            if (hao != null)
+            {
+                //http://192.168.1.199:9001/api/wmsapi/InWorkArea
+                WMSInModel model = new WMSInModel();
+                model.startBit = startBit;
+                model.isTransport = "N";
+                model.needCreateAMSTask = "Y";
+                model.projectCode = "glm";
+                model.trayType = trayType;
+                model.data = new List<ItemData>();
+                CMMLog.Info($"WMSInTwo-{startBit}:ItemCode绫诲瀷涓猴細{ItemCode}");
+                if (!string.IsNullOrEmpty(ItemCode))
+                {
+                    //var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.Or(Query.EQ("isNeedTray", 1), Query.EQ("isNeedTray", 2)), "TimeCuoInfoCom");
+                    if (ItemCode == "time" || ItemCode == "鎷嗙洏鍙樻洿")
+                    {
+                        if (!isTwo)
+                        {
+                            int timeInt = int.Parse(trayCode);
+                            var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("timeStamp", timeInt), "TimeCuoInfoCom");
+                            CMMLog.Info($"WMSIn-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={timeInt},璇诲嚭 TimeCuoInfoCom 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}");
+                            if (ItemCode == "time" && time != null)
+                            {
+                                int TimeStamp = string.IsNullOrEmpty(timeStamp) ? time.timeStamp : int.Parse(timeStamp);
+                                CMMLog.Info($"WMSIn-{startBit}:time鑾峰彇鏃堕棿鎴虫暟鎹负锛歿TimeStamp}锛�);
+                                model.data.Add(new ItemData()
+                                {
+                                    //1妤兼媶鐩樻満璋僕MS鑾峰彇鍏ュ簱缁堢偣锛屼紶杈撴椂闂存埑鏁版嵁锛堟殏瀹氾級
+                                    //isFold = time.isFold,
+                                    //packingMachineNumber = time.packingMachineNumber,
+                                    itemCode = time.productModel,
+                                    lotNo = time.batchNumber,
+                                    machineNo = time.packingMachineNumber.ToString(),
+                                    packageCode = time.bagNumber,
+                                    palletLayers = time.isNeedTray.ToString(),
+                                    foldingbag = time.isFold.ToString(),
+                                    //totalWeight = time.totalWeight,
+                                    timeStamp = TimeStamp,
+                                    photoURL = time.photoURL,
+                                    //productType = time.productModel,
+                                    //bagNumber = time.bagNumber,
+                                    //needWeight = time.needWeight,
+                                    realWeight = time.realWeight,
+                                    //batchNumber = time.batchNumber,
+                                    //totalCount = time.totalCount,
+
+                                    Jm_Item_Code = time.materialCode,
+                                    Jm_Item_Name = time.materialName,
+                                    Jm_Item_Model = time.productModel,
+                                    Jm_Item_Unit = time.measurementUnit,
+                                    Jm_Item_Staff = employee_id
+                                });
+
+                                // 闈濫RP鍙樻洿娴佺▼鍙互鐩存帴鍒犻櫎 TimeCuoInfoCom 琛�+                                if (ERPService.ERPSwitch01 == "0")
+                                {
+                                    CMMLog.Info($"WMSIn-{startBit}:鏌ヨ鏉′欢锛歵imeStamp={timeInt},闈濫RP鍙樻洿娴佺▼鐩存帴鍒犻櫎 TimeCuoInfoCom 琛紒");
+                                    MongoDBSingleton.Instance.Remove<TimeCuoInfoCom>(Query.EQ("timeStamp", timeInt), RemoveFlags.Single);
+                                }
+                            }
+                            else if (ItemCode == "鎷嗙洏鍙樻洿")
+                            {
+                                model.data.Add(new ItemData()
+                                {
+                                    //1妤兼媶鐩樻満璋僕MS鑾峰彇鍏ュ簱缁堢偣锛屼紶杈撴椂闂存埑鏁版嵁锛堟殏瀹氾級
+                                    //isFold = time.isFold,
+                                    //packingMachineNumber = time.packingMachineNumber,
+                                    itemCode = "1",
+                                    lotNo = "1",
+                                    machineNo = "1",
+                                    packageCode = "1",
+                                    palletLayers = "1",
+
+                                    foldingbag = "1",
+                                    //totalWeight = time.totalWeight,
+                                    timeStamp = 1,
+                                    photoURL = "1",
+                                    //productType = time.productModel,
+                                    //bagNumber = time.bagNumber,
+                                    //needWeight = time.needWeight,
+                                    realWeight = 1,
+                                    //batchNumber = time.batchNumber,
+                                    //totalCount = time.totalCount,
+                                });
+                            }
+                        }
+                        else
+                        {
+                            var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom");
+                            CMMLog.Info($"WMSIn-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={timeStamp},璇诲嚭 TimeCuoInfoComTwo 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}");
+                            if (ItemCode == "time" && time != null)
+                            {
+                                CMMLog.Info($"WMSIn-{startBit}:time鑾峰彇鏃堕棿鎴虫暟鎹负锛歿time.TimeCuo}锛�);
+                                model.data.Add(new ItemData()
+                                {
+                                    //1妤兼媶鐩樻満璋僕MS鑾峰彇鍏ュ簱缁堢偣锛屼紶杈撴椂闂存埑鏁版嵁锛堟殏瀹氾級
+                                    //isFold = time.isFold,
+                                    //packingMachineNumber = time.packingMachineNumber,
+                                    itemCode = time.productModel,
+                                    lotNo = time.lotNo,
+                                    machineNo = time.packingMachineNumber1.ToString(),
+                                    packageCode = time.bagNumber1.ToString(),
+                                    //palletLayers = time.bagNumber1.ToString(),
+                                    foldingbag = time.isFold1.ToString(),
+                                    //totalWeight = time.totalWeight,
+                                    timeStamp = int.Parse(time.TimeCuo),
+                                    //productType = time.productModel,
+                                    //bagNumber = time.bagNumber,
+                                    //needWeight = time.needWeight,
+                                    realWeight = time.realWeight1,
+                                    //batchNumber = time.batchNumber,
+                                    //totalCount = time.totalCount,
+
+                                    Jm_Item_Code = time.materialCode,
+                                    Jm_Item_Name = time.materialName,
+                                    Jm_Item_Model = time.productModel,
+                                    Jm_Item_Unit = time.measurementUnit,
+                                    Jm_Item_Staff = employee_id
+                                });
+                            }
+                        }
+
+                    }
+                    else
+                    {
+                        var info = MongoDBSingleton.Instance.FindOne<MachineInfoTetracobalt>(Query.EQ("trayCode", ItemCode), "MachineInfoTetracobalt");
+                        // ERP鍙樻洿鏂板鏁版嵁鐩存帴浠� ERP鐗╂枡涓棿琛�ERPItemTable 鑾峰彇(鏍规嵁鐗╂枡缂栫爜)
+                        CMMLog.Info($"WMSInTwo-{startBit}:鏌ヨ鏉′欢锛歵rayCode={ItemCode},璇诲嚭 MachineInfoTetracobalt 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(info)}");
+                        if (info != null)
+                        {
+                            var erpItemTableInfo = MongoDBSingleton.Instance.FindOne<ERPItemTable>(Query.EQ("item_code", info.materialCode), "ERPItemTable");
+                            CMMLog.Info($"WMSInTwo-{startBit}:鏌ヨ鏉′欢锛歩tem_code={info.materialCode},璇诲嚭 ERPItemTable 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(erpItemTableInfo)}");
+                            model.locationGear = info.secondNg.ToString();
+                            model.trayCode = info.trayCode;
+                            string product = !string.IsNullOrEmpty(info.productType) ? info.productType : erpItemTableInfo.item_spec;
+                            model.data.Add(new ItemData()
+                            {
+                                itemCode = product,
+                                lotNo = info.lotNo,
+                                machineNo = info.machineNo,
+                                packageCode = info.packageCode,
+                                palletLayers = info.palletLayers,
+                                foldingbag = info.overlappingLayers,
+                                itemState = info.secondNg,
+                                productWeight = info.productWeight,
+                                trayCodeWeight = info.trayCodeWeight,
+                                oneTrayWeight = info.oneTrayWeight,
+                                //bagNo = info.bagNo,
+                                //productType = info.productType,
+                                //materialCode = info.materialCode,
+                                //location = info.location,
+                                //addWeight = info.addWeight,
+                                //packNg = info.packNg,
+                                //addState = info.addState,
+
+                                Jm_Item_Code = info.materialCode,
+                                Jm_Item_Name = erpItemTableInfo.item_name,
+                                Jm_Item_Model = erpItemTableInfo.item_spec,
+                                Jm_Item_Unit = erpItemTableInfo.item_uom,
+                                Jm_Item_Staff = info.trayCodeWeight
+                            });
+                        }
+                    }
+                }
+                string msgData = JsonConvert.SerializeObject(model);
+                string reqStr = "鐗╂枡鍚�" + ItemCode + ";鏁伴噺";
+                string feedback = "";
+
+                CMMLog.Info($"WMSIn-{startBit}:銆愯皟鐢╳ms鑾峰彇鍏ュ簱璐т綅銆�鍙戦�鏁版嵁锛歿JsonConvert.SerializeObject(msgData)}锛岀墿鏂欐潯浠讹細ItemCode锛歿ItemCode},trayCode锛歿trayCode}");
+                var url = hao.WebUrl + "GlmInSendTask";
+                try
+                {
+                    //hao.WebUrl = "http://192.168.1.199:9001/api/";
+                    feedback = helper.WebPost(url, msgData).Replace(@"\", "").Trim();
+                    Console.WriteLine(feedback);
+                    CMMLog.Info($"WMSIn-{startBit}:銆愯皟鐢╳ms鑾峰彇鍏ュ簱璐т綅銆�鎺ユ敹鏁版嵁锛� + feedback);
+                    if (!string.IsNullOrEmpty(feedback))
+                    {
+                        //var wmsResponse = JsonConvert.DeserializeObject<WMSResponseModel>(feedback.Substring(1, feedback.Length - 2));
+                        var wmsResponse = JsonConvert.DeserializeObject<WMSResponseModel>(feedback);
+                        //var res = feedback.Replace("{", "").Replace("}", "").Replace(":", "=").Replace(",", ";").Replace('"', ' ');
+                        if (wmsResponse.Success == true)
+                        {
+                            msg = $"WMSIn-{startBit}:銆愯皟鐢╳ms鑾峰彇鍏ュ簱璐т綅銆戞垚鍔燂紒杩斿洖缁撴灉=" + wmsResponse.Success + ";璋冪敤WebUrl=" + url + ";杈撳叆鍙傛暟=" + msgData;
+                        }
+                        else
+                        {
+                            string errMsg = wmsResponse.Code + "-" + wmsResponse.Msg;
+                            msg = $"WMSIn-{startBit}:銆愯皟鐢╳ms鑾峰彇鍏ュ簱璐т綅銆戝け璐ワ紒閿欒鍘熷洜=" + errMsg + ";璋冪敤WebUrl=" + url + ";杈撳叆鍙傛暟=" + msgData;
+                        }
+                        result = wmsResponse.Success;
+                    }
+                    else
+                    {
+                        string errMsg = "鍙傛暟鍙嶉绌哄�";
+                        msg = $"WMSIn-{startBit}:銆愯皟鐢╳ms鑾峰彇鍏ュ簱璐т綅銆戝け璐ワ紒閿欒鍘熷洜=" + errMsg + ";璋冪敤WebUrl=" + url + ";杈撳叆鍙傛暟=" + msgData;
+                    }
+                }
+                catch (Exception e)
+                {
+                    CMMLog.Error(string.Format($"WMSIn-{startBit}:銆愯皟鐢╳ms鑾峰彇鍏ュ簱璐т綅澶辫触銆戝紓甯竰0}", e.Message), e);
+                    msg = $"WMSIn-{startBit}:銆愯皟鐢╳ms鑾峰彇鍏ュ簱璐т綅銆戝け璐ワ紒瑙f瀽杩斿洖鍊煎嚭閿�" + feedback + ";璋冪敤WebUrl=" + url + ";杈撳叆鍙傛暟=" + msgData;
+                }
+            }
+            else msg = string.Format($"WMSIn-{startBit}:璋冪敤wms澶辫触锛宎ms宸ヤ綔涓績娌℃湁璁剧疆锛�);
+            CMMLog.Info(msg);
+            Console.WriteLine(msg);
+            return result;
+        }
+
         public static bool WMSOut(string endBit, string ItemCode) {
             //endBit = endBit.Substring(0, 9);
             bool result = false;
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoTCP/.vs/Hanhe.iWCS.TaizhouGEMTwoTCP/v17/DocumentLayout.json b/ams/Hanhe.iWCS.TaizhouGEMTwoTCP/.vs/Hanhe.iWCS.TaizhouGEMTwoTCP/v17/DocumentLayout.json
new file mode 100644
index 0000000..ee8b7dc
--- /dev/null
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoTCP/.vs/Hanhe.iWCS.TaizhouGEMTwoTCP/v17/DocumentLayout.json
@@ -0,0 +1,65 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u6CF0\u5DDE\u683C\u6797\u7F8E\\ams\\Hanhe.iWCS.TaizhouGEMTwoTCP\\",
+  "Documents": [],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": -1,
+          "Children": [
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
+            }
+          ]
+        },
+        {
+          "DockedWidth": 22,
+          "SelectedChildIndex": -1,
+          "Children": [
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:1:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoTCP/Hanhe.iWCS.TaizhouGEMTwoTCP.sln b/ams/Hanhe.iWCS.TaizhouGEMTwoTCP/Hanhe.iWCS.TaizhouGEMTwoTCP.sln
new file mode 100644
index 0000000..af89c10
--- /dev/null
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoTCP/Hanhe.iWCS.TaizhouGEMTwoTCP.sln
@@ -0,0 +1,22 @@
+锘�+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.12.35707.178 d17.12
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hanhe.iWCS.TaizhouGEMTwoTCP", "Hanhe.iWCS.TaizhouGEMTwoTCP.csproj", "{4F1FB9D4-758C-4C66-9CA9-6D3EC3DED6C7}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{4F1FB9D4-758C-4C66-9CA9-6D3EC3DED6C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4F1FB9D4-758C-4C66-9CA9-6D3EC3DED6C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4F1FB9D4-758C-4C66-9CA9-6D3EC3DED6C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4F1FB9D4-758C-4C66-9CA9-6D3EC3DED6C7}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

--
Gitblit v1.9.1