From b928a2f0011fc867d7d219cfff4b764250f5b778 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期三, 09 七月 2025 17:03:08 +0800 Subject: [PATCH] 修复查交互表更新终点的流程,添加绑定货位写入物料明细表 --- api/ApiHelper.cs | 123 +++++++++++++++++++++++++++++++++++----- 1 files changed, 107 insertions(+), 16 deletions(-) diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index dd1f197..285284f 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -68,6 +68,7 @@ var cgDetail = new TN_CG_Detail() { S_ITEM_CODE = cgId, S_CNTR_CODE = cntId, + S_LOC_CODE = startLoc.S_CODE, // ADD锛氳ˉ鍏呴拡瀵筆DA鍒嗘嫞 }; startLoc.N_CURRENT_NUM = 1; @@ -189,6 +190,7 @@ S_ITEM_CODE = cgId, S_CNTR_CODE = cntId, //S_ITEM_NAME = model.ItemName, + S_LOC_CODE = startLoc.S_CODE, // ADD锛氳ˉ鍏呴拡瀵筆DA鍒嗘嫞 }; startLoc.N_CURRENT_NUM = 1; @@ -422,17 +424,25 @@ var endLoc = new TN_Location(); if (cgDetail.F_QTY > 2000) { // 閲嶉噺瓒呰繃2t锛屾姤閿�- if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { - type_name = "GET_DST", - interaction_info_id = int.Parse(task.S_EQ_TASK_CODE), - info_status = "error", - })) { - LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅鎴愬姛", "HosttoagvTask"); + if (GZRobot.TryGetInteractionInfoId(task.S_CODE, out var id1)) { + if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { + type_name = "GET_DST", + interaction_info_id = id1, + info_status = "error", + })) { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅鎴愬姛", "HosttoagvTask"); + } + else { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅澶辫触", "HosttoagvTask"); + //return BuildSimpleResult(7, $"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触"); + } } else { - LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅澶辫触", "HosttoagvTask"); + //return BuildSimpleResult(7, $"鑾峰彇浠诲姟{task.S_CODE}鐨刟gv interaction_info_id澶辫触锛�); + LogHelper.Info($"AGV锛氳幏鍙栦换鍔task.S_CODE}鐨刬nteraction_info_id澶辫触锛�, "HosttoagvTask"); + //return BuildSimpleResult(8, $"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触"); } - + return BuildSimpleResult(8, $"鐗╂枡閲嶉噺{cgDetail.F_QTY}瓒呰繃2t"); } else if (cgDetail.F_QTY > 1500) { @@ -468,16 +478,23 @@ task.S_END_LOC = endLoc.S_CODE; LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿� - if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { - type_name = "GET_DST", - interaction_info_id = int.Parse(task.S_EQ_TASK_CODE), - info_status = "invalid", - return_value = LocationHelper.GetAgvSite(task.S_END_LOC), // 鐩墠浣跨敤agvsite - })) { - LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅鎴愬姛", "HosttoagvTask"); + if (GZRobot.TryGetInteractionInfoId(task.S_CODE, out var id2)) { + if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { + type_name = "GET_DST", + interaction_info_id = id2, + info_status = "invalid", + return_value = LocationHelper.GetAgvSite(task.S_END_LOC), // 鐩墠浣跨敤agvsite + })) { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅鎴愬姛", "HosttoagvTask"); + } + else { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触", "HosttoagvTask"); + return BuildSimpleResult(7, $"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触"); + } } else { - LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触", "HosttoagvTask"); + LogHelper.Info($"AGV锛氳幏鍙栦换鍔task.S_CODE}鐨刬nteraction_info_id澶辫触锛�, "HosttoagvTask"); + return BuildSimpleResult(8, $"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触"); } using (var tran = db.Ado.UseTran()) { @@ -646,6 +663,80 @@ } } + /// <summary> + /// 浜у搧閮ㄥ垎鍥炲簱锛堜笉鎸囧畾缁堢偣锛屽鐢級 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + internal static SimpleResult PartInboundAuto(PartInboundInfo model) { + var taskName = TaskName.浜у搧閮ㄥ垎鍥炲簱; + var db = new SqlHelper<object>().GetInstance(); + + var startAreas = Settings.Areas[AreaIndex.X鍗歌揣鍖篯; + var endAreas = Settings.Areas[AreaIndex.H璐ф灦鍖篯; + + try { + // 璧风偣浣嶇疆锛氬彇鏀捐揣鍖猴紙鏈夎揣鐗┿�娌℃湁閿併�宸插惎鐢級 + var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.startLoc && a.N_CURRENT_NUM == 1 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && startAreas.Contains(a.S_AREA_CODE)); + if (startLoc == null) { + return BuildSimpleResult(2, $"璧风偣浣嶇疆 {model.startLoc} 涓嶇鍚堝洖搴撴潯浠�); + } + + var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.startLoc); + if (locCntrRel == null) { + return BuildSimpleResult(3, $"璧风偣浣嶇疆 {model.startLoc} 娌℃湁缁戝畾瀹瑰櫒锛屾棤鍙洖搴撶殑鐗╂枡"); + } + + // 缁堢偣浣嶇疆锛氳揣鏋讹紙娌℃湁璐х墿锛屾病鏈夐攣锛�+ var endLoc = db.Queryable<TN_Location>().First(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && endAreas.Contains(a.S_AREA_CODE)); + if (endLoc == null) { + return BuildSimpleResult(4, $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�); + } + + var cntId = locCntrRel.S_CNTR_CODE; + var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName); + LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�+ LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+ + using (var tran = db.Ado.UseTran()) { + if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { + it.N_LOCK_STATE, + it.S_LOCK_STATE, + it.S_LOCK_OP, + it.T_MODIFY + }).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildSimpleResult(500, + $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"); + } + + if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { + it.N_LOCK_STATE, + it.S_LOCK_STATE, + it.S_LOCK_OP, + it.T_MODIFY + }).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildSimpleResult(500, + $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); + } + + if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return BuildSimpleResult(500, + $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); + } + + tran.CommitTran(); + return BuildSimpleResult(0, + $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); + } + } + catch (Exception ex) { + return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); + } + } + public static SimpleResult CancelTask(CancelTaskInfo model) { var db = new SqlHelper<object>().GetInstance(); var info = ""; -- Gitblit v1.9.1