From 23e4f986644298cb23ac43173414b7e1404b6657 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期六, 15 六月 2024 17:26:23 +0800 Subject: [PATCH] 任务逻辑优化 --- 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs | 33 ++++++++++++++++++++++++++++++++- 1 files changed, 32 insertions(+), 1 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs" index 4d96421..3dde5ce 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs" @@ -27,12 +27,43 @@ 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; -- Gitblit v1.9.3