Bladeren bron

在制工单数量

Pengxy 1 jaar geleden
bovenliggende
commit
fbc0a1309b

+ 40 - 1
MicroServices/Business/Business.Application/ReplenishmentManagement/ReplenishmentAppService.cs

@@ -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];