| | |
| | | using System.Threading.Tasks; |
| | | using static HH.WCS.Mobox3.pinggao.models.SapRoot.WcReturnRoot; |
| | | using static HH.WCS.Mobox3.pinggao.api.OtherModel; |
| | | using NLog.Fluent; |
| | | |
| | | namespace HH.WCS.Mobox3.pinggao.process |
| | | { |
| | |
| | | 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); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | 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) |
| | | { |
| | | //大铁框叉走以后通知,我们要通知输送线 |
| | | } |
| | |
| | | |
| | | 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//不超重 即 不超过800kg |
| | | { |
| | | //高度<450mm 2-9层 |
| | | if (decimal.Parse(Ext1) < 2) |
| | | |
| | | } |
| | | else//不超重 即 不超过800kg |
| | | { |
| | | //高度<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 |
| | | { //容器为料箱 则放到3-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 |
| | | { //容器为料箱 则放到3-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); |
| | |
| | | //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; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | 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();//查询是否有前移车正在执行的任务 |
| | | if (task.Count() == 0) |
| | |
| | | start = startlocs; |
| | | end = endlocs; |
| | | } |
| | | } |
| | | else //小于 |
| | | { |
| | | LogHelper.Info($"小于7"); |
| | | var task = WCSHelper.GetWaitingTaskGoBackList();//查询是否有堆垛车正在执行的任务、 |
| | | LogHelper.Info($"count{task.Count()}"); |
| | | if (task.Count() == 0) |
| | | { //堆垛车 去 站点表去查 |
| | | mst.N_ERR = 2; |
| | | start = dstart; |
| | | end = dend; |
| | | } |
| | | else |
| | | { |
| | | var task1 = WCSHelper.GetWaitingTaskGoList();///查询是否有前移车正在执行的任务 |
| | | LogHelper.Info($"查询是否有前移车正在执行的任务count{task1.Count()}"); |
| | | if (task1.Count() == 0) |
| | | var task12 = WCSHelper.GetWaitingTaskGoBackList();//查询是否有堆垛车正在执行的任务、 |
| | | LogHelper.Info($"count{task12.Count()}"); |
| | | if (task12.Count() == 0) |
| | | { //堆垛车 去 站点表去查 |
| | | mst.N_ERR = 2; |
| | | start = dstart; |
| | | end = dend; |
| | | } |
| | | else |
| | | { |
| | | var task1 = WCSHelper.GetWaitingTaskGoList();///查询是否有前移车正在执行的任务 |
| | | LogHelper.Info($"查询是否有前移车正在执行的任务count{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();//查询是否有前移车正在执行的任务 |
| | | if (task.Count() == 0) |
| | | { |
| | | mst.N_ERR = 1; |
| | | start = startlocs; |
| | | end = endlocs; |
| | | } |
| | | } |
| | | else //小于 |
| | | { |
| | | LogHelper.Info($"小于7"); |
| | | var task = WCSHelper.GetWaitingTaskGoBackList();//查询是否有堆垛车正在执行的任务、 |
| | | LogHelper.Info($"count{task.Count()}"); |
| | | if (task.Count() == 0) |
| | | { //堆垛车 去 站点表去查 |
| | | mst.N_ERR = 2; |
| | | start = dstart; |
| | | end = dend; |
| | | } |
| | | else |
| | | { |
| | | var task1 = WCSHelper.GetWaitingTaskGoList();///查询是否有前移车正在执行的任务 |
| | | LogHelper.Info($"查询是否有前移车正在执行的任务count{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)) |