From 5c4192f0b813d72a427eaca183d08d42046f1b41 Mon Sep 17 00:00:00 2001
From: jinxin <1013386558@qq.com>
Date: 星期一, 23 六月 2025 14:43:44 +0800
Subject: [PATCH] 11

---
 C#/HH.WCS.Mobox3.WeiLi/api/ApiModel.cs        |    4 +
 C#/HH.WCS.Mobox3.WeiLi/core/WCSCore.cs        |    8 +-
 C#/HH.WCS.Mobox3.WeiLi/process/TaskProcess.cs |  108 ++++++++++++++++++++---------------
 C#/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs       |   13 +++
 C#/HH.WCS.Mobox3.WeiLi/models/TN_Material.cs  |    1 
 C#/HH.WCS.Mobox3.WeiLi/core/WMSCore.cs        |   26 +++++---
 C#/HH.WCS.Mobox3.WeiLi/wms/WMSHelper.cs       |    5 +
 7 files changed, 100 insertions(+), 65 deletions(-)

diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
index 3a95f06..dd506a9 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
@@ -71,11 +71,15 @@
                         info.S_ITEM_NAME = a.itemName;
                         info.S_IS_MANAGE = a.isManage;
                         info.S_IS_MANAGEDATE = a.isManageDate;
-                        db.Updateable<TN_Material>(info).UpdateColumns(it => new { it.S_ITEM_NAME, it.S_IS_MANAGE, it.S_IS_MANAGEDATE }).ExecuteCommand();
+                        info.S_UOM = a.unit;
+                        db.Updateable<TN_Material>(info).UpdateColumns(it => new { it.S_ITEM_NAME, it.S_IS_MANAGE, it.S_IS_MANAGEDATE,it.S_UOM }).ExecuteCommand();
+
+
+                        db.Updateable<CntrItemRel>().SetColumns(it => new CntrItemRel() { S_ITEM_NAME = a.itemName , S_UOM = a.unit }).Where(it=>it.S_ITEM_CODE==a.itemCode).ExecuteCommand();
                     }
                     else
                     {
-                        db.Insertable(new TN_Material { S_ITEM_CODE = a.itemCode, S_ITEM_NAME = a.itemName, S_IS_MANAGE = a.isManage, S_IS_MANAGEDATE = a.isManageDate }).ExecuteCommand();
+                        db.Insertable(new TN_Material { S_ITEM_CODE = a.itemCode, S_ITEM_NAME = a.itemName, S_IS_MANAGE = a.isManage, S_IS_MANAGEDATE = a.isManageDate, S_UOM = a.unit }).ExecuteCommand();
                     }
                     //db.Updateable<TN_Material>().SetColumns(it => new TN_Material() { S_ITEM_NAME = a.itemName }).Where(it => it.S_ITEM_CODE == a.itemCode).ExecuteCommand();
                     //db.Updateable<WHInventory>().SetColumns(it => new WHInventory() { S_ITEM_NAME = a.itemName }).Where(it => it.S_ITEM_CODE == a.itemCode).ExecuteCommand();
@@ -1433,6 +1437,7 @@
                             S_BATCH_NO = a.batchNo,
                             S_OWNER = a.factoryCode,
                             S_ERP_WH_CODE = a.stockLoc,
+                            S_UOM=itemName.S_UOM,
                             F_QTY = a.qty,
                             S_SUPPLIER_NO = a.vendorCode,
                             S_SERIAL_NO = a.serialNo,
@@ -3166,6 +3171,7 @@
                                             S_ITEM_NAME = itemName.S_ITEM_NAME,
                                             S_ITEM_CODE = a.itemCode,
                                             S_BATCH_NO = a.batchNo,
+                                            S_UOM=itemName.S_UOM,
                                             S_BS_NO=a.inWorkNo,
                                             S_OWNER = a.factoryCode,
                                             S_ERP_WH_CODE = a.stockLocation,
@@ -3371,6 +3377,7 @@
                                         S_CNTR_CODE = model.cntrNo,
                                         S_WU = a.rowID,
                                         S_ITEM_NAME = itemName.S_ITEM_NAME,
+                                        S_UOM = itemName.S_UOM,
                                         S_ITEM_CODE = a.itemCode,
                                         S_BATCH_NO = a.batchNo,
                                         S_OWNER = a.factoryCode,
