| | |
| | | using WIDESEAWCS_DTO.Agv; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_TaskInfoService; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | |
| | | #region åºåºä»»å¡ä¸å |
| | | if (newTasksOut.Count>0) |
| | | { |
| | | WriteLog.Write_Log("AGVåºåºä»»å¡ä¸å", "åºåºä»»å¡ä¸åæ¥å£", "æ·»å ä»»å¡", $"ä»»å¡ï¼{newTasksOut.ToJson()}"); |
| | | foreach (var GroupTask in newTasksOut.GroupBy(x=>x.NextAddress)) |
| | | { |
| | | var tasks = GroupTask.OrderBy(x => x.TaskNum).ToList(); |
| | | TimeSpan span = DateTime.Now - tasks.FirstOrDefault().CreateDate; |
| | | int taskCount = 6; |
| | | if (GroupTask.ObjToInt() > 201) |
| | | { |
| | | taskCount = 4; |
| | | } |
| | | //var tasks = GroupTask.Take(taskCount).ToList(); |
| | | // éæºå³å®ä½¿ç¨ååºè¿æ¯éåº |
| | | Random random = new Random(); |
| | | bool useAscending = random.Next(0, 2) == 0; // 50%æ¦çååºï¼50%æ¦çéåº |
| | | var tasks = useAscending |
| | | ? GroupTask.OrderBy(x => x.CurrentAddress).Take(taskCount).ToList() // ååº |
| | | : GroupTask.OrderByDescending(x => x.CurrentAddress).Take(taskCount).ToList(); // éåº |
| | | WriteLog.Write_Log("AGVåºåºä»»å¡ä¸å", "æåºä¸åæ¥å£", "æ·»å ä»»å¡", $"ä»»å¡ï¼{tasks.ToJson()}"); |
| | | |
| | | var earliestCreateTime = tasks.Min(x => x.CreateDate); |
| | | TimeSpan span = DateTime.Now - earliestCreateTime; |
| | | //TimeSpan span = DateTime.Now - tasks.FirstOrDefault().CreateDate; |
| | | int taskDownCount = taskDownOut.Where(x => x.NextAddress == GroupTask.Key).Count(); |
| | | if (taskDownCount < (GroupTask.ObjToInt() > 201 ? 4 : 6) && (int)span.TotalSeconds > 20) |
| | | if (taskDownCount < (GroupTask.ObjToInt() > 201 ? 4 : 6) && (tasks.Count >= 4 || (int)span.TotalSeconds >= 20)) |
| | | { |
| | | try |
| | | { |
| | |
| | | MissionData = new List<MissionDataItem>() |
| | | }; |
| | | string taskGroupId = Guid.NewGuid().ToString().Replace("-", ""); |
| | | |
| | | foreach (var task in tasks) |
| | | { |
| | | //è·åç®æ ç¹è´§ä½ |
| | |
| | | #region å
¥åºä»»å¡ä¸å |
| | | if (newTasksIn.Count > 0) |
| | | { |
| | | WriteLog.Write_Log("AGVå
¥åºä»»å¡ä¸å", "åºåºä»»å¡ä¸åæ¥å£", "æ·»å ä»»å¡", $"ä»»å¡ï¼{newTasksIn.ToJson()}"); |
| | | foreach (var task in newTasksIn) |
| | | { |
| | | try |