From fb5c3be6709ba89053dc75c9fabfb94cb89c6be1 Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期三, 18 六月 2025 16:14:18 +0800 Subject: [PATCH] 修改重点逻辑修改 定时充电优化 --- process/TaskProcess.cs | 523 +++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 337 insertions(+), 186 deletions(-) diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index 7a7e1ba..bf342fc 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -14,6 +14,8 @@ using System.Threading.Tasks; using static HH.WCS.Mobox3.pinggao.models.SapRoot.WcReturnRoot; using static HH.WCS.Mobox3.pinggao.api.OtherModel; +using NLog.Fluent; +using System.Xml.Linq; namespace HH.WCS.Mobox3.pinggao.process { @@ -94,7 +96,10 @@ db.CommitTran(); if (!string.IsNullOrEmpty(TN_Task.S_STATE_PRE) && !string.IsNullOrEmpty(TN_Task.S_EQ_TASK_CODE)) { - weight(TN_Task); + if (TN_Task.S_START_LOC == TN_Task.S_END_LOC) + { + weight(TN_Task); + } } @@ -108,12 +113,15 @@ db.CommitTran(); if (!string.IsNullOrEmpty(TN_Task.S_STATE_PRE) && !string.IsNullOrEmpty(TN_Task.S_EQ_TASK_CODE)) { - weight(TN_Task); + if (TN_Task.S_START_LOC == TN_Task.S_END_LOC) + { + weight(TN_Task); + } } } - - if (state == 1103) + + if (state == 1103) { //澶ч搧妗嗗弶璧颁互鍚庨�鐭ワ紝鎴戜滑瑕侀�鐭ヨ緭閫佺嚎 } @@ -123,198 +131,211 @@ internal static void weight(WCSTask TN_Task) { - - - if (!string.IsNullOrEmpty(TN_Task.S_STATE_PRE) && !string.IsNullOrEmpty(TN_Task.S_EQ_TASK_CODE)) - { + + + 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($"绉伴噸鍒嗛厤鍏ュ簱缁堢偣璐т綅楂樺害閲嶉噺{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")//鎵樼洏 { - 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(); + if (TN_Task.N_ERR == 2)//鍓嶇Щ杞� { - 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) + + endlist = endlist.Where(s => s.N_LAYER < 7).ToList(); + } + foreach (var item in endlist) + { + LogHelper.Info($"閲嶉噺{decimal.Parse(extData)}"); + //澶т簬800kg + if (decimal.Parse(extData) > 1) { - LogHelper.Info($"閲嶉噺{decimal.Parse(extData)}"); - //澶т簬800kg - if (decimal.Parse(extData) > 1) + LogHelper.Info($"楂樺害{Ext1}"); + //楂樺害澶т簬1050mm 鍙斁鍦ㄧ涓�眰 + if (decimal.Parse(Ext1) <= 3) { - 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) { - 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} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - } + result = item; + break; } else { - LogHelper.Info($"楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - throw new Exception($"楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - + 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) + + } + 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) + if (lockinfo == null) { - 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; + 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} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); - } + break; } else { - LogHelper.Info($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - throw new Exception($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - + LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); + //throw new Exception($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撴帓灞備笉鍙娇鐢�); } } - } - } - 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) + else if (decimal.Parse(Ext1) >= 2 && decimal.Parse(Ext1) < 4) { - LogHelper.Info($"鏂欑閲嶉噺瓒呰繃800kg"); - throw new Exception($"鏂欑閲嶉噺瓒呰繃800kg"); + 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 { - 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(); + LogHelper.Info($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); + throw new Exception($"鎵樼洏楂樺害{decimal.Parse(Ext1)}杩囬珮 鑱旂郴浜哄伐澶勭悊"); - 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灞� - - if (result == null) + 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(); + if (TN_Task.N_ERR == 2)//鍓嶇Щ杞� { - LogHelper.Info($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); - throw new Exception($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); + endlist = endlist.Where(s => s.N_LAYER < 7).ToList(); } - 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; + 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(); - 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; + 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)} 杩囬珮 鑱旂郴浜哄伐澶勭悊"); + } + } + } + } - db.Updateable<WMSTask>(WMStask).UpdateColumns(a => new { a.S_END_LOC, a.S_END_AREA, a.S_END_WH }).ExecuteCommand(); + + if (result == null) + { + LogHelper.Info($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); + throw new Exception($"灏忚溅鍥炶皟鏈壘鍒板彲鐢ㄥ簱浣�); + } + + //var lcrList = db.Queryable<LocCntrRel>().Includes(a => a.Container).Where(a => a.S_LOC_CODE == TN_Task.S_CNTR_CODE).ToList(); + //if (lcrList.Count == 0) { + 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)//鍓嶇Щ杞�+ if (TN_Task.N_ERR == 1)//鍓嶇Щ杞� { //鍓嶇Щ杞�- S_AGV_SITE = LocationHelper.GetAgvSite(TN_Task.S_END_LOC); + 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; + 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); + var dic = new Dictionary<string, string>(); + dic.Add("No", TN_Task.S_CODE); + dic.Add("ParamNo", "2"); + 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); @@ -324,26 +345,32 @@ //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) + LogHelper.Info($"淇敼缁堢偣璐т綅" + JsonConvert.SerializeObject(res)); + if (res.Res.ErrCode != -1) { - db.RollbackTran(); - throw; + 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)); + + + //if (lcrList.Count()==0) + //{ + 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; + } + } } @@ -541,6 +568,93 @@ } + public static DateTime? ParseCustomFormatDate(string dateStr) + { + // 鍋囪鏃ユ湡鏍煎紡鏄�yy:mm + if (DateTime.TryParseExact(dateStr, "HH:mm", null, System.Globalization.DateTimeStyles.None, out DateTime result)) + { + return result; + } + return null; + } + public static bool SendCd() + { + var db = new SqlHelper<object>().GetInstance(); + var dstart = db.Queryable<TN_CD>().Where(s => s.N_STATE == 0).First(); + + var result = false; + if (dstart != null) + { + DateTime currentDate = DateTime.Now; + // 鏍煎紡鍖栬緭鍑烘椂鍒嗛儴鍒�+ string currentHourMinute = currentDate.ToString("HH:mm"); + + if (dstart.S_TIME == currentHourMinute) + { + var dic = new Dictionary<string, string>(); + var dic1 = new Dictionary<string, string>(); + var no = WMSHelper.GenerateTaskNo(); + dic.Add("No", no); + dic.Add("Pri", "0"); + dic1.Add("ExtDeviceNo", "1"); + + //鍒ゆ柇 + var res = NDC.OrderAdd(99, dic, dic1); + if (res != null && (res.Res.ErrCode == 0 || res.Res.ErrCode == 50009)) + { + // dstart.N_STATE = 1; + // db.Updateable<TN_CD>(dstart).UpdateColumns(a => new { a.N_STATE }).ExecuteCommand(); + + // result = true; + } + + + var dic12 = new Dictionary<string, string>(); + var dic11 = new Dictionary<string, string>(); + var no1 = WMSHelper.GenerateTaskNo(); + dic12.Add("No", no1); + dic12.Add("Pri", "0"); + dic11.Add("ExtDeviceNo", "2"); + + //鍒ゆ柇 + var res1 = NDC.OrderAdd(99, dic12, dic11); + if (res1 != null && (res1.Res.ErrCode == 0 || res1.Res.ErrCode == 50009)) + { + dstart.N_STATE = 1; + db.Updateable<TN_CD>(dstart).UpdateColumns(a => new { a.N_STATE }).ExecuteCommand(); + + result = true; + } + } + + } + + return result; + } + + public static bool SendCZ() + { + var db = new SqlHelper<object>().GetInstance(); + var dstart = db.Queryable<TN_CD>().Where(s => s.N_STATE == 1).First(); + + var result = false; + if (dstart != null) + { + DateTime currentDate = DateTime.Now; + // 鏍煎紡鍖栬緭鍑烘椂鍒嗛儴鍒�+ string currentHourMinute = currentDate.ToString("HH:mm"); + if (currentHourMinute == "00:00") + { + + dstart.N_STATE = 0; + db.Updateable<TN_CD>(dstart).UpdateColumns(a => new { a.N_STATE }).ExecuteCommand(); + } + result = true; + + } + + return result; + } /// <summary> /// 鎺ㄩ�浠诲姟 /// </summary> @@ -552,7 +666,7 @@ var taskType = mst.S_TYPE.Trim(); try { - LogHelper.Info($"鎺ㄩ�浠诲姟{ mst.S_CODE}"); + LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}"); Console.WriteLine("鎺ㄩ�浠诲姟", mst.S_CODE); //鍓嶇Щ杞� var startlocs = LocationHelper.GetAgvSite(mst.S_START_LOC); @@ -561,18 +675,18 @@ var db = new SqlHelper<object>().GetInstance(); var dstart = db.Queryable<TN_Location_Ext>().Where(a => a.S_LOC_CODE == mst.S_START_LOC).First()?.S_AGV_SITE; var dend = db.Queryable<TN_Location_Ext>().Where(a => a.S_LOC_CODE == mst.S_END_LOC).First()?.S_AGV_SITE; - LogHelper.Info($"鑾峰彇搴撲綅{mst.S_START_LOC}{ mst.S_END_LOC}||{mst.N_B_STATE}"); + LogHelper.Info($"鑾峰彇搴撲綅{mst.S_START_LOC}{mst.S_END_LOC}||{mst.N_B_STATE}"); LogHelper.Info($"绔欑偣鏁版嵁淇℃伅{dstart}/{dend}||{startlocs}/{endlocs}"); if (mst.N_B_STATE == 0) { //鍫嗗灈杞﹀幓绔欑偣琛ㄦ壘 if (mst.S_SCHEDULE_TYPE == "NDC") { - + var startloc = LocationHelper.GetLoc(mst.S_START_LOC); var endloc = LocationHelper.GetLoc(mst.S_END_LOC); LogHelper.Info($"鑾峰彇绔欑偣{startloc.N_LAYER}"); - if (startloc.N_LAYER > 7 || endloc.N_LAYER > 7)//澶т簬涓冨眰 鎵炬湁鏃�鍓嶇Щ杞︾殑浠诲姟 鏈�涓嶆帹 鏃犳帹閫�+ if (mst.S_TYPE.Contains("鍏ュ簱")) { var task = WCSHelper.GetWaitingTaskGoList();//鏌ヨ鏄惁鏈夊墠绉昏溅姝e湪鎵ц鐨勪换鍔� if (task.Count() == 0) @@ -581,29 +695,66 @@ start = startlocs; end = endlocs; } - } - else //灏忎簬 - { - LogHelper.Info($"灏忎簬7"); - var task = WCSHelper.GetWaitingTaskGoBackList();//鏌ヨ鏄惁鏈夊爢鍨涜溅姝e湪鎵ц鐨勪换鍔°� - LogHelper.Info($"count{task.Count()}"); - if (task.Count() == 0) - { //鍫嗗灈杞�鍘�绔欑偣琛ㄥ幓鏌�- mst.N_ERR = 2; - start = dstart; - end = dend; - } else { - var task1 = WCSHelper.GetWaitingTaskGoList();///鏌ヨ鏄惁鏈夊墠绉昏溅姝e湪鎵ц鐨勪换鍔�- LogHelper.Info($"鏌ヨ鏄惁鏈夊墠绉昏溅姝e湪鎵ц鐨勪换鍔ount{task1.Count()}"); - if (task1.Count() == 0) + var task12 = WCSHelper.GetWaitingTaskGoBackList();//鏌ヨ鏄惁鏈夊爢鍨涜溅姝e湪鎵ц鐨勪换鍔°� + LogHelper.Info($"count{task12.Count()}"); + if (task12.Count() == 0) + { //鍫嗗灈杞�鍘�绔欑偣琛ㄥ幓鏌�+ mst.N_ERR = 2; + start = dstart; + end = dend; + } + else + { + var task1 = WCSHelper.GetWaitingTaskGoList();///鏌ヨ鏄惁鏈夊墠绉昏溅姝e湪鎵ц鐨勪换鍔�+ LogHelper.Info($"鏌ヨ鏄惁鏈夊墠绉昏溅姝e湪鎵ц鐨勪换鍔ount{task1.Count()}"); + if (task1.Count() == 0) + { + mst.N_ERR = 1; + start = startlocs; + end = endlocs; + } + } + } + + } + else + { + if (startloc.N_LAYER > 7 || endloc.N_LAYER > 7)//澶т簬涓冨眰 鎵炬湁鏃�鍓嶇Щ杞︾殑浠诲姟 鏈�涓嶆帹 鏃犳帹閫�+ { + var task = WCSHelper.GetWaitingTaskGoList();//鏌ヨ鏄惁鏈夊墠绉昏溅姝e湪鎵ц鐨勪换鍔�+ if (task.Count() == 0) { mst.N_ERR = 1; start = startlocs; end = endlocs; } } + else //灏忎簬 + { + LogHelper.Info($"灏忎簬7"); + var task = WCSHelper.GetWaitingTaskGoBackList();//鏌ヨ鏄惁鏈夊爢鍨涜溅姝e湪鎵ц鐨勪换鍔°� + LogHelper.Info($"count{task.Count()}"); + if (task.Count() == 0) + { //鍫嗗灈杞�鍘�绔欑偣琛ㄥ幓鏌�+ mst.N_ERR = 2; + start = dstart; + end = dend; + } + else + { + var task1 = WCSHelper.GetWaitingTaskGoList();///鏌ヨ鏄惁鏈夊墠绉昏溅姝e湪鎵ц鐨勪换鍔�+ LogHelper.Info($"鏌ヨ鏄惁鏈夊墠绉昏溅姝e湪鎵ц鐨勪换鍔ount{task1.Count()}"); + if (task1.Count() == 0) + { + mst.N_ERR = 1; + start = startlocs; + end = endlocs; + } + } + } + } LogHelper.Info($"绔欑偣{start}/{end}"); if (!string.IsNullOrEmpty(start) && !string.IsNullOrEmpty(end)) -- Gitblit v1.9.1