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