From 67f74c1d68ccbb69eb8436e70018357533ef9c0a Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期五, 16 五月 2025 17:32:27 +0800 Subject: [PATCH] ERP同步功能部分完善,测试逻辑优化 --- Services/AgvService.cs | 147 ++++++++++++++++++++++++++++--------------------- 1 files changed, 84 insertions(+), 63 deletions(-) diff --git a/Services/AgvService.cs b/Services/AgvService.cs index 50d342f..2cbf5b8 100644 --- a/Services/AgvService.cs +++ b/Services/AgvService.cs @@ -14,6 +14,7 @@ using static HH.WCS.Mobox3.AnGang.Dtos.Response.AgvResponse; using HH.WCS.Mobox3.AnGang.Consts; using HH.WCS.Mobox3.AnGang.Dispatch; +using HH.WCS.Mobox3.AnGang.Devices; namespace HH.WCS.Mobox3.AnGang.Services { public class AgvService { @@ -22,8 +23,8 @@ try { switch (model.state) { case 1023: + break; case 1025: - break; case 1012: break; @@ -83,10 +84,17 @@ case AgvStateCode.鍙栬揣瀹屾垚: WCSHelper.UpdateStatus(TN_Task, "鍙栬揣瀹屾垚"); // 浠诲姟鐘舵�鏀规垚鍙栬揣瀹屾垚 - // TODO 鎷嶇収 + var captureTask = Task.Run(() => { + if (TN_Task.S_TYPE == TaskName.璐у搧鍏ュ簱 || TN_Task.S_TYPE == TaskName.浜у搧閮ㄥ垎鍥炲簱) { + CapturePic(TN_Task); + } + }); var setEndLocTask = Task.Run(() => { - SetEndLoc(TN_Task); + // 鍙浠诲姟涓轰骇鍝佸叆搴�PDA)锛屽氨闇�閲嶆柊鎸囧畾缁堢偣锛堥粯璁ndLoc涓�"锛�+ if (TN_Task.S_TYPE == "浜у搧鍏ュ簱(PDA)") { + SetEndLoc(TN_Task); + } }); TaskHelper.OperateStatus(TN_Task, 4); // 璧风偣瀹瑰櫒璐т綅瑙g粦,瑙i攣璧风偣 @@ -113,80 +121,93 @@ return true; } + public static void CapturePic(TN_Task model) { + var db = DbHelper.GetDbClient(); + + var filepath = SnapManager.GetCapturePicturePath(); + if (string.IsNullOrEmpty(filepath)) { + return; + } + + if (db.Updateable<TN_CG_Detail>() + .SetColumns(d => d.S_IMG_URL == filepath) + .Where(d => d.S_CNTR_CODE == model.S_CNTR_CODE).ExecuteCommand() <= 0) { + + LogHelper.Info($"鍥剧墖URL '{filepath}' 鍐欏叆鏁版嵁搴撳け璐�); + return; + } + } + public static void SetEndLoc(TN_Task tn_task) { - // 鍙浠诲姟涓轰骇鍝佸叆搴�PDA)锛屽氨闇�閲嶆柊鎸囧畾缁堢偣锛堥粯璁ndLoc涓�"锛�- if (tn_task.S_TYPE == "浜у搧鍏ュ簱(PDA)") { + var db = DbHelper.GetDbClient(); + var endLoc = new TN_Location(); - var db = DbHelper.GetDbClient(); - var endLoc = new TN_Location(); + var data = GZRobot.CustomBuf(); + var weight = float.Parse(data[0].parameter_varchar200_up); + tn_task.F_WEIGHT = weight; - var data = GZRobot.CustomBuf(); - var weight = float.Parse(data[0].parameter_varchar200_up); - tn_task.F_WEIGHT= weight; + // 鍙綋涔嬪墠鎸囧畾缁堢偣璐ф灦鍚庯紝鎵嶅皾璇曡绠楃粓鐐硅揣浣嶏紝鍚﹀垯浜ょ粰浜哄伐鍐冲畾 + if (tn_task.S_END_AREA != "") { + if (weight > 1500) { + // 閲嶉噺瓒呰繃1.5t锛岄渶瑕侀�鎷�-3灞傝揣鏋�+ endLoc = db.Queryable<TN_Location>().First(a => a.S_SHELF_CODE == tn_task.S_END_AREA && LocationHelper.IsFree(a) && a.N_CURRENT_NUM == 0 && a.N_HEIGHT <= 3); + } + else if (weight > 0) { + // 閲嶉噺鏈秴杩�.5t锛屽湪鎸囧畾璐ф灦闅忎究閫夋嫨1涓�+ endLoc = db.Queryable<TN_Location>().First(a => a.S_SHELF_CODE == tn_task.S_END_AREA && LocationHelper.IsFree(a) && a.N_CURRENT_NUM == 0); + } + else { + // 娌℃湁鎺ユ敹鍒伴噸閲忥紝鎴栭噸閲忓嚭閿�+ endLoc = null; + LogHelper.Info($"閿欒鐨勯噸閲忎俊鎭細{weight}"); + return; + } - // 鍙綋涔嬪墠鎸囧畾缁堢偣璐ф灦鍚庯紝鎵嶅皾璇曡绠楃粓鐐硅揣浣嶏紝鍚﹀垯浜ょ粰浜哄伐鍐冲畾 - if (tn_task.S_END_AREA != "") { - if (weight > 1500) { - // 閲嶉噺瓒呰繃1.5t锛岄渶瑕侀�鎷�-3灞傝揣鏋�- endLoc = db.Queryable<TN_Location>().First(a => a.S_SHELF_CODE == tn_task.S_END_AREA && LocationHelper.IsFree(a) && a.N_CURRENT_NUM == 0 && a.N_HEIGHT <= 3); - } - else if (weight > 0) { - // 閲嶉噺鏈秴杩�.5t锛屽湪鎸囧畾璐ф灦闅忎究閫夋嫨1涓�- endLoc = db.Queryable<TN_Location>().First(a => a.S_SHELF_CODE == tn_task.S_END_AREA && LocationHelper.IsFree(a) && a.N_CURRENT_NUM == 0); - } - else { - // 娌℃湁鎺ユ敹鍒伴噸閲忥紝鎴栭噸閲忓嚭閿�- endLoc = null; - LogHelper.Info($"閿欒鐨勯噸閲忎俊鎭細{weight}"); - return; - } + // 濡傛灉娌℃湁绗﹀悎鏉′欢鐨勮揣浣嶏紝缃┖锛岀瓑寰匬DA閲嶆柊纭畾 + if (endLoc == null) { + tn_task.S_END_AREA = ""; + tn_task.S_END_LOC = ""; - // 濡傛灉娌℃湁绗﹀悎鏉′欢鐨勮揣浣嶏紝缃┖锛岀瓑寰匬DA閲嶆柊纭畾 - if (endLoc == null) { - tn_task.S_END_AREA = ""; - tn_task.S_END_LOC = ""; + // 涓嶉渶瑕佸啀缁橤Z AGV浼犵┖鍊硷紝涓�紑濮嬪氨娌$粰鍏蜂綋璐т綅锛屽彧缁欎簡Area - // 涓嶉渶瑕佸啀缁橤Z AGV浼犵┖鍊硷紝涓�紑濮嬪氨娌$粰鍏蜂綋璐т綅锛屽彧缁欎簡Area + //var request = new UpdateInteractInfo { + // interaction_info_id = 3, // 鏇存敼缁堢偣淇℃伅 + // info_status = "active", + // return_value = "", + //}; - //var request = new UpdateInteractInfo { - // interaction_info_id = 3, // 鏇存敼缁堢偣淇℃伅 - // info_status = "active", - // return_value = "", - //}; + //GZRobot.UpdateInteractInfo(request); - //GZRobot.UpdateInteractInfo(request); + using (var trans = db.Ado.UseTran()) { + if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => new { it.S_END_LOC, it.F_WEIGHT }) + .ExecuteCommand() > 0) { + //LocationHelper.LockLoc(endLoc.S_CODE, 1);//缁堢偣鍏ュ簱閿� - using (var trans = db.Ado.UseTran()) { - if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => new { it.S_END_LOC, it.F_WEIGHT }) - .ExecuteCommand() > 0) { - //LocationHelper.LockLoc(endLoc.S_CODE, 1);//缁堢偣鍏ュ簱閿�- - trans.CommitTran(); - LogHelper.Info($"閲嶆柊璁$畻鍚庢病鏈夊悎閫傝揣浣嶏紝浠诲姟 {tn_task.S_CODE} 淇敼鎴愬姛锛屼慨鏀圭粓鐐硅揣鏋跺拰璐т綅涓虹┖"); - } - else { - trans.RollbackTran(); - LogHelper.Info($"閲嶆柊璁$畻鍚庢病鏈夊悎閫傝揣浣嶏紝浠诲姟 {tn_task.S_CODE} 淇敼澶辫触锛屼慨鏀圭粓鐐硅揣鏋跺拰璐т綅涓虹┖"); - } + trans.CommitTran(); + LogHelper.Info($"閲嶆柊璁$畻鍚庢病鏈夊悎閫傝揣浣嶏紝浠诲姟 {tn_task.S_CODE} 淇敼鎴愬姛锛屼慨鏀圭粓鐐硅揣鏋跺拰璐т綅涓虹┖"); + } + else { + trans.RollbackTran(); + LogHelper.Info($"閲嶆柊璁$畻鍚庢病鏈夊悎閫傝揣浣嶏紝浠诲姟 {tn_task.S_CODE} 淇敼澶辫触锛屼慨鏀圭粓鐐硅揣鏋跺拰璐т綅涓虹┖"); } } - else { - // 鎵惧埌鍚堥�鐨勮揣浣嶏紝鎺ㄩ� - tn_task.S_END_LOC = endLoc.S_CODE; + } + else { + // 鎵惧埌鍚堥�鐨勮揣浣嶏紝鎺ㄩ� + tn_task.S_END_LOC = endLoc.S_CODE; - using (var trans = db.Ado.UseTran()) { - if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => new {it.S_END_LOC, it.F_WEIGHT}) - .ExecuteCommand() > 0) { - LocationHelper.LockLoc(endLoc.S_CODE, 1);//缁堢偣鍏ュ簱閿�+ using (var trans = db.Ado.UseTran()) { + if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => new { it.S_END_LOC, it.F_WEIGHT }) + .ExecuteCommand() > 0) { + LocationHelper.LockLoc(endLoc.S_CODE, 1);//缁堢偣鍏ュ簱閿� - trans.CommitTran(); - LogHelper.Info($"璁$畻璐т綅鎴愬姛锛屼换鍔�{tn_task.S_CODE} 淇敼鎴愬姛锛岀粓鐐硅揣鏋朵负 {endLoc.S_SHELF_CODE}锛屼慨鏀圭粓鐐逛綅缃负 {endLoc.S_CODE}"); - } - else { - trans.RollbackTran(); + trans.CommitTran(); + LogHelper.Info($"璁$畻璐т綅鎴愬姛锛屼换鍔�{tn_task.S_CODE} 淇敼鎴愬姛锛岀粓鐐硅揣鏋朵负 {endLoc.S_SHELF_CODE}锛屼慨鏀圭粓鐐逛綅缃负 {endLoc.S_CODE}"); + } + else { + trans.RollbackTran(); - LogHelper.Info($"璁$畻璐т綅鎴愬姛锛屼换鍔�{tn_task.S_CODE} 淇敼澶辫触锛岀粓鐐硅揣鏋朵负 {endLoc.S_SHELF_CODE}锛屼慨鏀圭粓鐐逛綅缃负 {endLoc.S_CODE}"); - } + LogHelper.Info($"璁$畻璐т綅鎴愬姛锛屼换鍔�{tn_task.S_CODE} 淇敼澶辫触锛岀粓鐐硅揣鏋朵负 {endLoc.S_SHELF_CODE}锛屼慨鏀圭粓鐐逛綅缃负 {endLoc.S_CODE}"); } } } -- Gitblit v1.9.1