|
|
@@ -557,7 +557,7 @@ namespace Business.Replenishment
|
|
|
decimal ProduceQty = 0.00m;
|
|
|
//判断库存是否满足需要,满足则不用生产
|
|
|
var num = (locationSum.Value + frontQtySum) - frontYearDemand.Sum(m => m.Qty) + 0 - item.Qty / 2;
|
|
|
- if (num < 0||pcpl!=0)
|
|
|
+ if (num > 0 && pcpl!=0)
|
|
|
{
|
|
|
ProduceQty = pcpl * Math.Ceiling((-(locationSum.Value + frontQtySum) + (frontYearDemand.Sum(m => m.Qty) + 0) + item.Qty / 2)/ pcpl);
|
|
|
}
|
|
|
@@ -574,12 +574,13 @@ namespace Business.Replenishment
|
|
|
annualProductionOutline.Area = item.Area;
|
|
|
annualProductionOutline.ProdLine = item.ProdLine;
|
|
|
annualProductionOutline.ProdRange = item.ProdRange;
|
|
|
- if(prodLine == null)
|
|
|
+ if(prodLine == null|| lineMasters.Find(b => b.Line == prodLine.Line)==null)
|
|
|
{
|
|
|
annualProductionOutline.WorkshopLine ="";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+
|
|
|
annualProductionOutline.WorkshopLine = lineMasters.Find(b => b.Line == prodLine.Line).Describe;
|
|
|
}
|
|
|
|
|
|
@@ -2705,9 +2706,18 @@ namespace Business.Replenishment
|
|
|
{
|
|
|
DateTime nextWeekMonday = getPreWeekStartTime().AddDays(14);
|
|
|
DateTime next2WeekMonday = getPreWeekStartTime().AddDays(28);
|
|
|
+ //主工单发布,子工单需要一起发布
|
|
|
var weekPlan = _replenishmentWeekPlan.GetListAsync(a => a.PlanStartDate >= nextWeekMonday && a.PlanStartDate < next2WeekMonday && a.IsReplenishmentModel == "N" && a.ProductionStatus=="").Result.OrderBy(a => a.Priority).ToList();
|
|
|
- List<WorkOrdMaster> workMasters = _workOrdMaster.Select(a => weekPlan.Select(s => s.ItemNumber).Contains(a.ItemNum) && weekPlan.Select(p => p.ProductionOrder).Contains(a.WorkOrd) && a.Domain == input.factory_id.ToString());
|
|
|
- List<mes_morder> mes_Morders = _mysql_mes_morder.GetListAsync(a => workMasters.Select(b => b.WorkOrd).ToList().Contains(a.morder_no) && a.factory_id == input.factory_id).Result;
|
|
|
+ List<mes_morder> mes_Morders = _mysql_mes_morder.GetListAsync(a => weekPlan.Select(p => p.ProductionOrder).ToList().Contains(a.morder_no) && a.factory_id == input.factory_id).Result;
|
|
|
+ if(mes_Morders!=null&& mes_Morders.Count>0)
|
|
|
+ {
|
|
|
+ List<mes_morder> mes_Morders_sub=_mysql_mes_morder.GetListAsync(a => mes_Morders.Select(p => p.Id).ToList().Contains(a.parent_id.GetValueOrDefault()) && a.factory_id == input.factory_id).Result;
|
|
|
+ if (mes_Morders_sub != null && mes_Morders_sub.Count > 0)
|
|
|
+ {
|
|
|
+ mes_Morders.AddRange(mes_Morders_sub);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<WorkOrdMaster> workMasters = _workOrdMaster.Select(a => mes_Morders.Select(m=>m.morder_no).ToList().Contains(a.WorkOrd) && a.Domain == input.factory_id.ToString());
|
|
|
decimal priority = 1;
|
|
|
for(int i=0;i<weekPlan.Count;i++)
|
|
|
{
|