|
|
@@ -930,7 +930,46 @@ namespace Business.Replenishment
|
|
|
}
|
|
|
return "OK";
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取物料在制数量
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="itemNumbers"></param>
|
|
|
+ /// <param name="input"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public List<EOPDto> GetProdcutQty(List<string> itemNumbers, InputDto input)
|
|
|
+ {
|
|
|
+ List<EOPDto> itemQty = new List<EOPDto>();
|
|
|
+ List<WorkOrdMaster> workOrdMasters = _workOrdMaster.Select(x => x.Domain == param.factoryId.ToString() && string.IsNullOrEmpty(x.Typed) == true && !string.IsNullOrEmpty(x.Status) && x.Status.ToUpper() != "C" && x.Status.ToUpper() != "P" && x.IsActive).ToList();
|
|
|
+ var workOrds = workOrdMasters.GroupBy(x => x.WorkOrd).ToList();
|
|
|
+ Dictionary<string, decimal> dictInProduction = new Dictionary<string, decimal>();
|
|
|
+ //按照工单循环
|
|
|
+ foreach (var item in workOrds)
|
|
|
+ {
|
|
|
+ var works = workOrdMasters.Where(x => x.WorkOrd == item.Key).ToList().FirstOrDefault();
|
|
|
+ if (dictInProduction.ContainsKey(works.ItemNum))
|
|
|
+ {
|
|
|
+ dictInProduction[works.ItemNum] += works.QtyOrded - works.QtyCompleted;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dictInProduction.Add(works.ItemNum, works.QtyOrded - works.QtyCompleted);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ itemNumbers.ForEach(a =>
|
|
|
+ {
|
|
|
+ EOPDto eOP = new EOPDto();
|
|
|
+ eOP.ItemNumber = a;
|
|
|
+ eOP.Qty = 0;
|
|
|
+ if (dictInProduction.ContainsKey(a))
|
|
|
+ eOP.Qty = dictInProduction[a];
|
|
|
+
|
|
|
+ itemQty.Add(eOP);
|
|
|
+
|
|
|
+ });
|
|
|
+ return itemQty;
|
|
|
+ }
|
|
|
/// <summary>
|
|
|
/// 获取物料在制数量
|
|
|
/// </summary>
|
|
|
@@ -3325,7 +3364,7 @@ namespace Business.Replenishment
|
|
|
var weekofMonth = WeekOfMonth(DateTime.Now, 1);
|
|
|
await AsyncItemStockFromWMS(pretreatments.Select(p => p.item_number).ToList(), "");
|
|
|
var icitemStokc = _mysql_ic_item_stock.GetListAsync(p => pretreatments.Select(pr => pr.item_id).Contains(p.icitem_id) && p.company_id == input.company_id).Result;
|
|
|
- var InProdcutQty = GetInProdcutQty(pretreatments.Select(m => m.item_number).ToList(), input);
|
|
|
+ var InProdcutQty = GetProdcutQty(pretreatments.Select(m => m.item_number).ToList(), input);
|
|
|
foreach (var key in subProductItem.Keys)
|
|
|
{
|
|
|
var itemQty = subProductItem[key];
|