public List <dynamic> GetProductPlanList(List <dynamic> plan_list) { var ProcessTypeList = plan_list.Select(p => Convert.ToString(p.ProcessType)).ToArray(); string ContractCode = plan_list[0]["ContractCode"]; string PlanCode = plan_list[0]["PlanCode"]; int ProductID = plan_list[0]["ProductID"]; string PartCode = plan_list[0]["PartCode"]; int Quantity = plan_list[0]["Quantity"]; var BomList = TreeNodeManage.GetTreeNodeList <dynamic>( TreeNodeManage.Instance() .SetNode("PartCode") .SetParentNode("ParentCode", PartCode) .SetTableName("PRS_Process_BOM")) .Where(b => b.IsSelfMade == "1" && b.IsEnable == 1 && b.PartCode == PartCode).ToList(); var ProcessRouteList = new MES_BN_ProductProcessRouteService().GetModelList().Where(p => p.IsEnable == 1 && ProcessTypeList.Contains(p.ProcessModelType)).ToList(); return((from p in ProcessRouteList join b in BomList on p.PartCode equals b.PartCode orderby p.ProcessModelType, p.ProcessLineCode select new { ContractCode = ContractCode, ProductID = ProductID, p.ProcessModelType, p.PartCode, RootPartCode = PartCode, MonthPlanCode = PlanCode, p.ProcessCode, p.ProcessName, b.PartFigureCode, b.PartName, b.MaterialCode, Quantity = b.PartQuantity * Quantity, BomQty = b.PartQuantity, PlanType = 1, p.ManHour, p.WorkshopID, p.WorkshopName, p.EquipmentID, p.EquipmentName, p.WorkGroupID, p.WorkGroupName }).ToList <dynamic>()); }
public List <dynamic> GetProductPlanList(List <dynamic> plan_list) { string ContractCode = plan_list[0].ContractCode; int ProductID = plan_list[0].ProductID; string ProcessType = plan_list[0].ProcessType; string PartCode = plan_list[0].PartCode; var MonthPlanList = plan_list.GroupBy( a => new { a.ContractCode, a.ProductID, a.PartCode, a.PartName, a.RootPartCode, a.ProcessType, a.PartFigureCode, a.MaterialCode, a.PartQuantity }).Select( a => a.Aggregate( (current, next) => new { MonthPlanCode = Convert.ToString(current.MonthPlanCode) + "," + Convert.ToString(next.MonthPlanCode), a.Key.ContractCode, a.Key.ProductID, a.Key.PartCode, a.Key.PartName, a.Key.RootPartCode, a.Key.ProcessType, a.Key.PartFigureCode, a.Key.MaterialCode, a.Key.PartQuantity, Quantity = a.Sum(b => Convert.ToInt32(b.Quantity)), } ) //a => new //{ // a.Key.ContractCode, // a.Key.ProductID, // a.Key.PartCode, // a.Key.PartName, // a.Key.RootPartCode, // a.Key.ProcessType, // a.Key.PartFigureCode, // a.Key.MaterialCode, // a.Key.PartQuantity, // Quantity = a.Sum(b => Convert.ToInt32(b.Quantity)), // MonthPlanCode = a.Aggregate((current, next) => Convert.ToString(current) + "," + Convert.ToString(next)) //} ) .ToList <dynamic>(); //工序表 var ProcessRouteList = new MES_BN_ProductProcessRouteService() .GetDynamicList() .Where(p => p.IsEnable == 1 && p.ContractCode == ContractCode && p.PartCode == PartCode && p.ProcessModelType == ProcessType) .ToList <dynamic>(); var ProductPlanList = (from a in MonthPlanList join p in ProcessRouteList on Convert.ToString(a.PartCode) equals Convert.ToString(p.PartCode) orderby p.ProcessModelType, p.ProcessLineCode select new { a.ContractCode, a.ProductID, p.ProcessModelType, p.PartCode, a.RootPartCode, a.MonthPlanCode, p.ProcessCode, p.ProcessName, a.PartFigureCode, a.PartName, a.MaterialCode, //Quantity = a.Quantity, Quantity = Convert.ToInt32(a.PartQuantity) * Convert.ToInt32(a.Quantity), BomQty = a.PartQuantity, PlanType = 1, p.ManHour, p.WorkshopID, p.WorkshopName, p.EquipmentID, p.EquipmentName, p.WorkGroupID, p.WorkGroupName }).ToList <dynamic>(); return(ProductPlanList); }