Просмотр исходного кода

排产前特殊工单添加工作日历校验

heteng 2 лет назад
Родитель
Сommit
7cd13b53b7

+ 31 - 1
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductionScheduleAppService.cs

@@ -361,7 +361,7 @@ namespace Business.ResourceExamineManagement
             {
                 if (!string.IsNullOrEmpty(item.Typed))//特殊工单
                 {
-                    //只需要校验有没有维护工艺路线即可
+                    //校验有没有维护工艺路线即可
                     var routings = workOrdRoutings.Where(p=>p.ItemNum == item.ItemNum).ToList();
                     if (!routings.Any())
                     {
@@ -374,6 +374,36 @@ namespace Business.ResourceExamineManagement
                         entity.Type = type == 1 ? "自动排产" : "手动排产";
                         exceptions.Add(entity);
                     }
+
+                    //获取当前产线维护的工作日历
+                    var lineCals = calendars.Where(p => p.ProdLine == item.ProdLine).ToList();
+                    //获取默认工作日历
+                    var mrCals = calendars.Where(p => string.IsNullOrEmpty(p.ProdLine)).ToList();
+                    if (!lineCals.Any())//当前产线未维护工作日历
+                    {
+                        if (!mrCals.Any() || mrCals.Select(p => p.WeekDay).Distinct().Count() != 7)
+                        {
+                            entity = new ScheduleExceptionMaster();
+                            entity.Domain = item.Domain;
+                            entity.WorkOrd = item.WorkOrd;
+                            entity.ItemNum = item.ItemNum;
+                            entity.CreateTime = DateTime.Now;
+                            entity.Remark = "排产异常:产线[" + item.ProdLine + "]没有维护工作日历且标准工作日历未维护完全,请维护后再操作!";
+                            entity.Type = type == 1 ? "自动排产" : "手动排产";
+                            exceptions.Add(entity);
+                        }
+                    }
+                    else if (lineCals.Select(p => p.WeekDay).Distinct().Count() != 7)//当前产线维护了工作日历,但是没有维护完全
+                    {
+                        entity = new ScheduleExceptionMaster();
+                        entity.Domain = item.Domain;
+                        entity.WorkOrd = item.WorkOrd;
+                        entity.ItemNum = item.ItemNum;
+                        entity.CreateTime = DateTime.Now;
+                        entity.Remark = "排产异常:产线[" + item.ProdLine + "]工作日历没有维护完整,请维护后再操作!";
+                        entity.Type = type == 1 ? "自动排产" : "手动排产";
+                        exceptions.Add(entity);
+                    }
                     continue;
                 }
                 var curRoutings = workOrdRoutings.Where(p => p.ItemNum == item.ItemNum && p.MilestoneOp).OrderBy(p=>p.OP).Select(p=>p.OP).ToList();