@@ -3516,6 +3523,7 @@
                                             {
                                                 S_CNTR_CODE = cntr,
                                                 S_ITEM_NAME = itemName.S_ITEM_NAME,
+                                                S_UOM = itemName.S_UOM,
                                                 S_ITEM_CODE = a.itemCode,
                                                 S_BATCH_NO = a.batchNo,
                                                 S_OWNER = a.factoryCode,
@@ -3580,6 +3588,7 @@
                                                 {
                                                     S_CNTR_CODE = cntr,
                                                     S_ITEM_NAME = itemName.S_ITEM_NAME,
+                                                    S_UOM = itemName.S_UOM,
                                                     S_ITEM_CODE = it.itemCode,
                                                     S_BATCH_NO = it.batchNo,
                                                     S_OWNER = it.factoryCode,
diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/api/ApiModel.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiModel.cs"
index b0f6f75..53d7c75 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/api/ApiModel.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiModel.cs"
@@ -555,6 +555,10 @@
             /// 鐢熶骇鏃ユ湡绠$悊
             /// </summary>
             public string isManageDate { get; set; } = "Y";
+            /// <summary>
+            /// 鐗╂枡鍗曚綅
+            /// </summary>
+            public string unit { get; set; } = "kg";
         }
         public class ReceivingNoteModel
         {
diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/core/WCSCore.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/core/WCSCore.cs"
index c95fbe2..022c02d 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/core/WCSCore.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/core/WCSCore.cs"
@@ -108,8 +108,8 @@
 
             TaskActionList.ForEach(a =>
             {
-                tasks.Add(Task.Run(() =>
-                {
+                //tasks.Add(Task.Run(() =>
+                //{
                     var TN_Task = WCSHelper.GetTask(a.TASK_NO);
                     if (TN_Task != null)
                     {
@@ -123,9 +123,9 @@
                         }
                         db.Deleteable(a).ExecuteCommand();
                     }
-                }));
+                //}));
             });
-            Task.WaitAll(tasks.ToArray(), 3000);
+            //Task.WaitAll(tasks.ToArray(), 12000);
 
 
         }
diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/core/WMSCore.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/core/WMSCore.cs"
index 09b0caa..cad0d13 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/core/WMSCore.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/core/WMSCore.cs"
@@ -171,7 +171,7 @@
                         var startloc = db.Queryable<Location>().Where(it => it.S_CODE == a.S_LOC_CODE).First();
                         if (startloc != null)
                         {
-                            LogHelper.Info($"鎵樼洏{a.S_CNTR_CODE} 缁戝畾浣嶇疆{a.S_LOC_CODE} 閿佺姸鎬亄startloc.S_LOCK_STATE}");
+                            LogHelper.Info($"鎵樼洏{a.S_CNTR_CODE} 缁戝畾浣嶇疆{a.S_LOC_CODE} 鐩樼偣鐘舵�{a.N_B_STATE} 閿佺姸鎬亄startloc.S_LOCK_STATE}");
                             if (a.N_B_STATE == 0 && startloc.S_LOCK_STATE == "鍏跺畠閿�)
                             {
                                 if (Settings.LKCodes.Where(it => it.LiKuCode == startloc.S_AREA_CODE).FirstOrDefault() != null)
@@ -430,6 +430,8 @@
                                             S_CNTR_CODE = a.S_CNTR_CODE,
                                         };
 
+                                        var res = true;
+
                                         if (type == "NDC" && (a.S_OP_DEF_NAME == "鍑哄簱" || a.S_OP_DEF_NAME == "鍒嗘嫞鍑� || a.S_OP_DEF_NAME == "绌烘鍑哄簱"))
                                         {
                                             string workNo = "";
@@ -464,26 +466,30 @@
                                                 {
                                                     LogHelper.Info($"涓彴杩斿洖缁堢偣{endbit} 涓嶅瓨鍦ㄨ揣浣嶄俊鎭�);
                                                     LocationHelper.UnLockLoc(end.S_CODE);
-                                                    break;
+                                                    //break;
+                                                    res = false;
                                                 }
                                             }
                                             else
                                             {
                                                 LogHelper.Info($"涓彴骞舵湭杩斿洖缁堢偣");
                                                 LocationHelper.UnLockLoc(end.S_CODE);
-                                                break;
+                                                res = false;
+                                                //break;
                                             }
                                         }
 
-                                        if (WCSHelper.CreateTask(wcsTask))
+                                        if (res) 
                                         {
-                                            LogHelper.Info($"浣滀笟{a.S_CODE} 鍒涘缓浠诲姟鎴愬姛 淇敼浣滀笟鐘舵�");
-                                            //鏇存柊浣滀笟鐘舵�涓烘墽琛�-                                            a.N_B_STATE = 1;
-                                            a.S_B_STATE = "鎵ц";
-                                            WMSHelper.UpdateTaskState(a);
+                                            if (WCSHelper.CreateTask(wcsTask))
+                                            {
+                                                LogHelper.Info($"浣滀笟{a.S_CODE} 鍒涘缓浠诲姟鎴愬姛 淇敼浣滀笟鐘舵�");
+                                                //鏇存柊浣滀笟鐘舵�涓烘墽琛�+                                                a.N_B_STATE = 1;
+                                                a.S_B_STATE = "鎵ц";
+                                                WMSHelper.UpdateTaskState(a);
+                                            }
                                         }
-
                                     }
                                 }
                             }
diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/models/TN_Material.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/models/TN_Material.cs"
index 9edfcf8..91e5a09 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/models/TN_Material.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/models/TN_Material.cs"
@@ -31,5 +31,6 @@
         public string S_IS_MANAGE { get; set; }
         public string S_IS_MANAGEDATE { get; set; }
         public string S_AREA_CODE { get; set; } = "";
+        public string S_UOM { get; set; } = "kg";
     }
 }
diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/process/TaskProcess.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/process/TaskProcess.cs"
index c7a8396..57ffbc3 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/process/TaskProcess.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/process/TaskProcess.cs"
@@ -91,7 +91,7 @@
                 {
                     db.Updateable<Location>().SetColumns(it => new Location() { N_CURRENT_NUM = 0 }).Where(a => a.S_CODE == mst.S_START_LOC).ExecuteCommand();
                 }
-               
+
 
                 LocationHelper.UnLockLoc(mst.S_START_LOC);
                 LocationHelper.UnLockLoc(mst.S_END_LOC);
@@ -136,12 +136,12 @@
                         db.Updateable(InWorkOrder).UpdateColumns(it => new { it.F_ACC_B_QTY }).ExecuteCommand();
                     }
                 }
-                else 
+                else
                 {
                     LogHelper.Info($"鏈壘鍒版墭鐩榹wmsTask.S_CNTR_CODE}鐨勭墿鏂欐槑缁�);
                 }
             }
-            else 
+            else
             {
                 LogHelper.Info($"浣滀笟绫诲瀷涓簕wmsTask.S_OP_DEF_NAME} 鏃犻』闄嶉噺");
             }
@@ -429,47 +429,52 @@
             if (codeReader != null)
             {
                 LogHelper.Info($"agv={codeReader.agv},ip={codeReader.ip}");
-                for (int i = 1; i <= 5; i++)
+                for (int i = 1; i <= 3; i++)
                 {
                     //try
                     //{
                     //var res = OITcpHelper.HexTransit(new OITcpHelper.StrTransitData { data = "4C 4F 4E 0D", host = codeReader.ip, port = 9004 });
                     var res = SendHexOnce(codeReader.ip, codeReader.port, "41");
                     LogHelper.Info($"鎵爜杩斿洖鎶ユ枃{res}");
-                    if (string.IsNullOrEmpty(res))
-                    {
-                        NDCApi.ChangeOrderParam(mst.S_CODE, 6, "3");
-                    }
-                    else
+                    //if (string.IsNullOrEmpty(res))
+                    //{
+                    //    NDCApi.ChangeOrderParam(mst.S_CODE, 6, "3");
+                    //}
+                    //else
+                    //{
+                    if (res.Length >= 18)
                     {
                         res = res.Substring(2, 16);
-                        var code = hexToStr(res);
-                        Console.WriteLine(code);
-                        LogHelper.Info($"鎵樼洏淇℃伅涓�{mst.S_CNTR_CODE},鎵爜缁撴灉涓�{code},缁撴灉锛歿mst.S_CNTR_CODE.Trim() == code.Trim()}");
-                        if (res != null && code.Trim() != "ERROR")
+                    }
+
+
+                    var code = hexToStr(res);
+                    Console.WriteLine(code);
+                    LogHelper.Info($"鎵樼洏淇℃伅涓�{mst.S_CNTR_CODE},鎵爜缁撴灉涓�{code},缁撴灉锛歿mst.S_CNTR_CODE.Trim() == code.Trim()}");
+                    if (!string.IsNullOrEmpty(code) && res.Trim() != "022503")
+                    {
+                        if (mst.S_CNTR_CODE.Trim() == code.Trim())
                         {
-                            if (mst.S_CNTR_CODE.Trim() == code.Trim())
-                            {
-                                NDCApi.ChangeOrderParam(mst.S_CODE, 6, "1");
-                            }
-                            else
-                            {
-                                NDCApi.ChangeOrderParam(mst.S_CODE, 6, "2");
-                            }
-                            return;
+                            NDCApi.ChangeOrderParam(mst.S_CODE, 6, "1");
                         }
-                        else if (i == 5)
+                        else
                         {
-                            if (res != null)
-                            {
-                                NDCApi.ChangeOrderParam(mst.S_CODE, 6, "3");
-                            }
-                            else
-                            {
-                                NDCApi.ChangeOrderParam(mst.S_CODE, 6, "4");
-                            }
+                            NDCApi.ChangeOrderParam(mst.S_CODE, 6, "2");
+                        }
+                        return;
+                    }
+                    else if (i == 3)
+                    {
+                        if (!string.IsNullOrEmpty(code))
+                        {
+                            NDCApi.ChangeOrderParam(mst.S_CODE, 6, "3");
+                        }
+                        else
+                        {
+                            NDCApi.ChangeOrderParam(mst.S_CODE, 6, "4");
                         }
                     }
+                    //}
 
                     //}
                     //catch (Exception ex) 
@@ -496,28 +501,37 @@
         private static string SendHexOnce(string ip, int port, string hex)
         {
             var res = string.Empty;
-            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
-            client.Connect(ip, port);
-            client.ReceiveTimeout = 2000;
-            if (client.Connected)
+            try
             {
-                client.Send(Hex2Bytes(hex));
-                byte[] buffer = new byte[1024];
-                try
+                Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+                //client.Connect(ip, port);
+                IAsyncResult connectResult = client.BeginConnect(ip, port, null, null);
+                if (!connectResult.AsyncWaitHandle.WaitOne(5000))
                 {
+                    client.Close();
+                    return "";
+                }
+                client.ReceiveTimeout = 2000;
+                if (client.Connected)
+                {
+                    client.Send(Hex2Bytes(hex));
+                    byte[] buffer = new byte[1024];
+
                     var length = client.Receive(buffer, SocketFlags.None);
                     byte[] data = new byte[length];
                     Array.Copy(buffer, data, length);
                     res = BitConverter.ToString(data).Replace("-", "");
+
+
+                    client.Disconnect(true);
+                    client.Dispose();
                 }
-                catch (Exception ex)
-                {
-                    LogHelper.Error(ex.Message, ex);
-                }
-                client.Disconnect(true);
-                client.Dispose();
+                client = null;
             }
-            client = null;
+            catch (Exception ex)
+            {
+                LogHelper.Error(ex.Message, ex);
+            }
             return res;
         }
 
@@ -931,12 +945,12 @@
                 }
 
                 var wmsTask = db.Queryable<WMSTask>().Where(a => a.S_CODE == mst.S_OP_CODE).First();
-                if (wmsTask != null && wmsTask.N_TRAY_WEIGHT > 0) 
+                if (wmsTask != null && wmsTask.N_TRAY_WEIGHT > 0)
                 {
                     // 1000 2000 3000 4000 5000
                     Trow = (wmsTask.N_TRAY_WEIGHT * 4096).ToString();
                 }
-                
+
 
                 Console.WriteLine($"SendTask {mst.S_CODE}");
                 Console.WriteLine("start=" + start);
diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/wms/WMSHelper.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/wms/WMSHelper.cs"
index bdd42b9..8955aef 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/wms/WMSHelper.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/wms/WMSHelper.cs"
@@ -818,7 +818,7 @@
                         itemCode = it.S_ITEM_CODE,
                         factoryCode = string.IsNullOrEmpty(it.S_OWNER) ? "" : it.S_OWNER,
                         stockCode = string.IsNullOrEmpty(it.S_ERP_WH_CODE) ? "" : it.S_ERP_WH_CODE,
-                        qty = Convert.ToInt32(it.F_QTY),
+                        qty = it.F_QTY,
                         vendorCode = string.IsNullOrEmpty(it.S_SUPPLIER_NO) ? "" : it.S_SUPPLIER_NO,
                         batchNo = string.IsNullOrEmpty(it.S_BATCH_NO) ? "" : it.S_BATCH_NO,
                         serialNo = string.IsNullOrEmpty(it.S_SERIAL_NO) ? "" : it.S_SERIAL_NO
@@ -1262,7 +1262,8 @@
             var db = new SqlHelper<object>().GetInstance();
             task.T_MODIFY = DateTime.Now;
             task.S_B_STATE = WMSTask.GetStateStr(task.N_B_STATE);
-            db.Updateable<WMSTask>(task).UpdateColumns(a => new { a.N_B_STATE, a.S_B_STATE, a.T_MODIFY }).ExecuteCommand();
+            var res=db.Updateable<WMSTask>(task).UpdateColumns(a => new { a.N_B_STATE, a.S_B_STATE, a.T_MODIFY }).ExecuteCommand()>0;
+            LogHelper.Info($"淇敼浣滀笟鐘舵� 浣滀笟鍙穥task.S_CODE} 浣滀笟鐘舵�{task.N_B_STATE} 淇敼缁撴灉{res}");
         }
 
         internal static bool UpdateTaskEnd(WMSTask a)

--
Gitblit v1.9.1