heteng 2 жил өмнө
parent
commit
fd3af187cc

+ 28 - 5
MicroServices/Business/Business.Application/Quartz/ProductionScheduleAppService.cs

@@ -209,7 +209,7 @@ namespace Business.Quartz
                         RecID = help.NextId(),
                         Domain = "1001",
                         WorkOrd = item.WorkOrd,
-                        Remark = "工单关联工序数据维护错误",
+                        Remark = "工单工序数据维护错误",
                         CreatTime = DateTime.Now
                     });
                     continue;
@@ -223,14 +223,38 @@ namespace Business.Quartz
                         RecID = help.NextId(),
                         Domain = "1001",
                         WorkOrd = item.WorkOrd,
-                        Remark = "工单关联产线数据维护错误",
+                        Remark = "工单的产线数据维护错误",
+                        CreatTime = DateTime.Now
+                    });
+                    continue;
+                }
+                //校验每个层级是否维护了工作日历
+                bool flag = false;
+                foreach (var rut in routingDtos)
+                {
+                    var lineCals = calendars.Where(p => p.ProdLine == rut.Line).ToList();
+                    if (lineCals.Select(p=>p.WeekDay).Distinct().Count() !=7)
+                    {
+                        flag = true;
+                        break;
+                    }
+                }
+                if (flag)
+                {
+                    //记录排产异常原因
+                    scheduleExceptions.Add(new ScheduleExceptionMaster
+                    {
+                        RecID = help.NextId(),
+                        Domain = "1001",
+                        WorkOrd = item.WorkOrd,
+                        Remark = "工单产线的工作日历数据维护错误",
                         CreatTime = DateTime.Now
                     });
                     continue;
                 }
 
                 //产线排产
-                LineSchedule(item, routingDtos.OrderBy(p=>p.level).ToList(), periodSequenceDtls, scheduleMasters, scheduleExceptions);
+                LineSchedule(item, routingDtos.OrderBy(p => p.level).ToList(), periodSequenceDtls, scheduleMasters);
             }
         }
 
@@ -241,8 +265,7 @@ namespace Business.Quartz
         /// <param name="routingDtos">每层级工序对应的产线信息,从小到大排序</param>
         /// <param name="periodsDet">生产周期</param>
         /// <param name="scheduleResults">排产结果</param>
-        /// <param name="scheduleExceptions">排产异常记录</param>
-        public void LineSchedule(WorkOrdMaster workOrd,List<WorkOrdRoutingDto> routingDtos,List<PeriodSequenceDet> periodsDet, List<ScheduleResultOpMaster> scheduleResults, List<ScheduleExceptionMaster> scheduleExceptions)
+        public void LineSchedule(WorkOrdMaster workOrd,List<WorkOrdRoutingDto> routingDtos,List<PeriodSequenceDet> periodsDet, List<ScheduleResultOpMaster> scheduleResults)
         {
             //生产周期
             List<PeriodSequenceDet> curSequences = new List<PeriodSequenceDet>();