|
|
@@ -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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|