| | |
| | | executionPath1 += pathXYZQian + ";"; |
| | | } |
| | | executionPath2 += pathXYZQian + ";"; |
| | | //判断添加前置任务Id |
| | | if (!preId1.Contains(item + "")) |
| | | { |
| | | preId1 += item + ";"; |
| | | } |
| | | |
| | | } |
| | | |
| | | //判断添加前置任务Id |
| | | if (!preId1.Contains(item + "")) |
| | | { |
| | | preId1 += item + ";"; |
| | | } |
| | | |
| | | isOk = "2"; |
| | | } |
| | |
| | | PalletNo = "", |
| | | Status = TaskStatusEnum.Wait, |
| | | Levels = 999, |
| | | Origin = "WCS" |
| | | Origin = "WCS", |
| | | CarIp = item.CarPlcIp |
| | | }; |
| | | _db.Insertable(modTask).ExecuteCommand(); |
| | | HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); |
| | |
| | | #region 判断现有任务中最终节点是否在当前分配路径中,如有 添加移走小车任务并加入前置任务 4 |
| | | |
| | | //获取等待或正在执行的任务中包含当前节点的小车任务,不会有太多任务,同层有几个小车最多有几个任务 |
| | | var taskList4 = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.CarNo!=assignCar.CarPlcIp).ToList(); |
| | | var taskListTask4 = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.CarNo!=assignCar.CarPlcIp).GroupBy(m=>m.TaskNo).Select(m=>m.TaskNo).ToList(); |
| | | var taskList4 = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.CarNo != assignCar.CarPlcIp).ToList(); |
| | | var preId4 = "";//前置任务Id |
| | | var str4 = "";//所有已分配或执行的任务全路径之和 |
| | | |
| | |
| | | str4 += item.Path; |
| | | } |
| | | //判断现有任务中最终节点是否在当前分配路径中,如有 添加移走小车任务并加入前置任务 |
| | | foreach (var item in taskList4) |
| | | foreach (var item in taskListTask4) |
| | | { |
| | | var lastPathList = item.ExecutionPath.Split(';'); |
| | | var lastTask = taskList4.Where(m => m.TaskNo == item ).OrderBy(m=>m.CreateTime).LastOrDefault(); |
| | | if (lastTask == null) |
| | | { |
| | | continue; |
| | | } |
| | | var lastPathList = lastTask.ExecutionPath.Split(';'); |
| | | // a;b;c; 最后一个位是“”,所以lastPathList.Length - 2 |
| | | var lastPath = lastPathList[lastPathList.Length - 2]; |
| | | var lastPath2 = lastPath.Substring(0,6); |
| | |
| | | //如果此此分配路径包含醉舞中最终节点路径,添加移走小车 |
| | | if (path.Contains(lastPath2)) |
| | | { |
| | | |
| | | var endLocate = ""; |
| | | var executionPath4 = ""; |
| | | var path4 = ""; |
| | |
| | | //查找目标位置 |
| | | while (endLocate == "" || datas4.Count == 0 || datas4 == null) |
| | | { |
| | | endLocate = FourWayCarUtil.GetCarEndLocation(lastPath, str4); |
| | | endLocate = FourWayCarUtil.GetCarEndLocation(lastPath, str4+path); |
| | | var data4 = FourWayCarUtil.GetCarPath(lastPath, endLocate); |
| | | datas4 = FourWayCarUtil.GetCarPathUp(data4, 0); |
| | | } |
| | |
| | | PalletNo = "", |
| | | Status = TaskStatusEnum.Wait, |
| | | Levels = 999, |
| | | Origin = "WCS" |
| | | Origin = "WCS", |
| | | CarIp = lastTask.CarNo |
| | | }; |
| | | _db.Insertable(modTask).ExecuteCommand(); |
| | | HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); |
| | |
| | | PreId = "", |
| | | ExecutionPath = executionPath4, |
| | | Path = path4, |
| | | CarNo = item.CarNo, |
| | | CarNo = lastTask.CarNo, |
| | | Status = TaskStatusEnum.Wait |
| | | }; |
| | | var idLong = _db.Insertable(carTaskYC).ExecuteReturnSnowflakeId(); |
| | |
| | | var carTask2 = new WcsCarTasks() |
| | | { |
| | | TaskNo = waitTask.TaskNo, |
| | | PreId = preId1, |
| | | PreId = "", |
| | | ExecutionPath = executionPath2, |
| | | Path = path, |
| | | CarNo = assignCar.CarPlcIp, |
| | |
| | | }; |
| | | _db.Insertable(carTask2).ExecuteCommand(); |
| | | } |
| | | waitTask.CarIp = assignCar.CarPlcIp; |
| | | if (moveType == 1) |
| | | { |
| | | // 改变总任务表状态 |
| | | waitTask.Status = TaskStatusEnum.Doing; |
| | | waitTask.UpdateTime = DateTime.Now; |
| | | _db.Updateable(waitTask).ExecuteCommand(); |
| | | HubUtil.PublicTask(waitTask.Adapt<WcsTaskOutput>()); |
| | | waitTask.UpdateTime = DateTime.Now; |
| | | } |
| | | |
| | | _db.Updateable(waitTask).ExecuteCommand(); |
| | | HubUtil.PublicTask(waitTask.Adapt<WcsTaskOutput>()); |
| | | |
| | | return true; |
| | | #endregion |
| | | } |