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

生成日计划调整:过期日计划拉到当天实现逻辑调整顺序

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

+ 30 - 28
MicroServices/Business/Business.Application/ResourceExamineManagement/ProductionScheduleAppService.cs

@@ -497,34 +497,6 @@ namespace Business.ResourceExamineManagement
                 }
             }
 
-            //获取计划日期在当前日期之前且报工数量为0的日计划
-            List<PeriodSequenceDet> oldSequenceDets = _periodSequenceDet.Select(p =>p.Domain ==domain && p.PlanDate < scheTime.Date && p.CompQty == 0).ToList();
-            List<ScheduleResultOpMaster> oldSchedules = new List<ScheduleResultOpMaster>();
-            if (oldSequenceDets.Any())
-            {
-                var oldWorkords = oldSequenceDets.Select(p => p.WorkOrds).ToList();
-                var oldDate = oldSequenceDets.Select(p => p.PlanDate).ToList();
-                var oldOps = oldSequenceDets.Select(p => p.Op).ToList();
-                
-                //更新计划日期为当前日期
-                foreach (var oldItem in oldSequenceDets)
-                {
-                    var curSche = _scheduleResultOpMaster.Select(p => p.Domain == domain && p.WorkOrd == oldItem.WorkOrds && p.WorkDate== oldItem.PlanDate && p.Op == oldItem.Op).FirstOrDefault();
-                    if (curSche != null)
-                    {
-                        oldSchedules.Add(curSche);
-                    }
-                    oldItem.PlanDate = scheTime.Date;
-                }
-                string strScheTime = scheTime.Date.ToString("yyyy-MM-dd");
-                foreach (var oldItem in oldSchedules)
-                {
-                    oldItem.WorkDate = scheTime.Date;
-                    oldItem.WorkStartTime = Convert.ToDateTime(oldItem.WorkStartTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(oldItem.WorkStartTime.ToString("yyyy-MM-dd"), strScheTime));
-                    oldItem.WorkEndTime = Convert.ToDateTime(oldItem.WorkEndTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(oldItem.WorkEndTime.ToString("yyyy-MM-dd"), strScheTime));
-                }
-            }
-            
             using (TransactionScope scope = new TransactionScope())
             {
                 try
@@ -567,9 +539,39 @@ namespace Business.ResourceExamineManagement
                         _scheduleResultOpMaster.Delete(p => wscWorkords.Contains(p.WorkOrd) && p.WorkDate >= scheTime.Date && p.Domain == domain);
 
                         //保存当前日期及以后的日计划数据
+                        var ins1 = periodSequenceDtls.Where(p => wscWorkords.Contains(p.WorkOrds) && p.PlanDate >= scheTime.Date).ToList();
                         _periodSequenceDet.Insert(periodSequenceDtls.Where(p => wscWorkords.Contains(p.WorkOrds) && p.PlanDate >= scheTime.Date).ToList());
+                        var ins2 = scheduleMasters.Where(p => wscWorkords.Contains(p.WorkOrd) && p.WorkDate >= scheTime.Date).ToList();
                         _scheduleResultOpMaster.Insert(scheduleMasters.Where(p => wscWorkords.Contains(p.WorkOrd) && p.WorkDate >= scheTime.Date).ToList());
                     }
+
+                    //获取计划日期在当前日期之前且报工数量为0的日计划
+                    List<PeriodSequenceDet> oldSequenceDets = _periodSequenceDet.Select(p => p.Domain == domain && p.PlanDate < scheTime.Date && p.CompQty == 0).ToList();
+                    List<ScheduleResultOpMaster> oldSchedules = new List<ScheduleResultOpMaster>();
+                    if (oldSequenceDets.Any())
+                    {
+                        var oldWorkords = oldSequenceDets.Select(p => p.WorkOrds).ToList();
+                        var oldDate = oldSequenceDets.Select(p => p.PlanDate).ToList();
+                        var oldOps = oldSequenceDets.Select(p => p.Op).ToList();
+
+                        //更新计划日期为当前日期
+                        foreach (var oldItem in oldSequenceDets)
+                        {
+                            var curSche = _scheduleResultOpMaster.Select(p => p.Domain == domain && p.WorkOrd == oldItem.WorkOrds && p.WorkDate == oldItem.PlanDate && p.Op == oldItem.Op).FirstOrDefault();
+                            if (curSche != null)
+                            {
+                                oldSchedules.Add(curSche);
+                            }
+                            oldItem.PlanDate = scheTime.Date;
+                        }
+                        string strScheTime = scheTime.Date.ToString("yyyy-MM-dd");
+                        foreach (var oldItem in oldSchedules)
+                        {
+                            oldItem.WorkDate = scheTime.Date;
+                            oldItem.WorkStartTime = Convert.ToDateTime(oldItem.WorkStartTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(oldItem.WorkStartTime.ToString("yyyy-MM-dd"), strScheTime));
+                            oldItem.WorkEndTime = Convert.ToDateTime(oldItem.WorkEndTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(oldItem.WorkEndTime.ToString("yyyy-MM-dd"), strScheTime));
+                        }
+                    }
                     //更新过期日计划的计划开工日期
                     if (oldSequenceDets.Any())
                     {