Explorar el Código

资源检查生成工单调整

heteng hace 2 años
padre
commit
7f8fa5e573

+ 14 - 20
MicroServices/Business/Business.Application/ResourceExamineManagement/ResourceExamineAppService.cs

@@ -2161,7 +2161,7 @@ namespace Business.ResourceExamineManagement
                     Dictionary<string, decimal> dictItemQty = new Dictionary<string, decimal>();
                     List<string> lines = dbPeriodSequences.Where(a=>a.WorkOrds==workord).Select(a => a.Line).Distinct().ToList();
                     List<LineMaster> lineMasters = _lineMaster.Select(p => lines.Contains(p.Line) && p.Domain == "1001" && p.IsActive);
-                    List<ProductStructureMaster> itemList = GetProductStructure(dbPeriodSequences.Where(a => a.WorkOrds == workord).Select(a => a.ItemNum).Distinct().ToList());
+                    List<ProductStructureMaster> itemList = GetProductStructure(dbPeriodSequences.First(a => a.WorkOrds == workord).ItemNum);
                     var childrenList = itemList.Select(a => a.ComponentItem).Distinct().ToList();
                     List<ItemMaster> itemLocList = _itemMaster.Select(p => childrenList.Contains(p.ItemNum) && p.Domain == "1001" && p.IsActive).Distinct().ToList();
                     List<ItemPackMaster> itemPackList = _itemPackMaster.Select(p => childrenList.Contains(p.ItemNum) && p.Domain == "1001" && p.IsActive).Distinct().ToList();
@@ -2441,9 +2441,7 @@ namespace Business.ResourceExamineManagement
         {
             //获取工艺路线数据:product_code=物料编码
             List<RoutingOpDetail> allRoutings = _routingOpDetail.Select(p => morders.Select(m => m.product_code).Contains(p.RoutingCode));
-            ////获取标准BOM数据
-            //List<ProductStructureMaster> allProductStructures = GetProductStructure(morders.Select(p => p.product_code).Distinct().ToList());
-
+            
             //工单主表
             List<WorkOrdMaster> workOrds = new List<WorkOrdMaster>();
             WorkOrdMaster workOrd;
@@ -2491,10 +2489,7 @@ namespace Business.ResourceExamineManagement
                     workOrdRoutings.Add(woRouting);
                 }
 
-                ////添加工单物料数据
-                //var curStructures = allProductStructures.Where(p => p.ParentItem == item.product_code).ToList();
-
-                List<ProductStructureMaster> curStructures = GetProductStructure(new List<string> { item.product_code });
+                List<ProductStructureMaster> curStructures = GetProductStructure(item.product_code);
                 foreach (var structure in curStructures)
                 {
                     //添加工单的物料信息
@@ -2519,26 +2514,25 @@ namespace Business.ResourceExamineManagement
         /// <summary>
         /// 获取标准Bom数据--TODO:存在循环查询数据库问题,后续调整
         /// </summary>
-        /// <param name="itenNums">产品物料编码</param>
+        /// <param name="itenNum">产品物料编码</param>
         /// <returns></returns>
-        public List<ProductStructureMaster> GetProductStructure(List<string> itenNums)
+        public List<ProductStructureMaster> GetProductStructure(string itenNum)
         {
             List<ProductStructureMaster> rtnStructures = new List<ProductStructureMaster>();
             //根据itemNum获取bom数据
-            var productStructures = _productStructureMaster.Select(p => itenNums.Contains(p.ParentItem) && p.Domain == "1001" && p.IsActive);
+            var productStructures = _productStructureMaster.Select(p => itenNum == p.ParentItem && p.Domain == "1001" && p.IsActive);
             //添加非虚拟件
             rtnStructures.AddRange(productStructures.Where(p => p.StructureType.ToUpper() != "X").ToList());
-            foreach (var item in itenNums)
+
+            //获取当前产品的虚拟件
+            var curPhantoms = productStructures.Where(p => p.StructureType.ToUpper() == "X").ToList();
+            if (curPhantoms.Count() == 0)
             {
-                //获取当前产品的虚拟件
-                var curPhantoms = productStructures.Where(p => p.ParentItem == item && p.StructureType.ToUpper() == "X").ToList();
-                if (curPhantoms.Count() == 0)
-                {
-                    continue;
-                }
-                //递归获取所有虚拟件对应的子物料
-                RecursionProductStructure(item, curPhantoms, rtnStructures);
+                return rtnStructures;
             }
+            //递归获取所有虚拟件对应的子物料
+            RecursionProductStructure(itenNum, curPhantoms, rtnStructures);
+            
             return rtnStructures;
         }