Browse Source

调整领料单时间。

tangdi 2 years ago
parent
commit
889f893c45

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

@@ -136,6 +136,11 @@ namespace Business.ResourceExamineManagement
         /// </summary>
         private List<ResourceOccupancyTime> resourceOccupancyTimes;
 
+        /// <summary>
+        /// 领料单
+        /// </summary>
+        private ISqlRepository<NbrMaster> _nbrMaster;
+
         /// <summary>
         /// 工厂id
         /// </summary>
@@ -162,13 +167,15 @@ namespace Business.ResourceExamineManagement
             ISqlRepository<HolidayMaster> holidayMaster,
             ISqlRepository<GeneralizedCodeMaster> generalizedCodeMaster,
             ICurrentTenant currentTenant,
-            ISqlRepository<ScheduleExceptionMaster> scheduleExceptionMaster
+            ISqlRepository<ScheduleExceptionMaster> scheduleExceptionMaster,
+            ISqlRepository<NbrMaster> nbrMaster
             )
         {
             _itemMaster = itemMaster;
             _workOrdMaster = workOrdMaster;
             _workOrdDetail = workOrdDetail;
             _workOrdRouting = workOrdRouting;
+            _nbrMaster = nbrMaster;
             _prodLineDetail = prodLineDetail;
             _prodLineDetailRunCrew = prodLineDetailRunCrew;
             _resourceOccupancyTime = resourceOccupancyTime;
@@ -4170,5 +4177,56 @@ namespace Business.ResourceExamineManagement
             }
             return workPoints.OrderBy(p => p.Level).ToList();
         }
+
+        /// <summary>
+        /// 调整领料单时间
+        /// </summary>
+        /// <param name="workords"></param>
+        public void AdjustNbrDate(List<WorkOrdMaster> workords)
+        {
+            if (workords.Any())
+            {
+                //找出当前工单的所有领料单,更新领料单的前处理时间和完成日期。
+                //1.如果未生成领料单,则无需调整。
+                //2.已生成领料单,但是领料单已出库,也不调整。nbr.Status='C'
+                //3.当领料单未出库,则代表需要调整这个领料单的处理时间。
+                var nbrlist = _nbrMaster.Select(s => workords.Select(x => x.WorkOrd).Contains(s.WorkOrd) && s.Domain == workords[0].Domain).ToList();
+                if (nbrlist.Any())
+                {
+                    foreach (var work in workords)
+                    {
+                        var workNbr = nbrlist.Where(s => s.WorkOrd == work.WorkOrd).ToList();
+                        foreach (var nbr in workNbr)
+                        {
+                            if (string.IsNullOrEmpty(nbr.Status))
+                            {
+                                if (nbr.TransType == "PrevProcess")
+                                {
+                                    //前处理领料单
+                                    var ts = nbr.EffDate.GetValueOrDefault() - nbr.Date.GetValueOrDefault();
+                                    nbr.EffDate = work.OrdDate.GetValueOrDefault().AddDays(-1);
+                                    nbr.Date = nbr.EffDate.GetValueOrDefault().AddDays(-ts.Days);
+                                }
+                                else
+                                {
+                                    nbr.EffDate = work.OrdDate.GetValueOrDefault().AddDays(-1);
+                                    nbr.Date = nbr.EffDate;
+                                }
+                                if (nbr.Date.GetValueOrDefault().Date <= DateTime.Now.Date)
+                                {
+                                    nbr.Date = DateTime.Now.AddDays(1).Date;
+                                }
+                                if (nbr.EffDate.GetValueOrDefault().Date <= DateTime.Now.Date)
+                                {
+                                    nbr.EffDate = DateTime.Now.AddDays(1).Date;
+                                }
+                            }
+                        }
+                    }
+                    _nbrMaster.Update(nbrlist);
+                }
+            }
+        }
+    
     }
 }

+ 1 - 1
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -3486,7 +3486,7 @@ namespace Business.ResourceExamineManagement
         {
             var Nbr = GetMaxSerialNumber(417416915624005);
             DateTime eff = workord.OrdDate.GetValueOrDefault().Date.AddDays(-1);
-            DateTime start = eff.AddDays((double)(0 - cleanTime - 1));
+            DateTime start = eff.AddDays((double)(0 - cleanTime));
             if (start <= DateTime.Now.Date)
             {
                 start = DateTime.Now.Date;

+ 1 - 1
MicroServices/Business/Business.Domain/StructuredDB/MES/IC/NbrMaster.cs

@@ -52,7 +52,7 @@ namespace Business.Domain
         public DateTime? Date { get; set; }
 
         /// <summary>
-        /// 状态:C为不可用状态
+        /// 状态:C为已下架、出库
         /// </summary>
         [Comment("状态")]
         public string Status { get; set; }