From 8b05ae0960f7f6de3fbc99e4af9ba03ff75ec6e1 Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期一, 26 五月 2025 08:49:29 +0800 Subject: [PATCH] 与现场实施测试出入库流程 入库任务下发参数修改测试 称重高度会议讨论重新计算货位 变更终点下发联调 --- wms/LocationHelper.cs | 3 api/WmsSpaHelper.cs | 2 api/AgvController.cs | 18 +- wms/WMSHelper.cs | 10 + models/WCSTask.cs | 2 api/ApiHelper.cs | 44 ++-- api/ApiModel.cs | 1 process/TaskProcess.cs | 456 ++++++++++++++++++++++++++++--------------------- core/WCSCore.cs | 3 9 files changed, 308 insertions(+), 231 deletions(-) diff --git a/api/AgvController.cs b/api/AgvController.cs index 7a53466..a200e98 100644 --- a/api/AgvController.cs +++ b/api/AgvController.cs @@ -74,15 +74,15 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - [HttpPost] - [Route("PlcCallbackState")] - public PlcSendTaskres PlcCallbackState(PlcState model) - { - LogHelper.Info("PlcCallbackState Request锛� + JsonConvert.SerializeObject(model), "HosttoagvTask"); - var result = ApiHelper.PlcCallbackState(model); - LogHelper.Info("PlcCallbackState Return锛� + JsonConvert.SerializeObject(result), "HosttoagvTask"); - return result; - } + //[HttpPost] + //[Route("PlcCallbackState")] + //public PlcSendTaskres PlcCallbackState(PlcState model) + //{ + // LogHelper.Info("PlcCallbackState Request锛� + JsonConvert.SerializeObject(model), "HosttoagvTask"); + // //var result = ApiHelper.PlcCallbackState(model); + // LogHelper.Info("PlcCallbackState Return锛� + JsonConvert.SerializeObject(result), "HosttoagvTask"); + // return result; + //} diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index e6c6f6e..076688b 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -58,7 +58,7 @@ } - + internal static WeiLiResult AddTask(AddTaskModel model) { @@ -162,14 +162,14 @@ internal static TaskStateresutl GetTaskState(GetTaskStateModel model) { var db = new SqlHelper<object>().GetInstance(); - TaskStateresutl result = new TaskStateresutl { success = false, code = 0}; + TaskStateresutl result = new TaskStateresutl { success = false, code = 0 }; if (!string.IsNullOrEmpty(model.taskNo)) { var info = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.taskNo).First(); - if (info!=null) + if (info != null) { var TaskStates = db.Queryable<TaskAction>().Where(a => a.S_TASK_CODE == info.S_CODE).ToList(); - TaskStates=TaskStates.OrderBy(a => a.T_CREATE).ToList(); + TaskStates = TaskStates.OrderBy(a => a.T_CREATE).ToList(); for (int i = 0; i < TaskStates.Count; i++) { TaskState task = new TaskState @@ -179,13 +179,13 @@ taskNo = model.taskNo, transferTime = TaskStates[i].T_CREATE.ToString() }; - if (!string.IsNullOrEmpty(TaskStates[i].S_EQ_CODE)) + if (!string.IsNullOrEmpty(TaskStates[i].S_EQ_CODE)) { task.agvNo = int.Parse(TaskStates[i].S_EQ_CODE); } result.data.Add(task); } - result.success = true ; + result.success = true; } else { @@ -201,11 +201,11 @@ return result; } - - - - + + + + internal static PlcSendTaskres PlcCallbackState(PlcState model) { var db = new SqlHelper<object>().GetInstance(); @@ -444,11 +444,11 @@ } - - - + + + internal static WeiLiResult CancelOrder(CancelOrderModel model) { WeiLiResult result = new WeiLiResult(); @@ -503,7 +503,7 @@ return result; } - + internal static WeiLiResult ChangeOrderPrioryty(ChangeOrderPriorytyModel model) { @@ -546,17 +546,17 @@ return result; } - - - - - - - + + + + + + + internal static SimpleResult PalletSorting(PalletSorting model) { @@ -598,7 +598,7 @@ return result; } - + public class ReceivingNoteSerialNo diff --git a/api/ApiModel.cs b/api/ApiModel.cs index dc31677..828d8cf 100644 --- a/api/ApiModel.cs +++ b/api/ApiModel.cs @@ -28,6 +28,7 @@ { public int State { get; set; } public string No { get; set; } + public string ForkliftNo { get; set; } public string ErrCode { get; set; } public string LockNo { get; set; } diff --git a/api/WmsSpaHelper.cs b/api/WmsSpaHelper.cs index fbd8f0f..b054b44 100644 --- a/api/WmsSpaHelper.cs +++ b/api/WmsSpaHelper.cs @@ -1941,7 +1941,7 @@ }; if (WMSHelper.CreateWmsTask(wmsTask)) { - LocationHelper.LockLoc(start.S_CODE, 1); + LocationHelper.LockLoc(start.S_CODE, 2); result.resultMsg = $"鍒涘缓浣滀笟鎴愬姛锛屼綔涓氬彿{wmsTask.S_CODE}"; } diff --git a/core/WCSCore.cs b/core/WCSCore.cs index 97b99fb..4bcd182 100644 --- a/core/WCSCore.cs +++ b/core/WCSCore.cs @@ -69,6 +69,7 @@ case 7: TaskProcess.OperateStatus(TN_Task, 7); WCSHelper.Fail(TN_Task); + WMSHelper.Fail(TN_Task); //sendsencondtask(TN_Task); //WMSHelper.End(TN_Task); break; @@ -83,7 +84,7 @@ } else { //瀹夊叏璇锋眰绛�- TaskProcess.OperateReq( TN_Task, model.State, model.ForkliftNo, model.ExtData, model.Ext1); + TaskProcess.OperateReq( TN_Task, model.State, model.ForkliftNo, model.ExtData); } } } diff --git a/models/WCSTask.cs b/models/WCSTask.cs index 29e3739..838efc1 100644 --- a/models/WCSTask.cs +++ b/models/WCSTask.cs @@ -41,7 +41,9 @@ public string S_CODE { get; set; } //1鍓嶇Щ杞�2 鍫嗗灈杞� public int N_ERR { get; set; } + //楂樺害 public string S_EQ_TASK_CODE { get; set; } + //閲嶉噺 public string S_STATE_PRE { get; set; } public int N_REVIEW_RESULT { get; set; } diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index 2df9515..7a7e1ba 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -80,211 +80,273 @@ /// <param name="forkliftNo">杞﹀彿</param> /// <param name="extData">閲嶉噺</param> /// <param name="Ext1">楂樺害</param> - internal static void OperateReq(WCSTask TN_Task, int state, string forkliftNo, string extData,string Ext1) + internal static void OperateReq(WCSTask TN_Task, int state, string forkliftNo, string extData) { if (state == 1002)//淇″彿 { - LogHelper.Info($"绉伴噸鍒嗛厤鍏ュ簱缁堢偣璐т綅楂樺害閲嶉噺{extData}锛岄珮搴Ext1}"); - var db = new SqlHelper<object>().GetInstance(); - var WMStask= db.Queryable<WMSTask>().Where(s=>s.S_CODE==TN_Task.S_OP_CODE).First(); - if (WMStask==null) - { - LogHelper.Info($"鏈壘鍒版浠诲姟瀵瑰簲鐨勪綔涓�); - } - try - { - Location result = null; - //var TN_Task = WCSHelper.GetTask(no); - //鍒ゆ柇褰撳墠瀹瑰櫒涓烘墭鐩樿繕鏄枡妗�- //鎵樼洏鍙兘鏀惧湪1-2灞�鏂欑3-9灞� - //鑾峰彇闆嗗悎 - var locklist = db.Queryable<Location>(); - - - if (TN_Task.S_CNTR_CODE.Substring(0, 2) == "TP")//鎵樼洏 - { - var endlist = locklist - .Where(it => it.N_CURRENT_NUM < it.N_CAPACITY && it.N_LAYER < 3 && it.S_AREA_CODE == "HJQ") - .OrderBy(it => it.N_COL) - .PartitionBy(it => it.N_ROW) - .PartitionBy(it => it.N_LAYER) - .Take(1) - .ToList(); - foreach (var item in endlist) - { - LogHelper.Info($"閲嶉噺{decimal.Parse(extData)}"); - //澶т簬800kg - if (decimal.Parse(extData) > 800) - { - LogHelper.Info($"楂樺害{decimal.Parse(Ext1)}"); - //楂樺害澶т簬1050mm 鍙斁鍦ㄧ涓�眰 - if (decimal.Parse(Ext1) <= 1050) - { - var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW - && it.N_LAYER == 1).First(); - if (lockinfo == null) - { - result = item; - break; - } - else { - LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - } - } - else - { - LogHelper.Info($"楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - throw new Exception($"楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - - } - - } - else//涓嶈秴閲�鍗�涓嶈秴杩�00kg - { - //楂樺害<450mm 2-9灞�- if (decimal.Parse(Ext1) < 450) - { - var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW - && it.N_LAYER == 2).First(); - if (lockinfo == null) - { - result = item; - - break; - } - else { - LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - } - } - else if (decimal.Parse(Ext1) >= 450 && decimal.Parse(Ext1) < 1050) - { - var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW - && it.N_LAYER >= 1 && it.N_LAYER <= 2).First(); - if (lockinfo == null) - { - result = item; - - - db.Updateable<WMSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); - - break; - } - else - { - LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - } - } - else - { - LogHelper.Info($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - throw new Exception($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - - } - } - } - } - else - { //瀹瑰櫒涓烘枡绠�鍒欐斁鍒�-9灞�- - var endlist = locklist - .Where(it => it.N_CURRENT_NUM < it.N_CAPACITY && it.N_LAYER >=3&&it.S_AREA_CODE== "HJQ") - .OrderBy(it => it.N_COL) - .PartitionBy(it => it.N_ROW) - .PartitionBy(it => it.N_LAYER) - .Take(1) - .ToList(); - foreach (var item in endlist) - { - LogHelper.Info($"閲嶉噺{decimal.Parse(extData)}"); - //澶т簬800kg - if (decimal.Parse(extData) > 800) - { - LogHelper.Info($"鏂欑閲嶉噺瓒呰繃800kg"); - throw new Exception($"鏂欑閲嶉噺瓒呰繃800kg"); - } - else - { - if (decimal.Parse(Ext1) < 1050) - { - var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_LOCK_STATE != 0 && it.S_AREA_CODE == item.S_AREA_CODE && it.N_ROW == item.N_ROW - && it.N_LAYER >= 3 && it.N_LAYER <= 9).First(); - if (lockinfo == null) - { - result = item; - TN_Task.S_END_LOC = item.S_CODE; - db.Updateable<WMSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC }).ExecuteCommand(); - - break; - } - else { - LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - } - } - else - { - LogHelper.Info($"鏂欑楂樺害 {decimal.Parse(Ext1)} 杩囬珮 鑱旂郴浜哄伐澶勭悊"); - throw new Exception($"鏂欑楂樺害 {decimal.Parse(Ext1)} 杩囬珮 鑱旂郴浜哄伐澶勭悊"); - } - } - } - } - - - if (result==null) - { - LogHelper.Info($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); - throw new Exception($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); - } - TN_Task.S_END_LOC = result.S_CODE; - TN_Task.S_END_AREA = result.S_AREA_CODE; - TN_Task.S_END_WH = result.S_WH_CODE; - - db.Updateable<WCSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); - WMStask.S_END_LOC = result.S_CODE; - WMStask.S_END_AREA = result.S_AREA_CODE; - WMStask.S_END_WH = result.S_WH_CODE; - - db.Updateable<WMSTask>(WMStask).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); - - //璇锋眰鍗歌揣锛�- var dic = new Dictionary<string, string>(); - dic.Add("No", TN_Task.S_CODE); - dic.Add("ParamNo", "2"); - dic.Add("Param1", TN_Task.S_END_LOC); - - - var res = NDC.ChangeOrder(dic); - LogHelper.Info($"淇敼缁堢偣璐т綅"+ JsonConvert.SerializeObject(res)); - if (res.Res.ErrCode != -1) - { - var dics = new Dictionary<string, string>(); - dics.Add("No", TN_Task.S_CODE); - dics.Add("ParamNo", "6"); - dics.Add("Param1", "2"); - var ss= NDC.ChangeOrder(dics); - LogHelper.Info($"灏忚溅鍓嶅線鏂板簱浣� + JsonConvert.SerializeObject(ss)); - LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList()); - } - db.CommitTran(); - } - catch (Exception) - { - db.RollbackTran(); - throw; - } - - } - if (state == 1103) + else if (state == 2000)//淇″彿 + { + var db = new SqlHelper<object>().GetInstance(); + TN_Task.S_EQ_TASK_CODE = extData;//楂樺害 + db.Updateable<WCSTask>(TN_Task).UpdateColumns(a => new { a.S_EQ_TASK_CODE }).ExecuteCommand(); + db.CommitTran(); + if (!string.IsNullOrEmpty(TN_Task.S_STATE_PRE) && !string.IsNullOrEmpty(TN_Task.S_EQ_TASK_CODE)) + { + weight(TN_Task); + } + + + + } + else if (state == 2001)//淇″彿 + { + var db = new SqlHelper<object>().GetInstance(); + TN_Task.S_STATE_PRE = extData;//楂樺害 + db.Updateable<WCSTask>(TN_Task).UpdateColumns(a => new { a.S_STATE_PRE }).ExecuteCommand(); + db.CommitTran(); + if (!string.IsNullOrEmpty(TN_Task.S_STATE_PRE) && !string.IsNullOrEmpty(TN_Task.S_EQ_TASK_CODE)) + { + weight(TN_Task); + } + + } + + if (state == 1103) { //澶ч搧妗嗗弶璧颁互鍚庨�鐭ワ紝鎴戜滑瑕侀�鐭ヨ緭閫佺嚎 } } + + + + internal static void weight(WCSTask TN_Task) + { + + + if (!string.IsNullOrEmpty(TN_Task.S_STATE_PRE) && !string.IsNullOrEmpty(TN_Task.S_EQ_TASK_CODE)) + { + string extData = TN_Task.S_STATE_PRE; + string Ext1 = TN_Task.S_EQ_TASK_CODE; + LogHelper.Info($"绉伴噸鍒嗛厤鍏ュ簱缁堢偣璐т綅楂樺害閲嶉噺{extData}锛岄珮搴Ext1},瀹瑰櫒{TN_Task.S_CNTR_CODE}"); + var db = new SqlHelper<object>().GetInstance(); + var WMStask = db.Queryable<WMSTask>().Where(s => s.S_CODE == TN_Task.S_OP_CODE).First(); + if (WMStask == null) + { + LogHelper.Info($"鏈壘鍒版浠诲姟瀵瑰簲鐨勪綔涓�); + } + try + { + Location result = null; + //var TN_Task = WCSHelper.GetTask(no); + //鍒ゆ柇褰撳墠瀹瑰櫒涓烘墭鐩樿繕鏄枡妗�+ //鎵樼洏鍙兘鏀惧湪1-2灞�鏂欑3-9灞�+ + //鑾峰彇闆嗗悎 + var locklist = db.Queryable<Location>(); + + + if (TN_Task.S_CNTR_CODE.Substring(0, 2) == "TP")//鎵樼洏 + { + var endlist = locklist + .Where(it => it.N_CURRENT_NUM < it.N_CAPACITY && it.N_LAYER < 3 && it.N_LOCK_STATE ==0 && it.S_AREA_CODE == "HJQ") + .OrderBy(it => it.N_COL) + .PartitionBy(it => it.N_ROW) + .PartitionBy(it => it.N_LAYER) + .Take(1) + .ToList(); + foreach (var item in endlist) + { + LogHelper.Info($"閲嶉噺{decimal.Parse(extData)}"); + //澶т簬800kg + if (decimal.Parse(extData) > 1) + { + LogHelper.Info($"楂樺害{Ext1}"); + //楂樺害澶т簬1050mm 鍙斁鍦ㄧ涓�眰 + if (decimal.Parse(Ext1) <=3) + { + var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW + && it.N_LAYER == 1).First(); + if (lockinfo == null) + { + result = item; + break; + } + else + { + LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + //throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + } + } + else + { + LogHelper.Info($"楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); + throw new Exception($"楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); + + } + + } + else//涓嶈秴閲�鍗�涓嶈秴杩�00kg + { + //楂樺害<450mm 2-9灞�+ if (decimal.Parse(Ext1) < 2) + { + LogHelper.Info($"楂樺害<450mm 2-9灞�); + var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW + && it.N_LAYER == 2).First(); + if (lockinfo == null) + { + result = item; + + break; + } + else + { + LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + //throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + } + } + else if (decimal.Parse(Ext1) >= 2 && decimal.Parse(Ext1) < 4) + { + var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_ROW == item.N_ROW + && it.N_LAYER >= 1 && it.N_LAYER <= 2).First(); + if (lockinfo == null) + { + result = item; + + + db.Updateable<WMSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); + + break; + } + else + { + LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + //throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + } + } + else + { + LogHelper.Info($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); + throw new Exception($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); + + } + } + } + } + else + { //瀹瑰櫒涓烘枡绠�鍒欐斁鍒�-9灞�+ + var endlist = locklist + .Where(it => it.N_CURRENT_NUM < it.N_CAPACITY && it.N_LAYER >= 3 && it.N_LOCK_STATE == 0 && it.S_AREA_CODE == "HJQ") + .OrderBy(it => it.N_COL) + .PartitionBy(it => it.N_ROW) + .PartitionBy(it => it.N_LAYER) + .Take(1) + .ToList(); + foreach (var item in endlist) + { + LogHelper.Info($"閲嶉噺{decimal.Parse(extData)}"); + //澶т簬800kg + if (decimal.Parse(extData) > 1) + { + LogHelper.Info($"鏂欑閲嶉噺瓒呰繃800kg"); + throw new Exception($"鏂欑閲嶉噺瓒呰繃800kg"); + } + else + { + if (decimal.Parse(Ext1) < 4) + { + var lockinfo = locklist.Where(it => it.N_LOCK_STATE != 0 && it.N_LOCK_STATE != 0 && it.S_AREA_CODE == item.S_AREA_CODE && it.N_ROW == item.N_ROW + && it.N_LAYER >= 3 && it.N_LAYER <= 9).First(); + if (lockinfo == null) + { + result = item; + TN_Task.S_END_LOC = item.S_CODE; + db.Updateable<WMSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC }).ExecuteCommand(); + + break; + } + else + { + LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + } + } + else + { + LogHelper.Info($"鏂欑楂樺害 {decimal.Parse(Ext1)} 杩囬珮 鑱旂郴浜哄伐澶勭悊"); + throw new Exception($"鏂欑楂樺害 {decimal.Parse(Ext1)} 杩囬珮 鑱旂郴浜哄伐澶勭悊"); + } + } + } + } + + + if (result == null) + { + LogHelper.Info($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); + throw new Exception($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); + } + TN_Task.S_END_LOC = result.S_CODE; + TN_Task.S_END_AREA = result.S_AREA_CODE; + TN_Task.S_END_WH = result.S_WH_CODE; + + db.Updateable<WCSTask>(TN_Task).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); + WMStask.S_END_LOC = result.S_CODE; + WMStask.S_END_AREA = result.S_AREA_CODE; + WMStask.S_END_WH = result.S_WH_CODE; + + db.Updateable<WMSTask>(WMStask).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); + var S_AGV_SITE = ""; + if (TN_Task.N_ERR==1)//鍓嶇Щ杞�+ { + //鍓嶇Щ杞�+ S_AGV_SITE = LocationHelper.GetAgvSite(TN_Task.S_END_LOC); + } + else //鍫嗗灈杞�+ { + + //鍫嗗灈杞�+ S_AGV_SITE = db.Queryable<TN_Location_Ext>().Where(a => a.S_LOC_CODE == TN_Task.S_END_LOC).First()?.S_AGV_SITE; + } + var dic = new Dictionary<string, string>(); + dic.Add("No", TN_Task.S_CODE); + dic.Add("ParamNo", "3"); + dic.Add("Param1", S_AGV_SITE); + //dic.Add("Pri", TN_Task.N_PRIORITY.ToString()); + //dic.Add("No", TN_Task.S_CODE.Trim()); + //dic.Add("From", TN_Task.S_START_LOC); + //dic.Add("To", TN_Task.S_END_LOC); + //dic.Add("Func", "0"); + //dic.Add("Data", "512"); + //dic.Add("FRow", "0"); + + var res = NDC.ChangeOrder(dic); + LogHelper.Info($"淇敼缁堢偣璐т綅" + JsonConvert.SerializeObject(res)); + if (res.Res.ErrCode != -1) + { + var dics = new Dictionary<string, string>(); + dics.Add("No", TN_Task.S_CODE); + dics.Add("ParamNo", "6"); + dics.Add("Param1", "2"); + var ss = NDC.ChangeOrder(dics); + LogHelper.Info($"灏忚溅鍓嶅線鏂板簱浣� + JsonConvert.SerializeObject(ss)); + LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList()); + LocationHelper.LockLoc(TN_Task.S_END_LOC,1); + } + db.CommitTran(); + } + catch (Exception) + { + db.RollbackTran(); + throw; + } + } + + } + internal static void UpdateAgvNo(WCSTask mst, string forkliftNo) { @@ -555,7 +617,7 @@ dic1.Add("Func", "0"); if (mst.S_TYPE.Contains("鍏ュ簱")) { - dic1.Add("Data", "0x200"); + dic1.Add("Data", "512"); } else { diff --git a/wms/LocationHelper.cs b/wms/LocationHelper.cs index 2310a2a..bbe4a15 100644 --- a/wms/LocationHelper.cs +++ b/wms/LocationHelper.cs @@ -285,7 +285,8 @@ var res = false; var db = new SqlHelper<object>().GetInstance(); var model = db.Queryable<Location>().Where(a => a.S_CODE == loc).First(); - if (model != null && model.S_LOCK_STATE.Trim() == "鏃�) + // if (model != null && model.S_LOCK_STATE.Trim() == "鏃�) + if (model != null && model.N_LOCK_STATE==0) { model.N_LOCK_STATE = lockState; model.S_LOCK_STATE = Location.GetLockStateStr(lockState); diff --git a/wms/WMSHelper.cs b/wms/WMSHelper.cs index 8702291..ff45bca 100644 --- a/wms/WMSHelper.cs +++ b/wms/WMSHelper.cs @@ -918,7 +918,17 @@ WMSHelper.UpdateTaskState(wmsTask); WCSHelper.UpdateStorStatus(task.S_CNTR_CODE, 4); } + internal static void Fail(WCSTask task) + { + var db = new SqlHelper<object>().GetInstance(); + var wmsTask = db.Queryable<WMSTask>().Where(a => a.S_CODE == task.S_OP_CODE).First(); + //淇敼浣滀笟鐘舵� 閲嶆柊鍚姩 + wmsTask.N_B_STATE = 5; + wmsTask.S_B_STATE = "鍙栨秷"; + WMSHelper.UpdateTaskState(wmsTask); + //WCSHelper.UpdateStorStatus(task.S_CNTR_CODE, 4); + } internal static void EndTn(string S_CNTR_CODE) { var db = new SqlHelper<object>().GetInstance(); -- Gitblit v1.9.1