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