From 0e829f4a5321c10900e1f4130a80f2e8c804a08e Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期四, 19 六月 2025 17:30:47 +0800 Subject: [PATCH] 修复取消订单和更改终点货区流程与国自AGV交互的部分细节问题 --- api/DebugController.cs | 151 --------- dispatch/GZRobot.cs | 22 + core/Monitor.cs | 208 ++++++------ api/ErpController.cs | 9 api/ApiHelper.cs | 513 ++++++++++++++++---------------- .vs/HH.WCS.Mobox3.AnGang/FileContentIndex/88ff7190-7304-453c-8d3d-4144359d0c9e.vsidx | 0 process/TaskProcess.cs | 11 core/WCSCore.cs | 33 - 8 files changed, 393 insertions(+), 554 deletions(-) diff --git a/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/88ff7190-7304-453c-8d3d-4144359d0c9e.vsidx b/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/88ff7190-7304-453c-8d3d-4144359d0c9e.vsidx new file mode 100644 index 0000000..edd9348 --- /dev/null +++ b/.vs/HH.WCS.Mobox3.AnGang/FileContentIndex/88ff7190-7304-453c-8d3d-4144359d0c9e.vsidx Binary files differ diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index 5bf38d4..a5e3514 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -3,6 +3,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; + +using HH.WCS.Mobox3.AnGang.dispatch; using HH.WCS.Mobox3.AnGang.models; using HH.WCS.Mobox3.AnGang.util; using HH.WCS.Mobox3.AnGang.wms; @@ -105,11 +107,11 @@ } } - //internal static string GenerateNo(string snType, string prefix) { - // var id = SYSHelper.GetSerialNumber(snType, prefix); - // var date = DateTime.Now.ToString("yyMMdd"); - // return $"TN{date}{id.ToString().PadLeft(4, '0')}"; - //} + internal static string GenerateNo(string snType, string prefix) { + var id = SYSHelper.GetSerialNumber(snType, prefix); + var date = DateTime.Now.ToString("yyMMdd"); + return $"{prefix}{date}-{id.ToString().PadLeft(5, '0')}"; // 褰㈠锛欳N250525-00011 + } /// <summary> /// PDA閫夋嫨缁堢偣璐т綅 @@ -183,13 +185,13 @@ using (var tran = db.Ado.UseTran()) { if (db.Updateable<TN_Task>(task).UpdateColumns(a => a.S_END_LOC).ExecuteCommand() <= 0) { tran.RollbackTran(); - return BuildSimpleResult(7, $"浠诲姟{task.S_CODE}淇敼澶辫触锛屼慨鏀圭粓鐐逛綅缃负{endLoc.S_CODE}"); + return BuildSimpleResult(500, $"浠诲姟{task.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(7, $"浠诲姟{task.S_CODE}淇敼澶辫触锛屼慨鏀圭粓鐐逛綅缃负{endLoc.S_CODE}"); + return BuildSimpleResult(500, $"浠诲姟{task.S_CODE}淇敼澶辫触锛屼慨鏀圭粓鐐逛綅缃负{endLoc.S_CODE}"); } tran.CommitTran(); @@ -239,6 +241,8 @@ LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿� LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+ + var res = GZRobot.QueryInteractInfo(3); using (var tran = db.Ado.UseTran()) { if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { @@ -353,16 +357,16 @@ task.N_B_STATE = 4; task.S_B_STATE = "鍙栨秷"; - var starloc = db.Queryable<TN_Location>().First(a => a.S_CODE == task.S_START_LOC); + var startloc = db.Queryable<TN_Location>().First(a => a.S_CODE == task.S_START_LOC); var endloc = db.Queryable<TN_Location>().First(a => a.S_CODE == task.S_END_LOC); //var locCnt = db.Queryable<TN_Loc_Container>().First(a => a.S_CNTR_CODE == task.S_CNTR_CODE); //var cg = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == task.S_CNTR_CODE); - if (starloc != null) { - starloc.N_LOCK_STATE = 0; - starloc.S_LOCK_STATE = "鏃�; + if (startloc != null) { + startloc.N_LOCK_STATE = 0; + startloc.S_LOCK_STATE = "鏃�; //starloc.N_CURRENT_NUM = 0; - starloc.T_MODIFY = System.DateTime.Now; + startloc.T_MODIFY = System.DateTime.Now; } if (endloc != null) { @@ -372,45 +376,45 @@ endloc.T_MODIFY = System.DateTime.Now; } + if (!int.TryParse(task.S_EQ_TASK_CODE, out var code)) { + return BuildSimpleResult(1, $"褰撳墠浠诲姟{task.S_CODE}娌℃湁鎵惧埌瀵瑰簲鐨勫浗鑷狝GV orderId锛�); + } + var res = GZRobot.CancelGZOrder(code); + if (!res) { + return BuildSimpleResult(2, $"鍥借嚜AGV鍙栨秷浠诲姟澶辫触锛�); + } + using (var tran = db.Ado.UseTran()) { - if (db.Updateable<TN_Location>(starloc).ExecuteCommand() <= 0) { + if (db.Updateable<TN_Location>(startloc).ExecuteCommand() <= 0) { tran.RollbackTran(); - - info = $"浠诲姟{task.S_CODE}鍙栨秷澶辫触"; - - return BuildSimpleResult(0, info); + info = $"浠诲姟{task.S_CODE}鍙栨秷澶辫触锛氫慨鏀硅捣鐐硅揣浣嶉攣鐘舵�澶辫触"; + return BuildSimpleResult(500, info); } if (endloc != null) { if (db.Updateable<TN_Location>(endloc).ExecuteCommand() <= 0) { tran.RollbackTran(); - - info = $"浠诲姟{task.S_CODE}鍙栨秷澶辫触"; - - return BuildSimpleResult(0, info); + info = $"浠诲姟{task.S_CODE}鍙栨秷澶辫触锛氫慨鏀圭粓鐐硅揣浣嶉攣鐘舵�澶辫触"; + return BuildSimpleResult(500, info); } } if (db.Updateable<TN_Task>(task).ExecuteCommand() <= 0) { - if (db.Updateable<TN_Location>(endloc).ExecuteCommand() <= 0) { - tran.RollbackTran(); - - info = $"浠诲姟{task.S_CODE}鍙栨秷澶辫触"; - - return BuildSimpleResult(0, info); - } + tran.RollbackTran(); + info = $"浠诲姟{task.S_CODE}鍙栨秷澶辫触"; + return BuildSimpleResult(500, info); } tran.CommitTran(); - info = $"浠诲姟{task.S_CODE}鍙栨秷鎴愬姛"; - return BuildSimpleResult(0, info); } } else { return BuildSimpleResult(3, $"鍙湁浠诲姟鍙风姸鎬佷负 绛夊緟 鎴�宸叉帹閫�鐨勪换鍔℃墠鑳藉彇娑�); + + // return CancelTaskIfForced(model, task); // 澶囩敤鍑芥暟锛屽鏋滅敳鏂硅姹備换鍔℃墽琛屼腑涔熷彇娑堬紝鍐嶈皟鐢� } } @@ -419,271 +423,268 @@ } } - public static SimpleResult CreateCountPlan(CreateCountPlanInfo model) { - var db = new SqlHelper<object>().GetInstance(); - try { - - var countPlan = new TN_Count_Plan() { - S_CP_NO = GenerateNo("鐩樼偣璁″垝", "CP"), - S_TYPE = model.countType, - }; - - if (model.countType == "璐т綅") { - countPlan.S_LOC_CODE = model.targetId; - } - else if (model.countType == "鐗╂枡") { - countPlan.S_ITEM_CODE = model.targetId; - } - else { - return BuildSimpleResult(2, $"鍒涘缓鐩樼偣璁″垝澶辫触锛氫笉鍚堟硶鐨勭洏鐐圭被鍨�'{model.countType}'"); - } - - if (db.Insertable<TN_Count_Plan>(countPlan).ExecuteCommand() <= 0) { - return BuildSimpleResult(2, "鍒涘缓鐩樼偣璁″垝澶辫触"); - } - - return BuildSimpleResult(0, "鍒涘缓鐩樼偣璁″垝鎴愬姛"); - - } - catch (Exception ex) { - - return BuildSimpleResult(1, ex.Message); - } + public static SimpleResult CancelTaskIfForced(CancleTaskInfo model, TN_Task task) { + return BuildSimpleResult(3, $"鍙湁浠诲姟鍙风姸鎬佷负 绛夊緟 鎴�宸叉帹閫�鐨勪换鍔℃墠鑳藉彇娑�); } - public static SimpleResult CreateCountOrder(CreateCountOrderInfo model) { - var db = new SqlHelper<object>().GetInstance(); - var info = ""; - try { - var countPlan = db.Queryable<TN_Count_Plan>() - .Where(a => a.S_CP_NO == model.planId).First(); + //public static SimpleResult CreateCountPlan(CreateCountPlanInfo model) { + // var db = new SqlHelper<object>().GetInstance(); + // try { - if (countPlan == null) { - return BuildSimpleResult(2, $"鐩樼偣璁″垝鍗曞彿 '{model.planId}' 涓嶅瓨鍦�); - } + // var countPlan = new TN_Count_Plan() { + // S_CP_NO = GenerateNo("鐩樼偣璁″垝", "CP"), + // S_TYPE = model.countType, + // }; - var countOrder = new TN_Count_Order() { - S_CP_NO = model.planId, - S_COUNT_NO = GenerateNo("鐩樼偣鍗�, "CN"), - }; + // if (model.countType == "璐т綅") { + // countPlan.S_LOC_CODE = model.targetId; + // } + // else if (model.countType == "鐗╂枡") { + // countPlan.S_ITEM_CODE = model.targetId; + // } + // else { + // return BuildSimpleResult(2, $"鍒涘缓鐩樼偣璁″垝澶辫触锛氫笉鍚堟硶鐨勭洏鐐圭被鍨�'{model.countType}'"); + // } - var countDetailList = new List<TN_Count_CG_Detail>(); - if (countPlan.S_TYPE == "璐т綅") { - var cgDetail = db.Queryable<TN_Location, TN_Loc_Container, TN_CG_Detail> - ((l, c, d) => l.S_CODE == c.S_LOC_CODE && c.S_CNTR_CODE == d.S_CNTR_CODE) - .Where(l => l.S_CODE == countPlan.S_LOC_CODE) - .Select((l, c, d) => d).First(); + // if (db.Insertable<TN_Count_Plan>(countPlan).ExecuteCommand() <= 0) { + // return BuildSimpleResult(2, "鍒涘缓鐩樼偣璁″垝澶辫触"); + // } - var countDetail = new TN_Count_CG_Detail { - S_COUNT_NO = countOrder.S_COUNT_NO, - S_CNTR_CODE = cgDetail.S_CNTR_CODE, - S_ITEM_CODE = cgDetail.S_ITEM_CODE, - }; + // return BuildSimpleResult(0, "鍒涘缓鐩樼偣璁″垝鎴愬姛"); - countDetailList.Add(countDetail); - } - else if (countPlan.S_TYPE == "鐗╂枡") { - var cgDetailList = db.Queryable<TN_CG_Detail>() - .Where(d => d.S_ITEM_CODE == countPlan.S_ITEM_CODE).ToList(); + // } + // catch (Exception ex) { - foreach (var cgDetail in cgDetailList) { - var countDetail = new TN_Count_CG_Detail { - S_COUNT_NO = countOrder.S_COUNT_NO, - S_CNTR_CODE = cgDetail.S_CNTR_CODE, - S_ITEM_CODE = cgDetail.S_ITEM_CODE, - }; + // return BuildSimpleResult(1, ex.Message); + // } + //} - countDetailList.Add(countDetail); - } - } - else { - return BuildSimpleResult(3, $"璁″垝鍗�{model.planId}'鐨勭被鍨媨countPlan.S_TYPE}涓嶅悎娉�); - } + //public static SimpleResult CreateCountOrder(CreateCountOrderInfo model) { + // var db = new SqlHelper<object>().GetInstance(); + // var info = ""; + // try { + // var countPlan = db.Queryable<TN_Count_Plan>() + // .Where(a => a.S_CP_NO == model.planId).First(); - using (var tran = db.Ado.UseTran()) { - if (db.Insertable<TN_Count_Order>(countOrder).ExecuteCommand() <= 0) { - tran.RollbackTran(); - info = "鍒涘缓鐩樼偣鍗曞け璐�; - return BuildSimpleResult(2, info); - } + // if (countPlan == null) { + // return BuildSimpleResult(2, $"鐩樼偣璁″垝鍗曞彿 '{model.planId}' 涓嶅瓨鍦�); + // } - if (db.Insertable<TN_Count_CG_Detail>(countDetailList).ExecuteCommand() <= 0) { - tran.RollbackTran(); - info = "鍒涘缓鐩樼偣鍗曟槑缁嗗け璐�; - return BuildSimpleResult(3, info); - } + // var countOrder = new TN_Count_Order() { + // S_CP_NO = model.planId, + // S_COUNT_NO = GenerateNo("鐩樼偣鍗�, "CN"), + // }; - tran.CommitTran(); - } + // var countDetailList = new List<TN_Count_CG_Detail>(); + // if (countPlan.S_TYPE == "璐т綅") { + // var cgDetail = db.Queryable<TN_Location, TN_Loc_Container, TN_CG_Detail> + // ((l, c, d) => l.S_CODE == c.S_LOC_CODE && c.S_CNTR_CODE == d.S_CNTR_CODE) + // .Where(l => l.S_CODE == countPlan.S_LOC_CODE) + // .Select((l, c, d) => d).First(); - return BuildSimpleResult(0, "鍒涘缓鐩樼偣鍗曟垚鍔�); - } - catch (Exception ex) { + // var countDetail = new TN_Count_CG_Detail { + // S_COUNT_NO = countOrder.S_COUNT_NO, + // S_CNTR_CODE = cgDetail.S_CNTR_CODE, + // S_ITEM_CODE = cgDetail.S_ITEM_CODE, + // }; - return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); - } - } + // countDetailList.Add(countDetail); + // } + // else if (countPlan.S_TYPE == "鐗╂枡") { + // var cgDetailList = db.Queryable<TN_CG_Detail>() + // .Where(d => d.S_ITEM_CODE == countPlan.S_ITEM_CODE).ToList(); - public static SimpleResult CountProduct(CountProductInfo model) { - var db = new SqlHelper<object>().GetInstance(); - try { - var cgDetail = db.Queryable<TN_CG_Detail>() - .Where(d => d.S_CNTR_CODE == model.cntrCode).First(); + // foreach (var cgDetail in cgDetailList) { + // var countDetail = new TN_Count_CG_Detail { + // S_COUNT_NO = countOrder.S_COUNT_NO, + // S_CNTR_CODE = cgDetail.S_CNTR_CODE, + // S_ITEM_CODE = cgDetail.S_ITEM_CODE, + // }; - if (cgDetail == null) { - return BuildSimpleResult(2, $"鎵句笉鍒板鍣ㄥ彿'{model.cntrCode}'瀵瑰簲鐨勭墿鏂�); - } + // countDetailList.Add(countDetail); + // } + // } + // else { + // return BuildSimpleResult(3, $"璁″垝鍗�{model.planId}'鐨勭被鍨媨countPlan.S_TYPE}涓嶅悎娉�); + // } - var countDiff = new TN_Count_Diff { - S_CNTR_CODE = cgDetail.S_CNTR_CODE, - F_QTY = cgDetail.F_QTY, - F_ACTUAL_QTY = model.qty - }; + // using (var tran = db.Ado.UseTran()) { + // if (db.Insertable<TN_Count_Order>(countOrder).ExecuteCommand() <= 0) { + // tran.RollbackTran(); + // info = "鍒涘缓鐩樼偣鍗曞け璐�; + // return BuildSimpleResult(2, info); + // } - if (db.Insertable<TN_Count_Diff>(countDiff).ExecuteCommand() <= 0) { - return BuildSimpleResult(3, $"鎻掑叆鐩樼偣宸紓琛ㄥけ璐�); - } + // if (db.Insertable<TN_Count_CG_Detail>(countDetailList).ExecuteCommand() <= 0) { + // tran.RollbackTran(); + // info = "鍒涘缓鐩樼偣鍗曟槑缁嗗け璐�; + // return BuildSimpleResult(3, info); + // } - return BuildSimpleResult(0, "鐩樼偣宸紓瀹屾垚"); + // tran.CommitTran(); + // } - } - catch (Exception ex) { - return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); - } - } + // return BuildSimpleResult(0, "鍒涘缓鐩樼偣鍗曟垚鍔�); + // } + // catch (Exception ex) { - internal static string GenerateNo(string snType, string prefix) { - var id = SYSHelper.GetSerialNumber(snType, prefix); - - var date = DateTime.Now.ToString("yyMMdd"); - return $"{prefix}{date}-{id.ToString().PadLeft(5, '0')}"; // 褰㈠锛欳N250525-00011 - } + // return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); + // } + //} - /// <summary> - /// 鐩樼偣鐞嗚揣鍑哄簱(WMS) - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - internal static SimpleResult CheckOutbound(CheckOutboundInfo model) { - var taskName = TaskName.鐩樼偣鐞嗚揣鍑哄簱; - var db = new SqlHelper<object>().GetInstance(); + //public static SimpleResult CountProduct(CountProductInfo model) { + // var db = new SqlHelper<object>().GetInstance(); + // try { + // var cgDetail = db.Queryable<TN_CG_Detail>() + // .Where(d => d.S_CNTR_CODE == model.cntrCode).First(); - 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" && Settings.Areas[0].Contains(a.S_AREA_CODE)); - if (startLoc == null) { - return BuildSimpleResult(2, $"璧风偣浣嶇疆 {model.startLoc} 涓嶇鍚堝嚭搴撴潯浠�); - } + // if (cgDetail == null) { + // return BuildSimpleResult(2, $"鎵句笉鍒板鍣ㄥ彿'{model.cntrCode}'瀵瑰簲鐨勭墿鏂�); + // } - var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.startLoc); - if (locCntrRel == null) { - return BuildSimpleResult(3, $"璧风偣浣嶇疆 {model.startLoc} 娌℃湁缁戝畾瀹瑰櫒锛屾棤鍙洖搴撶殑鐗╂枡"); - } + // var countDiff = new TN_Count_Diff { + // S_CNTR_CODE = cgDetail.S_CNTR_CODE, + // F_QTY = cgDetail.F_QTY, + // F_ACTUAL_QTY = model.qty + // }; - // 缁堢偣浣嶇疆锛氳揣鏋讹紙娌℃湁璐х墿锛屾病鏈夐攣锛�- var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y"); - if (endLoc == null) { - return BuildSimpleResult(4, $"缁堢偣浣嶇疆 {model.endLoc} 涓嶅叿澶囨斁璐ф潯浠�); - } + // if (db.Insertable<TN_Count_Diff>(countDiff).ExecuteCommand() <= 0) { + // return BuildSimpleResult(3, $"鎻掑叆鐩樼偣宸紓琛ㄥけ璐�); + // } - var cntID = locCntrRel.S_CNTR_CODE; - var task = WCSHelper.BuildTask(startLoc, endLoc, cntID, taskName); - LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�- LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+ // return BuildSimpleResult(0, "鐩樼偣宸紓瀹屾垚"); - 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}"); - } + // } + // catch (Exception ex) { + // return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); + // } + //} - 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}"); - } + ///// <summary> + ///// 鐩樼偣鐞嗚揣鍑哄簱(WMS) + ///// </summary> + ///// <param name="model"></param> + ///// <returns></returns> + //internal static SimpleResult CheckOutbound(CheckOutboundInfo model) { + // var taskName = TaskName.鐩樼偣鐞嗚揣鍑哄簱; + // var db = new SqlHelper<object>().GetInstance(); - if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { - tran.RollbackTran(); - return BuildSimpleResult(500, - $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); - } + // 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" && Settings.Areas[0].Contains(a.S_AREA_CODE)); + // if (startLoc == null) { + // return BuildSimpleResult(2, $"璧风偣浣嶇疆 {model.startLoc} 涓嶇鍚堝嚭搴撴潯浠�); + // } - tran.CommitTran(); - return BuildSimpleResult(0, - $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); - } - } - catch (Exception ex) { - return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); - } - } + // var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.startLoc); + // if (locCntrRel == null) { + // return BuildSimpleResult(3, $"璧风偣浣嶇疆 {model.startLoc} 娌℃湁缁戝畾瀹瑰櫒锛屾棤鍙洖搴撶殑鐗╂枡"); + // } - /// <summary> - /// 鐩樼偣鐞嗚揣鍥炲簱(WMS) - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - internal static SimpleResult CheckInbound(CheckInboundInfo model) { - var taskName = TaskName.鐩樼偣鐞嗚揣鍥炲簱; - var db = new SqlHelper<object>().GetInstance(); + // // 缁堢偣浣嶇疆锛氳揣鏋讹紙娌℃湁璐х墿锛屾病鏈夐攣锛�+ // var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y"); + // if (endLoc == null) { + // return BuildSimpleResult(4, $"缁堢偣浣嶇疆 {model.endLoc} 涓嶅叿澶囨斁璐ф潯浠�); + // } - 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" && Settings.Areas[0].Contains(a.S_AREA_CODE)); - if (startLoc == null) { - return BuildSimpleResult(2, $"璧风偣浣嶇疆 {model.startLoc} 涓嶇鍚堝洖搴撴潯浠�); - } + // var cntID = locCntrRel.S_CNTR_CODE; + // var task = WCSHelper.BuildTask(startLoc, endLoc, cntID, taskName); + // LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�+ // LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿� - var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == model.startLoc); - if (locCntrRel == null) { - return BuildSimpleResult(3, $"璧风偣浣嶇疆 {model.startLoc} 娌℃湁缁戝畾瀹瑰櫒锛屾棤鍙洖搴撶殑鐗╂枡"); - } + // 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}"); + // } - // 缁堢偣浣嶇疆锛氳揣鏋讹紙娌℃湁璐х墿锛屾病鏈夐攣锛�- var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y"); - if (endLoc == null) { - return BuildSimpleResult(4, $"缁堢偣浣嶇疆 {model.endLoc} 涓嶅叿澶囨斁璐ф潯浠�); - } + // 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}"); + // } - var cntID = locCntrRel.S_CNTR_CODE; - var task = WCSHelper.BuildTask(startLoc, endLoc, cntID, taskName); - LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�- LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+ // if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { + // tran.RollbackTran(); + // return BuildSimpleResult(500, + // $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); + // } - 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}"); - } + // tran.CommitTran(); + // return BuildSimpleResult(0, + // $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); + // } + // } + // catch (Exception ex) { + // return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); + // } + //} - 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}"); - } + ///// <summary> + ///// 鐩樼偣鐞嗚揣鍥炲簱(WMS) + ///// </summary> + ///// <param name="model"></param> + ///// <returns></returns> + //internal static SimpleResult CheckInbound(CheckInboundInfo model) { + // var taskName = TaskName.鐩樼偣鐞嗚揣鍥炲簱; + // var db = new SqlHelper<object>().GetInstance(); - if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { - tran.RollbackTran(); - return BuildSimpleResult(500, - $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); - } + // 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" && Settings.Areas[0].Contains(a.S_AREA_CODE)); + // if (startLoc == null) { + // return BuildSimpleResult(2, $"璧风偣浣嶇疆 {model.startLoc} 涓嶇鍚堝洖搴撴潯浠�); + // } - tran.CommitTran(); - return BuildSimpleResult(0, - $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntID} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣鏋�{endLoc.S_CODE}"); - } - } - catch (Exception ex) { - return BuildSimpleResult(1, $"鍙戠敓浜嗗紓甯革細{ex.Message}"); - } - } + // 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.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y"); + // if (endLoc == null) { + // return BuildSimpleResult(4, $"缁堢偣浣嶇疆 {model.endLoc} 涓嶅叿澶囨斁璐ф潯浠�); + // } + + // 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 ErpResult InboundDataSync(InboundDataSyncInfo model) { //return BuildErpResult(1, "娴嬭瘯"); diff --git a/api/DebugController.cs b/api/DebugController.cs index 7f8d113..109a250 100644 --- a/api/DebugController.cs +++ b/api/DebugController.cs @@ -100,157 +100,6 @@ return gzResults; } - ///// <summary> - ///// 鍒濆鍖栨暟鎹簱 - ///// </summary> - ///// <returns></returns> - //[HttpPost] - //[Route("CreateDatabase")] - //public string CreateDatabase(CoverInfo model) { - // try { - // var db = new SqlHelper<object>().GetInstance(); - // var cover = model.IsCover; - - // var entityTypes = new Type[] { - // typeof(TN_CAR_IN), - // typeof(TN_CG_Detail), - // typeof(TN_Container), - // typeof(TN_Loc_Container), - // typeof(TN_Location), - // typeof(TN_Task), - // typeof(TN_Task_Action), - // typeof(SYSHelper.OI_SYS_MAXID), - - // typeof(TN_Count_Plan), - // typeof(TN_Count_Order), - // typeof(TN_Count_CG_Detail), - // typeof(TN_Count_Diff), - // }; - - // using (var tran = db.Ado.UseTran()) { - // if (cover) { - // // 鍒犻櫎鎵�湁琛紙鎸変緷璧栧叧绯诲�搴忥級 - // var tables = db.DbMaintenance.GetTableInfoList(); - // foreach (var table in tables.OrderByDescending(t => t.Name)) { - // db.DbMaintenance.DropTable(table.Name); - // } - - // // 鍒涘缓鏂拌〃 - // db.CodeFirst.InitTables(entityTypes); - - // //db.CodeFirst.BackupTable().InitTables(entityTypes); - // } - // else { - // db.CodeFirst.InitTables(entityTypes); - // } - - // tran.CommitTran(); - // } - - // } - // catch (Exception ex) { - // LogHelper.Info($"鍙戠敓浜嗗紓甯�); - // return "鍒濆鍖栨暟鎹簱閿欒" + ex.Message; - // } - - // return "鎴愬姛"; - //} - - /// <summary> - /// DEBUG锛氭彃鍏ヨ揣浣嶃�瀹瑰櫒銆佽揣鍝佷俊鎭�- /// </summary> - /// <returns></returns> - [HttpPost] - [Route("InsertLocCntrCg")] - public string InsertLocCntrCg(LocCntrCg locCntrCg) { - var db = new SqlHelper<object>().GetInstance(); - - try { - using (var tran = db.UseTran()) { - LogHelper.Info("LogCntrCg锛� + JsonConvert.SerializeObject(locCntrCg)); - if (string.IsNullOrEmpty(locCntrCg.LocCode)) { - return "鍙傛暟闈炴硶"; - } - - var loc = db.Queryable<TN_Location>().First(a => a.S_CODE == locCntrCg.LocCode); - if (loc == null) { - var newLoc = new TN_Location { - S_CODE = locCntrCg.LocCode, - S_AREA_CODE = locCntrCg.LocArea ?? "" - }; - - if (db.Insertable<TN_Location>(newLoc).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info($"鎻掑叆浣嶇疆{locCntrCg.LocCode}澶辫触"); - return "鎻掑叆澶辫触"; - } - - loc = newLoc; - } - - //if (loc.N_CURRENT_NUM == 0) { - // loc.N_CURRENT_NUM = 1; - // if (db.Updateable<TN_Location>(loc).UpdateColumns( - // it => new { it.N_CURRENT_NUM, it.T_MODIFY }).ExecuteCommand() <= 0) { - // tran.RollbackTran(); - // LogHelper.Info($"淇敼浣嶇疆{locCntrCg.LocCode}澶辫触"); - // continue; - // } - //} - - if (string.IsNullOrEmpty(locCntrCg.CntrCode)) { - tran.CommitTran(); - LogHelper.Info("瀹瑰櫒鍙蜂负绌猴紝涓嶅啀璇诲彇鍚庨潰鐨勬暟鎹�); - return "瀹瑰櫒鍙蜂负绌猴紝涓嶅啀璇诲彇鍚庨潰鐨勬暟鎹�; - } - - var locCntrRel = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == locCntrCg.LocCode - && a.S_CNTR_CODE == locCntrCg.CntrCode); - - if (locCntrRel == null) { - var newLocCntrRel = new TN_Loc_Container { - S_LOC_CODE = locCntrCg.LocCode, - S_CNTR_CODE = locCntrCg.CntrCode - }; - - loc.N_CURRENT_NUM = 1; - - if (db.Insertable<TN_Loc_Container>(newLocCntrRel).ExecuteCommand() <= 0 - && db.Updateable<TN_Location>(loc).UpdateColumns(c => c.N_CURRENT_NUM).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info($"鎻掑叆浣嶇疆鎵樼洏鍏崇郴{locCntrCg.LocCode}-{locCntrCg.CntrCode}澶辫触"); - return "鎻掑叆澶辫触"; - } - } - - if (string.IsNullOrEmpty(locCntrCg.ItemCode)) { - tran.CommitTran(); - LogHelper.Info("鐗╂枡鍙蜂负绌猴紝涓嶅啀璇诲彇鍚庨潰鐨勬暟鎹�); - return "鐗╂枡鍙蜂负绌猴紝涓嶅啀璇诲彇鍚庨潰鐨勬暟鎹�; - } - - var cgDetail = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == locCntrCg.CntrCode - && a.S_ITEM_CODE == locCntrCg.ItemCode); - if (cgDetail == null) { - var locList = new List<TN_CG_Detail>(); - locList.Add(new TN_CG_Detail { S_CNTR_CODE = locCntrCg.CntrCode, S_ITEM_CODE = locCntrCg.ItemCode, S_BATCH_NO = locCntrCg.BatchNo ?? "" }); - if (db.Insertable<TN_CG_Detail>(locList).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info($"鎻掑叆鎵樼洏鐗╂枡鍏崇郴{locCntrCg.CntrCode}-{locCntrCg}澶辫触"); - return "鎻掑叆澶辫触"; - } - } - tran.CommitTran(); - } - - return "鎻掑叆鏁版嵁鎴愬姛"; - - } - catch (Exception ex) { - return $"{ex.Message}"; - } - } - /// <summary> /// DEBUG锛氭牴鎹换鍔″彿璁剧疆鐗╂枡閲嶉噺 /// </summary> diff --git a/api/ErpController.cs b/api/ErpController.cs index 5eaecc6..88e60c0 100644 --- a/api/ErpController.cs +++ b/api/ErpController.cs @@ -25,13 +25,8 @@ public IHttpActionResult InboundDataSync(InboundDataSyncInfo model) { LogHelper.Info("瑙﹀彂API锛氬叆搴撴暟鎹悓姝� + JsonConvert.SerializeObject(model), "API"); - //var headers = Request.Headers; // 鏆備笉鑰冭檻瀵硅姹侶TTP杩涜鏍¢獙锛岄粯璁ゅ彂鏉ョ殑璇锋眰鏍煎紡閮芥纭�- - //return new ErpResult { errCode = 1, errMsg = "娴嬭瘯" }; - //return CreateSuccessResponse(new ErpResult { errCode = 1, errMsg = "娴嬭瘯"}); - //var headers = Request.Headers; - //return ProcessInboundData(headers, model); + //return ProcessInboundData(headers, model); // 濡傛灉瑕佹眰瀵笻TTP鎶ユ枃瀛楁鏍¢獙锛屼娇鐢ㄨ繖琛屼唬鐮� //return ApiHelper.InboundDataSync(model); return NormalProcessInboundData(model); // 鏆傛椂浣跨敤鍘熸湰鐨勯�杈�@@ -48,7 +43,7 @@ LogHelper.Info("瑙﹀彂API锛氬嚭搴撳彂鏂欏悓姝� + JsonConvert.SerializeObject(model), "API"); //var headers = Request.Headers; - //return ProcessOutboundData(headers, model); + //return ProcessOutboundData(headers, model); // 濡傛灉瑕佹眰瀵笻TTP鎶ユ枃瀛楁鏍¢獙锛屼娇鐢ㄨ繖琛屼唬鐮� //return ApiHelper.OutboundDataSync(model); return NormalProcessOutboundData(model); // 鏆傛椂浣跨敤鍘熸湰鐨勯�杈�diff --git a/core/Monitor.cs b/core/Monitor.cs index ec87521..6a801db 100644 --- a/core/Monitor.cs +++ b/core/Monitor.cs @@ -15,131 +15,131 @@ /// </summary> public class Monitor { - public static void CheckCountOrder() { - var taskName = TaskName.鐩樼偣鐞嗚揣鍑哄簱; - var db = new SqlHelper<object>().GetInstance(); - var info = ""; + //public static void CheckCountOrder() { + // var taskName = TaskName.鐩樼偣鐞嗚揣鍑哄簱; + // var db = new SqlHelper<object>().GetInstance(); + // var info = ""; - try { - var orderList = db.Queryable<TN_Count_Order>() - .Where(c => c.N_B_STATE == 1) - .OrderBy(c => c.T_CREATE, SqlSugar.OrderByType.Asc) - .ToList(); + // try { + // var orderList = db.Queryable<TN_Count_Order>() + // .Where(c => c.N_B_STATE == 1) + // .OrderBy(c => c.T_CREATE, SqlSugar.OrderByType.Asc) + // .ToList(); - if (orderList.Count == 0) { - LogHelper.Info($"杞--{taskName}--鏆傛棤寰呮墽琛岀殑{taskName}鍗�); - return; - } + // if (orderList.Count == 0) { + // LogHelper.Info($"杞--{taskName}--鏆傛棤寰呮墽琛岀殑{taskName}鍗�); + // return; + // } - var detailList = new List<TN_Count_CG_Detail>(); - foreach (var order in orderList) { - var doingCount = db.Queryable<TN_Count_CG_Detail>() - .Count(d => d.S_COUNT_NO == order.S_COUNT_NO && d.N_B_STATE >= 2); // 鎵ц涓�- var allCount = db.Queryable<TN_Count_CG_Detail>() - .Count(d => d.S_COUNT_NO == order.S_COUNT_NO); - LogHelper.Info($"杞--{taskName}--缁熻{taskName}鍗�{order.S_COUNT_NO}'浠诲姟宸蹭笅鍙戯細{doingCount}/{allCount}"); + // var detailList = new List<TN_Count_CG_Detail>(); + // foreach (var order in orderList) { + // var doingCount = db.Queryable<TN_Count_CG_Detail>() + // .Count(d => d.S_COUNT_NO == order.S_COUNT_NO && d.N_B_STATE >= 2); // 鎵ц涓�+ // var allCount = db.Queryable<TN_Count_CG_Detail>() + // .Count(d => d.S_COUNT_NO == order.S_COUNT_NO); + // LogHelper.Info($"杞--{taskName}--缁熻{taskName}鍗�{order.S_COUNT_NO}'浠诲姟宸蹭笅鍙戯細{doingCount}/{allCount}"); - if (doingCount == allCount) { - order.N_B_STATE = 2; // 鎵�湁浠诲姟閮藉凡鎵ц - db.Updateable<TN_Count_Order>(order).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); - continue; - } + // if (doingCount == allCount) { + // order.N_B_STATE = 2; // 鎵�湁浠诲姟閮藉凡鎵ц + // db.Updateable<TN_Count_Order>(order).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); + // continue; + // } - var countCgDetailList = db.Queryable<TN_Count_CG_Detail>() - .Where(a => a.S_COUNT_NO == order.S_COUNT_NO && a.N_B_STATE == 1) // 宸蹭笅鍙�- .ToList(); + // var countCgDetailList = db.Queryable<TN_Count_CG_Detail>() + // .Where(a => a.S_COUNT_NO == order.S_COUNT_NO && a.N_B_STATE == 1) // 宸蹭笅鍙�+ // .ToList(); - if (countCgDetailList.Count == 0) { - LogHelper.Info($"杞--{taskName}--{taskName}鍗曟槑缁嗙姸鎬佸紓甯�); - continue; - } + // if (countCgDetailList.Count == 0) { + // LogHelper.Info($"杞--{taskName}--{taskName}鍗曟槑缁嗙姸鎬佸紓甯�); + // continue; + // } - detailList.AddRange(countCgDetailList); - } + // detailList.AddRange(countCgDetailList); + // } - if (detailList.Count == 0) { - return; - } + // if (detailList.Count == 0) { + // return; + // } - foreach (var detail in detailList) { - var startLoc = db.Queryable<TN_Location>() - .LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE) - .Where((l, c) => c.S_CNTR_CODE == detail.S_CNTR_CODE) - .First(); + // foreach (var detail in detailList) { + // var startLoc = db.Queryable<TN_Location>() + // .LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE) + // .Where((l, c) => c.S_CNTR_CODE == detail.S_CNTR_CODE) + // .First(); - if (startLoc == null) { - LogHelper.Info($"杞--{taskName}锛氭病鏈夋壘鍒板悎閫傜殑璧风偣璐т綅锛�); - continue; - } + // if (startLoc == null) { + // LogHelper.Info($"杞--{taskName}锛氭病鏈夋壘鍒板悎閫傜殑璧风偣璐т綅锛�); + // continue; + // } - var endLoc = db.Queryable<TN_Location>() - .Where(a => Settings.Areas[0].Contains(a.S_AREA_CODE)) - .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") - .Where(a => a.N_CURRENT_NUM == 0).First(); + // var endLoc = db.Queryable<TN_Location>() + // .Where(a => Settings.Areas[0].Contains(a.S_AREA_CODE)) + // .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") + // .Where(a => a.N_CURRENT_NUM == 0).First(); - if (endLoc == null) { - LogHelper.Info($"杞--{taskName}锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅锛佸崟鍙蜂负 '{detail.S_COUNT_NO}'"); - continue; - } + // if (endLoc == null) { + // LogHelper.Info($"杞--{taskName}锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅锛佸崟鍙蜂负 '{detail.S_COUNT_NO}'"); + // continue; + // } - detail.N_B_STATE = 2; + // detail.N_B_STATE = 2; - var cntId = detail.S_CNTR_CODE; - var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName); + // var cntId = detail.S_CNTR_CODE; + // var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName); - LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�- LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+ // LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�+ // LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿� - using (var tran = db.Ado.UseTran()) { - if (db.Updateable<TN_Count_CG_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info($"杞--{taskName}--淇敼鏄庣粏琛ㄧ姸鎬佷负瀹屾垚澶辫触锛�); - } + // using (var tran = db.Ado.UseTran()) { + // if (db.Updateable<TN_Count_CG_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { + // tran.RollbackTran(); + // LogHelper.Info($"杞--{taskName}--淇敼鏄庣粏琛ㄧ姸鎬佷负瀹屾垚澶辫触锛�); + // } - 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(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣浣峽endLoc.S_CODE}"; - LogHelper.Info(info); - continue; - } + // 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(); + // info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣浣峽endLoc.S_CODE}"; + // LogHelper.Info(info); + // continue; + // } - 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) { + // 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(); - info = $"鐢熸垚'{taskName}'澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"; - LogHelper.Info(info); - continue; - } + // tran.RollbackTran(); + // info = $"鐢熸垚'{taskName}'澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"; + // LogHelper.Info(info); + // continue; + // } - if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { - tran.RollbackTran(); - info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"; - LogHelper.Info(info); - continue; - } + // if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { + // tran.RollbackTran(); + // info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"; + // LogHelper.Info(info); + // continue; + // } - tran.CommitTran(); - info = $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"; - LogHelper.Info(info); - //continue; - } - } - } - catch (Exception ex) { - info = $"鍙戠敓浜嗗紓甯革細{ex.Message}"; - LogHelper.Info(info); - } - } + // tran.CommitTran(); + // info = $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}"; + // LogHelper.Info(info); + // //continue; + // } + // } + // } + // catch (Exception ex) { + // info = $"鍙戠敓浜嗗紓甯革細{ex.Message}"; + // LogHelper.Info(info); + // } + //} } } diff --git a/core/WCSCore.cs b/core/WCSCore.cs index 4718d04..c904e6f 100644 --- a/core/WCSCore.cs +++ b/core/WCSCore.cs @@ -19,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锛岃鏄庢病鏈夋壘鍒颁换鍔�@@ -347,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; } } diff --git a/dispatch/GZRobot.cs b/dispatch/GZRobot.cs index 213e3d5..465007f 100644 --- a/dispatch/GZRobot.cs +++ b/dispatch/GZRobot.cs @@ -27,6 +27,7 @@ var dataResult = JsonConvert.DeserializeObject<gzResult<IOStatesInfoResult>>(result); } + // DOC 1. 鍒涘缓璁㈠崟 WMS->RCS public static int CreateOrder(string taskNo, int priority, string param, string ts = "churuku", string created_user = "hanhe") { LogHelper.Info($"CreateOrder鍙傛暟淇℃伅:taskNo:{taskNo},priority:{priority},param:{param},ts:{ts}锛宑reated_user锛歿created_user}", "API"); var msg = ""; @@ -76,6 +77,7 @@ return result; } + // DOC 2. 鍙栨秷璁㈠崟 WMS->RCS public static bool CancelGZOrder(int orderId) { bool result = false; string msg = ""; @@ -86,12 +88,21 @@ msg = $"[guozi-CancelOrder] request={requests};response={response}"; if (response != "") { var dataResult = JsonConvert.DeserializeObject<CancelGZOrderResult>(response); - if (dataResult.code == 0) { - msg = "[guozi-CancelOrder]鍙栨秷璁㈠崟鎴愬姛"; - Console.WriteLine(msg); + // 鍘熶唬鐮佺増鏈�+ //if (dataResult.code == 0) { + // msg = "[guozi-CancelOrder]鍙栨秷璁㈠崟鎴愬姛"; + // Console.WriteLine(msg); + // result = true; + // return result; + //} + + // 灏婇噸鏂囨。鐨勭増鏈�+ if (dataResult.msg == "success") { // 鐩墠鍙彇娑堜竴涓换鍔★紝鎴愬姛鏃犻渶鍐嶆鏌uccess_list鍜宔rror_list + Console.WriteLine("[guozi-CancelOrder]鍙栨秷璁㈠崟鎴愬姛"); result = true; return result; } + } else { msg = "[guozi-CancelOrder]鍙栨秷璁㈠崟澶辫触"; @@ -100,7 +111,7 @@ return result; } - + // DOC 3. 璁㈠崟鐘舵�鎺ㄩ� RCS->WMS /// <summary> /// 璁㈠崟鐘舵�鍙嶉 /// </summary> @@ -193,6 +204,7 @@ return result; } + // DOC 6. 浜や簰琛ㄦ煡璇� /// <summary> /// 鑾峰彇浜や簰淇℃伅 /// </summary> @@ -228,6 +240,7 @@ return list; } + // DOC 澶囩敤 public static bool UpdateInteractInfo(UpdateInteractInfo interactInfo) { string msg = ""; var result = false; @@ -245,6 +258,7 @@ return result; } + // DOC 5. 绉伴噸淇℃伅鏌ヨ public static List<CustomData> CustomBuf() { var res = new List<CustomData>(); string msg = ""; diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index 96dd8df..5dab3ac 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -6,6 +6,7 @@ using System.Linq; using HH.WCS.Mobox3.AnGang.models; using System; +using HH.WCS.Mobox3.AnGang.util; namespace HH.WCS.Mobox3.AnGang.process { internal class TaskProcess { @@ -106,13 +107,19 @@ /// </summary> /// <param name="mst"></param> internal static bool SendTask(TN_Task mst) { - + var db = new SqlHelper<object>().GetInstance(); var result = false; var start = "0"; var end = "0"; var taskType = mst.S_TYPE.Trim(); if (mst.N_B_STATE == 0) { + // 鍘熶唬鐮佺増鏈�+ //var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2p"); + // 灏婇噸鏂囨。鐨勭増鏈紙鏆備笉鑰冭檻淇敼锛屽洜涓烘病鏈夌粓鐐圭珯鐐癸紝涓嶅悎鐞嗭級 + //var startSite = LocationHelper.GetAgvSite(mst.S_START_LOC); + //var endSite = LocationHelper.GetAgvSite(mst.S_END_LOC); - var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2p"); + var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2pdst", "pgapi"); + if (code > 0) { //鏇存柊浠诲姟鐘舵� mst.N_B_STATE = 1; -- Gitblit v1.9.1