| | |
| | | Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(Context); |
| | | Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context); |
| | | RequestFromTask requestFromTask = new RequestFromTask(); |
| | | var agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && !x.agv_fromaddress.Contains("W") && string.IsNullOrEmpty(x.agv_toaddress)).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).ToList(); |
| | | var agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() /*&& !x.agv_fromaddress.Contains("W")*/ && string.IsNullOrEmpty(x.agv_toaddress)).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).ToList(); |
| | | |
| | | var tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && string.IsNullOrEmpty(x.agv_fromaddress)).ToList();//æ¥æ¾ææè¡¥ç©ºæä»»å¡ |
| | | |
| | | foreach (var agv_task in agv_tasks) |
| | | { |
| | | try |
| | | { |
| | | EmptyTray.GetEmptyTrayStation(stationinfoRepository, agv_task); |
| | | #region æ¥æ¾æ»¡è¶³æ¡ä»¶ç补空æä»»å¡ |
| | | var task = tasks.Where(x => x.agv_Traytype == agv_task.agv_Traytype).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).FirstOrDefault(); |
| | | if (task != null) |
| | | { |
| | | agv_task.agv_taskstate = AGVTaskStateEnum.Create.ToString(); |
| | | agv_task.EndQuantity = task.EndQuantity; |
| | | agv_task.agv_toaddress = task.agv_toaddress; |
| | | agvtaskRepository.Update(agv_task, x => new { x.agv_taskstate, x.EndQuantity, x.agv_toaddress }, true); |
| | | agvtaskRepository.Delete(task, true); |
| | | tasks.Remove(task); |
| | | WriteDBLog.Success("æ´æ°èªå¨å空æéåä»»å¡", $"ä»»å¡ç¼å·ï¼{agv_task.agv_tasknum},å é¤è¡¥ç©ºæä»»å¡ï¼{task.agv_tasknum}", "WMS"); |
| | | continue; |
| | | } |
| | | #endregion |
| | | |
| | | #region å çåºæ»¡5个ï¼ä¸ä¸åæ£æµä¸æç空æèµ·ç¹ä»»å¡ |
| | | if (agv_task.agv_fromaddress.Contains("S")) |
| | | if (stationinfoRepository.Find(x => x.stationCode.Contains("DD") && x.quantity == 5).Any()) continue; |
| | | #endregion |
| | | |
| | | #region AGVä¸æä¸¤ä¸ªç©ºæï¼ä¸ä¸åå¤åå空æä»»å¡ |
| | | if (agv_task.agv_fromaddress.Contains("W")) |
| | | { |
| | | var count = agvtaskRepository.Find(x => x.agv_taskstate != AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && string.IsNullOrEmpty(x.agv_toaddress)).Count(); |
| | | if (count >= 2) continue; |
| | | } |
| | | #endregion |
| | | |
| | | requestFromTask.TASK_NO = agv_task.agv_tasknum; |
| | | requestFromTask.FROM_POSITION = agv_task.agv_fromaddress; |
| | | requestFromTask.Material = agv_task.agv_materielid; |