From 0e829f4a5321c10900e1f4130a80f2e8c804a08e Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期四, 19 六月 2025 17:30:47 +0800 Subject: [PATCH] 修复取消订单和更改终点货区流程与国自AGV交互的部分细节问题 --- core/WCSCore.cs | 78 +++++++++++++++++++-------------------- 1 files changed, 38 insertions(+), 40 deletions(-) diff --git a/core/WCSCore.cs b/core/WCSCore.cs index cd27dda..c904e6f 100644 --- a/core/WCSCore.cs +++ b/core/WCSCore.cs @@ -2,7 +2,6 @@ using HH.WCS.Mobox3.AnGang.dispatch; using HH.WCS.Mobox3.AnGang.models; using HH.WCS.Mobox3.AnGang.process; -using HH.WCS.Mobox3.AnGang.config; using Newtonsoft.Json; using SqlSugar; using System; @@ -20,7 +19,7 @@ public static ReturnResult OperateAgvTaskStatus(AgvTaskState model) { var result = new ReturnResult(); try { - if (model.state > 0 && model.state < 1000) { + if (model.state > 0) { // AGV 鎵ц浠诲姟鐨勯�杈戝鐞� if (!AgvTaskProcessOk(model)) { // 鎵ц涓峅K锛岃鏄庢病鏈夋壘鍒颁换鍔�@@ -74,7 +73,7 @@ if (TN_Task.S_TYPE == TaskName.浜у搧鍏ュ簱 || TN_Task.S_TYPE == TaskName.浜у搧閮ㄥ垎鍥炲簱) { var captureTask = Task.Run(() => { CapturePic(TN_Task); - LogHelper.Info("鎷嶇収Task缁撴潫"); + LogHelper.Info($"{TN_Task}锛氭媿鐓ask缁撴潫"); }); } @@ -170,10 +169,27 @@ else { var weight = float.Parse(data[0].parameter_varchar200_up); cgDetail.F_QTY = weight; + tn_task.F_WEIGHT = weight; - if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_QTY).ExecuteCommand() <= 0) { - LogHelper.Info("淇敼鐗╂枡琛ㄩ噸閲忓け璐�); - return; + using (var tran = db.Ado.UseTran()) { + if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_QTY).ExecuteCommand() <= 0) { + tran.RollbackTran(); + LogHelper.Info("淇敼鐗╂枡琛ㄩ噸閲忓け璐�); + return; + } + + if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => it.F_WEIGHT).ExecuteCommand() <= 0) { + tran.RollbackTran(); + LogHelper.Info("淇敼浠诲姟琛ㄩ噸閲忓け璐�); + return; + } + + tran.CommitTran(); + } + + LogHelper.Info($"淇敼浠诲姟鍙穥tn_task.S_CODE}鐗╂枡閲嶉噺涓簕weight}", "HosttoagvTask"); + if (weight > 2000) { + LogHelper.Info($"鐗╂枡閲嶉噺瓒呰繃2t", "HosttoagvTask"); } } @@ -189,16 +205,23 @@ } // 鍙綋涔嬪墠鎸囧畾缁堢偣璐ф灦鍚庯紝鎵嶅皾璇曡绠楃粓鐐硅揣浣�- if (cgDetail.F_QTY > 1500) { - // 閲嶉噺瓒呰繃1.5t锛岄渶瑕侀�鎷�-3灞傝揣鏋�+ if (cgDetail.F_QTY > 2000) { + // 閲嶉噺瓒呰繃 2t + endLoc = null; + LogHelper.Info("閲嶉噺瓒呰繃2t锛屼笉鍏佽鍏ュ簱"); + return; + } + else if (cgDetail.F_QTY > 1500) { + // 閲嶉噺瓒呰繃1.5t锛岄渶瑕侀�鎷�-2灞傝揣鏋� endLoc = db.Queryable<TN_Location>() - .First(a => a.N_ROW == row && a.N_LAYER <= 3 + .First(a => a.N_ROW == row && a.N_LAYER <= 2 && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y"); } else if (cgDetail.F_QTY > 0) { // 閲嶉噺鏈秴杩�.5t锛屽湪鎸囧畾璐ф灦闅忎究閫夋嫨1涓�- endLoc = db.Queryable<TN_Location>().First(a => a.N_ROW == row - && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y"); + endLoc = db.Queryable<TN_Location>().Where(a => a.N_ROW == row + && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") + .OrderBy(a => a.N_LAYER > 2 ? 0 : 1).First(); // 浼樺厛閫夊眰绾ч珮鐨� } else { // 娌℃湁鎺ユ敹鍒伴噸閲忥紝鎴栭噸閲忓嚭閿�@@ -290,6 +313,8 @@ return; } + LogHelper.Info($"淇敼浠诲姟鍙穥tn_task.S_CODE}鐗╂枡閲嶉噺涓簕weight}", "HosttoagvTask"); + } catch (Exception ex) { LogHelper.Info($"鍙戠敓浜嗛敊璇細{ex.Message}"); @@ -322,37 +347,10 @@ } } + // DOC 4. 绔欏彴鐢宠瀹夊叏浜や簰 RCS->WMS public static ReturnResult SafetyInteraction(SafetyInteractionInfo model) { var gzResult = new ReturnResult(); - //var db = new SqlHelper<object>().GetInstance(); - //ModbusHelper.Relink(); - - //var productionLineInfo = Settings.ProductionLines[0]; - //var prodLineDevice = new ProductionLineDevice(productionLineInfo.PlcIp, productionLineInfo.PlcPort); - //if (!prodLineDevice.LoadDeviceStateOk()) { - // LogHelper.Info("鍔犺浇璁惧淇℃伅澶辫触"); - //} - - //var tn_task = db.Queryable<TN_Task>().First(a => a.S_CODE == model.task_no); - //if (tn_task == null) { - // LogHelper.Info($"浠诲姟鍙�'{model.task_no}' 涓嶅瓨鍦�); - //} - - //if (prodLineDevice.SystemState == 1 - // && prodLineDevice.FullOffline == 1 && tn_task.S_TYPE == "鎴愬搧鑳朵笅绾�鎵樼洏(WMS)") { - // if (!prodLineDevice.SetAgvPicking(1)) { - // LogHelper.Info("鍐欏叆杈撻�绾�PLC 澶辫触"); - // } - //} - - //if (prodLineDevice.SystemState == 1 - // && prodLineDevice.AllowAgvPlacePallet == 1 && tn_task.S_TYPE == "绌烘墭鐩樹笂绾�WMS)") { - // if (!prodLineDevice.SetAgvPlacingPallet(1)) { - // LogHelper.Info("鍐欏叆杈撻�绾�PLC 澶辫触"); - // } - //} - - //LogHelper.Info(JsonConvert.SerializeObject(prodLineDevice, Formatting.Indented)); + // 鐩墠璇ラ」鐩病鏈夌珯鍙板畨鍏ㄤ氦浜掔殑鍔熻兘 return gzResult; } } -- Gitblit v1.9.1