|
|
@@ -3830,6 +3830,9 @@ namespace Business.ResourceExamineManagement
|
|
|
var mLCalendars = calendars.Where(p => p.ProdLine == item.ProdLine || string.IsNullOrEmpty(p.ProdLine)).ToList();
|
|
|
//当前产线的休息时间设置
|
|
|
var mlqtyWorkDtls = qualityLines.Where(p => p.ProdLine == item.ProdLine).ToList();
|
|
|
+ //计算产线实际开始时间
|
|
|
+ workStartTime = CalcActStartTime(item.ProdLine, workStartTime, mLCalendars, mlqtyWorkDtls);
|
|
|
+
|
|
|
LineStartDto lineStart = new LineStartDto();
|
|
|
lineStart.RecID = 0;
|
|
|
lineStart.Line = item.ProdLine;
|
|
|
@@ -4015,12 +4018,16 @@ namespace Business.ResourceExamineManagement
|
|
|
//当天排产结束时间
|
|
|
scheduledDto.EndTime = workPoints.Last().EndPoint;
|
|
|
//计算starttime处于那个工作时间段
|
|
|
- var curPoint = workPoints.Where(p => startTime >= p.StartPoint && startTime <= p.EndPoint).First();
|
|
|
+ var curPoint = workPoints.Where(p => startTime >= p.StartPoint && startTime <= p.EndPoint).FirstOrDefault();
|
|
|
//开始时间不在工作时间段
|
|
|
if (curPoint == null)
|
|
|
{
|
|
|
//获取离开始时间最近的时间段
|
|
|
- curPoint = workPoints.Where(p => p.EndPoint < startTime).OrderBy(p => p.Level).Last();
|
|
|
+ curPoint = workPoints.Where(p => p.EndPoint < startTime).OrderBy(p => p.Level).LastOrDefault();
|
|
|
+ if (curPoint == null)
|
|
|
+ {
|
|
|
+ curPoint = workPoints.Where(p => startTime < p.StartPoint).OrderBy(p => p.Level).FirstOrDefault();
|
|
|
+ }
|
|
|
startTime = curPoint.EndPoint;
|
|
|
}
|
|
|
TimeSpan span = curPoint.EndPoint - startTime;
|