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

生产排产计算后续产线开工时间添加所处时间段判断

heteng 2 éve
szülő
commit
78d96074c3

+ 15 - 0
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductionScheduleAppService.cs

@@ -4621,6 +4621,21 @@ namespace Business.ResourceExamineManagement
             List<LineWorkPointDto> workPoints = DealWorkDayToLevels(line.Line, startTime, shopCal, curQtyDtls);
             //计算starttime处于那个工作时间段
             var curPoint = workPoints.Where(p => startTime >= p.StartPoint && startTime <= p.EndPoint).FirstOrDefault();
+            //如果找不到对应时间段
+            if (curPoint == null)
+            {
+                //如果开始时间在开始上班之前
+                if (startTime < workPoints.First().StartPoint)
+                {
+                    curPoint = workPoints.First();
+                    startTime = curPoint.StartPoint;
+                }
+                else {
+                    //判断开始时间处于哪个空闲时间段
+                    curPoint = workPoints.Where(p => startTime > p.EndPoint).OrderBy(p => p.Level).Last();
+                    startTime = curPoint.EndPoint;
+                }
+            }
             //当前时间段可用时长
             TimeSpan span = curPoint.EndPoint - startTime;
             decimal curMins = (decimal)span.TotalMinutes;