|
|
@@ -522,6 +522,55 @@ namespace Business.ResourceExamineManagement
|
|
|
List<string> sczWorkords = workOrds.Where(p => p.Status.ToUpper() == "W").Select(p=>p.WorkOrd).ToList();
|
|
|
if (sczWorkords.Any())
|
|
|
{
|
|
|
+ //获取计划日期在当前日期之后且已投产的日计划,将其计划开工日期改为当天
|
|
|
+ List<PeriodSequenceDet> wlSequenceDets = _periodSequenceDet.Select(p => p.Domain == domain && sczWorkords.Contains(p.WorkOrds) && p.Status.ToUpper() == "W" && p.PlanDate > scheTime.Date).ToList();
|
|
|
+ List<ScheduleResultOpMaster> wlSchedules = new List<ScheduleResultOpMaster>();
|
|
|
+ if (wlSequenceDets.Any())
|
|
|
+ {
|
|
|
+ var wlWorkords = wlSequenceDets.Select(p => p.WorkOrds).ToList();
|
|
|
+ var wlDate = wlSequenceDets.Select(p => p.PlanDate).ToList();
|
|
|
+ var wlOps = wlSequenceDets.Select(p => p.Op).ToList();
|
|
|
+
|
|
|
+ //更新计划日期为当前日期
|
|
|
+ foreach (var wlItem in wlSequenceDets)
|
|
|
+ {
|
|
|
+ var curSche = _scheduleResultOpMaster.Select(p => p.Domain == domain && p.WorkOrd == wlItem.WorkOrds && p.WorkDate == wlItem.PlanDate && p.Op == wlItem.Op).FirstOrDefault();
|
|
|
+ if (curSche != null)
|
|
|
+ {
|
|
|
+ wlSchedules.Add(curSche);
|
|
|
+ }
|
|
|
+ //更新日期
|
|
|
+ wlItem.PlanDate = scheTime.Date;
|
|
|
+ //更新数量
|
|
|
+ var info = periodSequenceDtls.FirstOrDefault(p=>p.WorkOrds == wlItem.WorkOrds && p.PlanDate == scheTime.Date && p.Op == wlItem.Op);
|
|
|
+ if (info != null)
|
|
|
+ {
|
|
|
+ wlItem.OrdQty = info.OrdQty;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ string strScheTime = scheTime.Date.ToString("yyyy-MM-dd");
|
|
|
+ foreach (var wlItem in wlSchedules)
|
|
|
+ {
|
|
|
+ wlItem.WorkDate = scheTime.Date;
|
|
|
+ wlItem.WorkStartTime = Convert.ToDateTime(wlItem.WorkStartTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(wlItem.WorkStartTime.ToString("yyyy-MM-dd"), strScheTime));
|
|
|
+ wlItem.WorkEndTime = Convert.ToDateTime(wlItem.WorkEndTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(wlItem.WorkEndTime.ToString("yyyy-MM-dd"), strScheTime));
|
|
|
+ //更新数量
|
|
|
+ var info = scheduleMasters.FirstOrDefault(p => p.WorkOrd == wlItem.WorkOrd && p.WorkDate == scheTime.Date && p.Op == wlItem.Op);
|
|
|
+ if (info != null)
|
|
|
+ {
|
|
|
+ wlItem.WorkQty = info.WorkQty;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //更新过期日计划的计划开工日期
|
|
|
+ if (wlSequenceDets.Any())
|
|
|
+ {
|
|
|
+ _periodSequenceDet.Update(wlSequenceDets);
|
|
|
+ }
|
|
|
+ if (wlSchedules.Any())
|
|
|
+ {
|
|
|
+ _scheduleResultOpMaster.Update(wlSchedules);
|
|
|
+ }
|
|
|
+ }
|
|
|
//删除当前日期下一天开始的工单排产记录
|
|
|
_periodSequenceDet.Delete(p => sczWorkords.Contains(p.WorkOrds) && p.PlanDate > scheTime.Date && p.Domain == domain && p.OrdQty != 0);
|
|
|
_scheduleResultOpMaster.Delete(p => sczWorkords.Contains(p.WorkOrd) && p.WorkDate > scheTime.Date && p.Domain == domain);
|