| | |
| | | using HH.WCS.Hexafluo.process; |
| | | using HH.WCS.Hexafluo.util; |
| | | using HH.WCS.Hexafluo.wms; |
| | | using HH.WCS.SJML.Entitys; |
| | | using HH.WCS.SJML.util; |
| | | using HH.WCS.ZCQTJ.Entitys; |
| | | using Newtonsoft.Json; |
| | |
| | | //获取所有未执行的任务 |
| | | lock (locko9) |
| | | { |
| | | var Lo = SqlSugarHelper.Db.Queryable<TaskLockEntitys>().Where(a => a.DeviceName == "AGV")?.First(); |
| | | var chi = new SqlHelper<object>().GetInstance(); |
| | | var newDb = chi.CopyNew(); |
| | | var Lo = newDb.Queryable<TaskLockEntitys>().Where(a => a.DeviceName == "AGV")?.First(); |
| | | DateTime date = DateTime.Now; |
| | | if (Lo != null && Lo.IsEnable == "Y") |
| | | { |
| | | List<string> state = new List<string> { "未执行", "待推送" }; |
| | | var list = TaskHelper.GetTaskListByState(state); |
| | | |
| | | //查询是否有送满取空的 空入任务 有的话需要等待20分钟 |
| | | var transportTask = newDb.Queryable<ConfigJsonEntitys>().Where(e => e.Autoindex == "送满取空对应的空托点位")?.First(); |
| | | if (transportTask != null) |
| | | { |
| | | var ListString = JsonConvert.DeserializeObject<List<string>>(transportTask.TypeJson); |
| | | if (ListString.Count() > 0) |
| | | { |
| | | //剔除时间没到20分钟的空托入库--特制 |
| | | var TiemTask = list.FindAll(e => ListString.Contains(e.S_START_LOC) && e.S_TYPE == "入库").ToList(); |
| | | if (TiemTask.Count() > 0) |
| | | { |
| | | foreach (var item in TiemTask) |
| | | { |
| | | if (item.T_CREATE.AddMinutes(20) > date)//没超时20分钟 |
| | | { |
| | | //排除 |
| | | list.Remove(item); |
| | | LogHelper.Info("NDC", $"没超时20分钟 排除的任务有:{JsonConvert.SerializeObject(item)}"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | var RkTask = list.FindAll(e => e.S_TYPE == "入库").ToList(); |
| | | // var CkTask = list.FindAll(e => e.S_TYPE == "出库").ToList(); |
| | | if (RkTask.Count > 0) |
| | |
| | | TaskProcess.SendTask(item); |
| | | } |
| | | } |
| | | var CkTaskList = SqlSugarHelper.Db.Queryable<WMSTask>().Where(a => state.Contains(a.S_B_STATE.Trim()) |
| | | var CkTaskList = newDb.Queryable<WMSTask>().Where(a => state.Contains(a.S_B_STATE.Trim()) |
| | | && a.S_NOTE == "agv任务" && a.S_TYPE == "出库" && a.S_START_LAREA != "TMCKJBW").ToList(); |
| | | if (CkTaskList.Count > 0) |
| | | { |
| | |
| | | //else |
| | | //{ |
| | | List<string> States = new List<string>() { "已推送", "执行中", "开始取货" }; |
| | | var taskList = SqlSugarHelper.Db.Queryable<WMSTask>().Where(e => e.S_START_LOC == item.S_START_LOC |
| | | var taskList = newDb.Queryable<WMSTask>().Where(e => e.S_START_LOC == item.S_START_LOC |
| | | && States.Contains(e.S_B_STATE.Trim()) && e.S_NOTE == "agv任务").ToList(); |
| | | LogHelper.Info("NDC", $"出库正在判断是否可以下发的 agv任务 起点库区不是LC11M的agv任务(判断是否有相同起点的别的agv任务):{JsonConvert.SerializeObject(taskList)}"); |
| | | if (taskList.Count > 0) |
| | |
| | | // } |
| | | } |
| | | } |
| | | var CkTaskList1 = SqlSugarHelper.Db.Queryable<WMSTask>().Where(a => state.Contains(a.S_B_STATE.Trim()) |
| | | var CkTaskList1 = newDb.Queryable<WMSTask>().Where(a => state.Contains(a.S_B_STATE.Trim()) |
| | | && a.S_NOTE == "agv任务" && a.S_TYPE == "出库" && a.S_START_LAREA == "TMCKJBW").OrderBy(e => e.T_CREATE).ToList(); |
| | | |
| | | if (CkTaskList1.Count() > 0) |
| | |
| | | { |
| | | LogHelper.Info("NDC", $"出库正在判断是否可以下发的 agv任务号:{item.S_TASK_NO}"); |
| | | //查询主任务的起点库区 |
| | | var ZhuTask = SqlSugarHelper.Db.Queryable<WMSTask>().Where(e => e.S_SRC_NO == item.S_SRC_NO).ToList(); |
| | | var ZhuTask = newDb.Queryable<WMSTask>().Where(e => e.S_SRC_NO == item.S_SRC_NO).ToList(); |
| | | LogHelper.Info("NDC", $"出库正在判断是否可以下发的 agv任务 所对应的所有相关任务:{JsonConvert.SerializeObject(ZhuTask)}"); |
| | | var hh = ZhuTask.FindAll(e => e.S_START_LAREA == "LC11M").ToList(); |
| | | if (hh.Any()) |