Преглед изворни кода

排产获取产线准备开始时间添加为null判断

heteng пре 2 година
родитељ
комит
3b1975474b

+ 22 - 17
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductionScheduleAppService.cs

@@ -4079,17 +4079,20 @@ namespace Business.ResourceExamineManagement
             //如果产线有准备时间记录且准备开始时间在当前时间之前,说明已在排产中,此时不需要重新获取产线
             if (curRecord != null && curRecord.StartTime < actStart)
             {
-                var curLine = lines.First(p=>p.Line == curRecord.Line);
-                //计算产线实际开始时间
-                //产线工作日历:当前产线的工作日历 + 默认工作日历
-                var curCalendars = calendars.Where(p => p.ProdLine == curLine.Line || string.IsNullOrEmpty(p.ProdLine)).ToList();
-                var curQtyDtls = qualityLines.Where(p => p.ProdLine == curLine.Line).ToList();
-                actStart = CalcActStartTime(curLine.Line, actStart, curCalendars, curQtyDtls);
-                lineStart.RecID = curLine.RecID;
-                lineStart.Line = curLine.Line;
-                lineStart.StartTime = actStart;
-                lineStart.setupTime = curLine.SetupTime;
-                lineStart.Rate = curLine.Rate;
+                var curLine = lines.FirstOrDefault(p=>p.Line == curRecord.Line);
+                if (curLine != null)
+                {
+                    //计算产线实际开始时间
+                    //产线工作日历:当前产线的工作日历 + 默认工作日历
+                    var curCalendars = calendars.Where(p => p.ProdLine == curLine.Line || string.IsNullOrEmpty(p.ProdLine)).ToList();
+                    var curQtyDtls = qualityLines.Where(p => p.ProdLine == curLine.Line).ToList();
+                    actStart = CalcActStartTime(curLine.Line, actStart, curCalendars, curQtyDtls);
+                    lineStart.RecID = curLine.RecID;
+                    lineStart.Line = curLine.Line;
+                    lineStart.StartTime = actStart;
+                    lineStart.setupTime = curLine.SetupTime;
+                    lineStart.Rate = curLine.Rate;
+                }
             }
             else {
                 //获取第一条产线排产结束时间
@@ -4480,12 +4483,14 @@ namespace Business.ResourceExamineManagement
             //如果产线有准备时间记录且准备开始时间在当前时间之前,说明已在排产中,此时不需要重新获取产线
             if (curRecord != null && curRecord.StartTime < scheTime)
             {
-                var curLine = lines.First(p => p.Line == curRecord.Line);
-                startDto.RecID = curLine.RecID;
-                startDto.Line = curLine.Line;
-                startDto.StartTime = scheTime;
-                startDto.setupTime = curLine.SetupTime;
-                startDto.Rate = curLine.Rate;
+                var curLine = lines.FirstOrDefault(p => p.Line == curRecord.Line);
+                if (curLine != null) {
+                    startDto.RecID = curLine.RecID;
+                    startDto.Line = curLine.Line;
+                    startDto.StartTime = scheTime;
+                    startDto.setupTime = curLine.SetupTime;
+                    startDto.Rate = curLine.Rate;
+                }
             }
             else {
                 //获取第一条产线排产结束时间