Forráskód Böngészése

简化条件检查并增加待执行任务数量限制

删除了多个 `if` 语句中的 `taskMax > 0` 和 `taskMaxNum > 0` 条件检查。
添加了一个新的变量 `waitingTask`,用于计算状态为 `WaitingToExecute` 的任务数量。
在多个 `case` 语句中,增加了对 `waitingTask` 的检查,如果 `waitingTask` 超过 `agvMaxSm`,则返回失败响应。
这些更改确保系统在任务数量达到上限时能够正确返回失败响应。
林豪 左 7 hónapja
szülő
commit
7ee90007ab
1 módosított fájl, 33 hozzáadás és 5 törlés
  1. 33 5
      wms.service/Service/FJService.cs

+ 33 - 5
wms.service/Service/FJService.cs

@@ -1037,7 +1037,7 @@ namespace wms.service.Service
                 var count_1N = invnowCount_1N - taskInfoCount_1N;
                 var count_2N = invnowCount_2N - taskInfoCount_2N;
                 var wCode = count_1N >= count_2N ? "1N" : "2N";
-                if (taskMax > 0 && taskCount > 0)
+                if ( taskCount > 0)
                     if ((wCode == "1N" && taskMax <= taskInfoCount_1N) ||
                         (wCode == "2N" && taskMax <= taskInfoCount_2N))
                     {
@@ -1856,7 +1856,7 @@ namespace wms.service.Service
                 .First(x => x.Code == "CRBackNum").SContent);
             var taskNum = _taskrepository.AsQueryable().With(SqlWith.NoLock)
                 .Count(x => x.BusType == FJTaskBusType.帘线退料重绕.GetDescription() && x.Status < TaskStatus.Finish);
-            if (taskMaxNum > 0 && taskMaxNum <= taskNum)
+            if ( taskMaxNum <= taskNum)
             {
                 res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
                 res.ResMsg = $"任务数量已达{taskNum},请稍后再操作!!!!!!";
@@ -2071,6 +2071,9 @@ namespace wms.service.Service
             var agvFkNumber = _agvTaskInfoRepository.AsQueryable().With(SqlWith.NoLock)
                 .Where(x => x.AgvStatus < AGVTaskStatus.MissionCompleted && x.TaskType == AGVTaskType.EnterDepot)
                 .SplitTable(x => x.Take(2)).Count();
+            var waitingTask = _taskrepository.AsQueryable().With(SqlWith.NoLock)
+                .Where(x => x.BusType == FJTaskBusType.车间叫料.GetDescription() && x.Status == TaskStatus.WaitingToExecute)
+                .Count();
 
             switch (reqDto.Type)
             {
@@ -2089,6 +2092,13 @@ namespace wms.service.Service
                         return res;
                     }
 
+                    if (agvMaxSm <= waitingTask)
+                    {
+                        res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
+                        res.ResMsg = $"禁止叫料,最大待执行叫料任务已达{waitingTask}";
+                        return res;
+                    }
+
                     break;
                 case "2":
                     if (agvMaxFk <= agvFkNumber)
@@ -2106,7 +2116,12 @@ namespace wms.service.Service
                         res.ResMsg = $"禁止叫料,最大送满任务已达{agvSmNumber}";
                         return res;
                     }
-
+                    if (agvMaxSm <= waitingTask)
+                    {
+                        res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
+                        res.ResMsg = $"禁止叫料,最大待执行叫料任务已达{waitingTask}";
+                        return res;
+                    }
                     break;
             }
 
@@ -2426,6 +2441,9 @@ namespace wms.service.Service
             var agvFkNumber = _agvTaskInfoRepository.AsQueryable().With(SqlWith.NoLock)
                 .Where(x => x.AgvStatus < AGVTaskStatus.MissionCompleted && x.TaskType == AGVTaskType.EnterDepot)
                 .SplitTable(x => x.Take(2)).Count();
+            var waitingTask = _taskrepository.AsQueryable().With(SqlWith.NoLock)
+                .Where(x => x.BusType == FJTaskBusType.车间叫料.GetDescription() && x.Status == TaskStatus.WaitingToExecute)
+                .Count();
 
             switch (reqDto.Type)
             {
@@ -2443,7 +2461,12 @@ namespace wms.service.Service
                         res.ResMsg = $"禁止叫料,最大返空任务已达{agvFkNumber}";
                         return res;
                     }
-
+                    if (agvMaxSm <= waitingTask)
+                    {
+                        res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
+                        res.ResMsg = $"禁止叫料,最大待执行叫料任务已达{waitingTask}";
+                        return res;
+                    }
                     break;
                 case "2":
                     if (agvMaxFk <= agvFkNumber)
@@ -2461,7 +2484,12 @@ namespace wms.service.Service
                         res.ResMsg = $"禁止叫料,最大送满任务已达{agvSmNumber}";
                         return res;
                     }
-
+                    if (agvMaxSm <= waitingTask)
+                    {
+                        res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
+                        res.ResMsg = $"禁止叫料,最大待执行叫料任务已达{waitingTask}";
+                        return res;
+                    }
                     break;
             }