|
|
@@ -5725,7 +5725,18 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
var itemListStock = _SAPInv.Select(a => examines.Select(e => e.item_number).Distinct().ToList().Contains(a.MATNR) && locationList.Contains(a.LGORT) && a.WERKS == domain);
|
|
|
List<ic_demandschedule> ds = new List<ic_demandschedule>();
|
|
|
- for(int i=0;i<4;i++)
|
|
|
+ Dictionary<string, decimal> weekStockQty = new Dictionary<string, decimal>();
|
|
|
+ foreach(var item in itemListStock)
|
|
|
+ {
|
|
|
+ if(!weekStockQty.ContainsKey(item.MATNR))
|
|
|
+ {
|
|
|
+ weekStockQty.Add(item.MATNR, item.LABST + item.INSME);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ weekStockQty[item.MATNR] += (item.LABST + item.INSME);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (int i=0;i<4;i++)
|
|
|
{
|
|
|
var itemBegin = beginTime.AddDays(i*7);
|
|
|
var itemEnd = endTime.AddDays(7 * i-21);
|
|
|
@@ -5756,6 +5767,7 @@ namespace Business.ResourceExamineManagement
|
|
|
|
|
|
}
|
|
|
var requestdate = workItem.Min(a => a.OrdDate);
|
|
|
+
|
|
|
if(itemQty.Count>0)
|
|
|
{
|
|
|
foreach (var d in itemQty)
|
|
|
@@ -5769,8 +5781,23 @@ namespace Business.ResourceExamineManagement
|
|
|
itemds.requestdate = requestdate.GetValueOrDefault();
|
|
|
itemds.arrivaldate = requestdate.GetValueOrDefault().AddDays(-1).AddDays(-itemNum.InsLT).AddDays(-(int)Math.Ceiling(itemNum.MFGMTTR));
|
|
|
itemds.shortqty =d.LackQty;
|
|
|
- itemds.mesqty =d.NeedQty- pickBills.Where(a=> workItem.Select(s=>s.WorkOrd).Contains(a.WorkOrd) && a.ItemNum== d.ItemNum).Sum(q=>q.QtyRec);
|
|
|
- itemds.locqty = itemListStock.Where(a=>a.MATNR==d.ItemNum).Sum(a=>a.LABST+a.INSME);
|
|
|
+ //工单需求+已下达工单领料单待发料
|
|
|
+ itemds.mesqty =d.NeedQty + pickBills.Where(a=> workItem.Select(s=>s.WorkOrd).Contains(a.WorkOrd) && a.ItemNum== d.ItemNum).Sum(q=>q.QtyOrd-q.QtyRec);
|
|
|
+ //库存需要做扣减
|
|
|
+ if(weekStockQty.ContainsKey(d.ItemNum))
|
|
|
+ {
|
|
|
+ itemds.locqty = weekStockQty[d.ItemNum];
|
|
|
+ if(itemds.mesqty>= itemds.locqty)
|
|
|
+ {
|
|
|
+ weekStockQty[d.ItemNum] = 0;
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ weekStockQty[d.ItemNum] -= itemds.mesqty;
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ itemds.locqty = 0;
|
|
|
+ }
|
|
|
//累计在途数量
|
|
|
itemds.sechedqty = dsList.Where(a => a.requestdate<itemds.arrivaldate && a.itemnum==d.ItemNum).Sum(a=>a.schedqty-a.sentqty);
|
|
|
itemds.tosechedqty = itemds.mesqty-(itemds.locqty + itemds.sechedqty);
|