|
|
@@ -525,50 +525,59 @@ namespace Business.ResourceExamineManagement
|
|
|
//获取计划日期在当前日期之后且已投产的日计划,将其计划开工日期改为当天
|
|
|
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>();
|
|
|
+ //获取当天的日计划
|
|
|
+ List<PeriodSequenceDet> dtSequenceDets = _periodSequenceDet.Select(p => p.Domain == domain && sczWorkords.Contains(p.WorkOrds) && p.PlanDate == scheTime.Date).ToList();
|
|
|
+ List<ScheduleResultOpMaster> dtScheduleResults = _scheduleResultOpMaster.Select(p => p.Domain == domain && sczWorkords.Contains(p.WorkOrd) && p.WorkDate == scheTime.Date).ToList();
|
|
|
+ //需要更新的日计划
|
|
|
+ List<PeriodSequenceDet> upSequenceDets = new List<PeriodSequenceDet>();
|
|
|
+ List<ScheduleResultOpMaster> upScheduleResults = 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);
|
|
|
+ //如果当天有日计划,则只需要更新计划数量
|
|
|
+ var cInfo = dtScheduleResults.FirstOrDefault(p => p.WorkOrd == wlItem.WorkOrds && p.WorkDate == scheTime.Date && p.Op == wlItem.Op);
|
|
|
+ if (cInfo != null)
|
|
|
+ {
|
|
|
+ cInfo.WorkQty = cInfo.WorkQty + curSche.WorkQty;
|
|
|
+ upScheduleResults.Add(cInfo);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ string strScheTime = scheTime.Date.ToString("yyyy-MM-dd");
|
|
|
+ curSche.WorkDate = scheTime.Date;
|
|
|
+ curSche.WorkStartTime = Convert.ToDateTime(curSche.WorkStartTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(curSche.WorkStartTime.ToString("yyyy-MM-dd"), strScheTime));
|
|
|
+ curSche.WorkEndTime = Convert.ToDateTime(curSche.WorkEndTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(curSche.WorkEndTime.ToString("yyyy-MM-dd"), strScheTime));
|
|
|
+ upScheduleResults.Add(curSche);
|
|
|
+ }
|
|
|
}
|
|
|
- //更新日期
|
|
|
- wlItem.PlanDate = scheTime.Date;
|
|
|
- //更新数量
|
|
|
- var info = periodSequenceDtls.FirstOrDefault(p=>p.WorkOrds == wlItem.WorkOrds && p.PlanDate == scheTime.Date && p.Op == wlItem.Op);
|
|
|
+ //如果当天有日计划,则只需要更新状态和计划数量
|
|
|
+ var info = dtSequenceDets.FirstOrDefault(p=>p.WorkOrds == wlItem.WorkOrds && p.PlanDate == scheTime.Date && p.Op == wlItem.Op);
|
|
|
if (info != null)
|
|
|
{
|
|
|
- wlItem.OrdQty = info.OrdQty;
|
|
|
+ info.OrdQty = info.OrdQty + wlItem.OrdQty;
|
|
|
+ info.Status = wlItem.Status;
|
|
|
+ upSequenceDets.Add(info);
|
|
|
}
|
|
|
- }
|
|
|
- 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;
|
|
|
+ else { //当天没有日计划,则更新计划日期
|
|
|
+ wlItem.PlanDate = scheTime.Date;
|
|
|
+ upSequenceDets.Add(wlItem);
|
|
|
}
|
|
|
}
|
|
|
//更新过期日计划的计划开工日期
|
|
|
- if (wlSequenceDets.Any())
|
|
|
+ if (upSequenceDets.Any())
|
|
|
{
|
|
|
- _periodSequenceDet.Update(wlSequenceDets);
|
|
|
+ _periodSequenceDet.Update(upSequenceDets);
|
|
|
}
|
|
|
- if (wlSchedules.Any())
|
|
|
+ if (upScheduleResults.Any())
|
|
|
{
|
|
|
- _scheduleResultOpMaster.Update(wlSchedules);
|
|
|
+ _scheduleResultOpMaster.Update(upScheduleResults);
|
|
|
}
|
|
|
}
|
|
|
//删除当前日期下一天开始的工单排产记录
|