1
xiazhengtongxue
2026-03-27 5d55a31d8ce95e511ffb408f38ed06e81742b67e
ÏîÄ¿´úÂë/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs
@@ -14,6 +14,7 @@
using WIDESEAWCS_DTO.Agv;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_TaskInfoService;
namespace WIDESEAWCS_Tasks
{
@@ -29,6 +30,7 @@
                #region å‡ºåº“任务下发
                if (newTasksOut.Count>0)
                {
                    WriteLog.Write_Log("AGV出库任务下发", "出库任务下发接口", "添加任务", $"任务:{newTasksOut.ToJson()}");
                    foreach (var GroupTask in newTasksOut.GroupBy(x=>x.NextAddress))
                    {
                        int taskCount = 6;
@@ -36,8 +38,18 @@
                        {
                            taskCount = 4;
                        }
                        var tasks = GroupTask.Take(taskCount).ToList();
                        TimeSpan span = DateTime.Now - tasks.FirstOrDefault().CreateDate;
                        //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) && (tasks.Count >= 4 || (int)span.TotalSeconds >= 20))
                        {
@@ -116,6 +128,7 @@
                #region å…¥åº“任务下发
                if (newTasksIn.Count > 0)
                {
                    WriteLog.Write_Log("AGV入库任务下发", "出库任务下发接口", "添加任务", $"任务:{newTasksIn.ToJson()}");
                    foreach (var task in newTasksIn)
                    {
                        try