From 452b9b63ada7ef220952412613552d36ed477adc Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期一, 19 五月 2025 17:30:29 +0800 Subject: [PATCH] 测试,修复部分数据表问题 --- Services/AgvService.cs | 167 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 102 insertions(+), 65 deletions(-) diff --git a/Services/AgvService.cs b/Services/AgvService.cs index 50d342f..5ce5195 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,81 +121,110 @@ 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 data = GZRobot.CustomBuf(); + if (data.Count == 0) { + LogHelper.Info("璁剧疆缁堢偣璐т綅澶辫触锛氭病鏈夋帴鍙楀埌鏉ヨ嚜鍥借嚜AGV鐨勯噸閲忎俊鎭�); + + //return; + } + else { var weight = float.Parse(data[0].parameter_varchar200_up); - tn_task.F_WEIGHT= weight; + 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); + if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => it.F_WEIGHT).ExecuteCommand() <= 0) { + LogHelper.Info("淇敼Task閲嶉噺澶辫触"); + return; + } + } + + // 缁堢偣璐ф灦涓虹┖鏃讹紝涓嶅垽鏂紝浜ょ粰浜哄伐澶勭悊 + if (tn_task.S_END_AREA == "") { + LogHelper.Info("缁堢偣璐ф灦涓虹┖锛屼笉澶勭悊"); + } + + // 鍙綋涔嬪墠鎸囧畾缁堢偣璐ф灦鍚庯紝鎵嶅皾璇曡绠楃粓鐐硅揣浣�+ if (tn_task.F_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_LAYER <= 3); + } + else if (tn_task.F_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($"閿欒鐨勯噸閲忎俊鎭細{tn_task.F_WEIGHT}"); + return; + } + + // 濡傛灉娌℃湁绗﹀悎鏉′欢鐨勮揣浣嶏紝缃┖锛岀瓑寰匬DA閲嶆柊纭畾 + if (endLoc == null) { + tn_task.S_END_AREA = ""; + tn_task.S_END_LOC = ""; + + // 涓嶉渶瑕佸啀缁橤Z AGV浼犵┖鍊硷紝涓�紑濮嬪氨娌$粰鍏蜂綋璐т綅锛屽彧缁欎簡Area + + //var request = new UpdateInteractInfo { + // interaction_info_id = 3, // 鏇存敼缁堢偣淇℃伅 + // info_status = "active", + // return_value = "", + //}; + + //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);//缁堢偣鍏ュ簱閿�+ + trans.CommitTran(); + LogHelper.Info($"閲嶆柊璁$畻鍚庢病鏈夊悎閫傝揣浣嶏紝浠诲姟 {tn_task.S_CODE} 淇敼鎴愬姛锛屼慨鏀圭粓鐐硅揣鏋跺拰璐т綅涓虹┖"); } else { - // 娌℃湁鎺ユ敹鍒伴噸閲忥紝鎴栭噸閲忓嚭閿�- endLoc = null; - LogHelper.Info($"閿欒鐨勯噸閲忎俊鎭細{weight}"); - return; + trans.RollbackTran(); + LogHelper.Info($"閲嶆柊璁$畻鍚庢病鏈夊悎閫傝揣浣嶏紝浠诲姟 {tn_task.S_CODE} 淇敼澶辫触锛屼慨鏀圭粓鐐硅揣鏋跺拰璐т綅涓虹┖"); } + } + } + else { + // 鎵惧埌鍚堥�鐨勮揣浣嶏紝鎺ㄩ� + tn_task.S_END_LOC = endLoc.S_CODE; - // 濡傛灉娌℃湁绗﹀悎鏉′欢鐨勮揣浣嶏紝缃┖锛岀瓑寰匬DA閲嶆柊纭畾 - if (endLoc == null) { - tn_task.S_END_AREA = ""; - tn_task.S_END_LOC = ""; + 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);//缁堢偣鍏ュ簱閿� - // 涓嶉渶瑕佸啀缁橤Z AGV浼犵┖鍊硷紝涓�紑濮嬪氨娌$粰鍏蜂綋璐т綅锛屽彧缁欎簡Area - - //var request = new UpdateInteractInfo { - // interaction_info_id = 3, // 鏇存敼缁堢偣淇℃伅 - // info_status = "active", - // return_value = "", - //}; - - //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);//缁堢偣鍏ュ簱閿�- - 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} 淇敼鎴愬姛锛岀粓鐐硅揣鏋朵负 {endLoc.S_SHELF_CODE}锛屼慨鏀圭粓鐐逛綅缃负 {endLoc.S_CODE}"); } else { - // 鎵惧埌鍚堥�鐨勮揣浣嶏紝鎺ㄩ� - tn_task.S_END_LOC = endLoc.S_CODE; + trans.RollbackTran(); - 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(); - - 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