diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Boms/DTOs/BomComponentDTO.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Boms/DTOs/BomComponentDTO.cs index bd426b79a..85b037804 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Boms/DTOs/BomComponentDTO.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Boms/DTOs/BomComponentDTO.cs @@ -1,24 +1,35 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Xml.Linq; namespace Win_in.Sfs.Basedata.Boms.DTOs; public class BomComponentDTO { + + + + [Display(Name = "根物料号")] public string Root { get; set; } + [Display(Name = "物料号")] public string Component { get; set; } + [Display(Name = "单位")] public string ComponentUom { get; set; } + [Display(Name = "用量")] public decimal ComponentQty { get; set; } - + [Display(Name = "父物料号")] public string ParentComponent { get; set; } - + [Display(Name = "合计数量")] public decimal SumQty { get; set; } + + [Display(Name = "层数")] public int Level { get; set; } public List SubComponents { get; set; } - + [Display(Name = "拆解路径")] public string Path { set; get; } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs index f19d29cb8..b5241d1a0 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Boms/BomAppService.cs @@ -37,6 +37,13 @@ public class BomAppService : base.DeletePolicyName = BomPermissions.Delete; } + + + + + + + #region Get [HttpGet("get-by-productitemcode")] diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs index a98636aa2..d5087c034 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs @@ -291,13 +291,30 @@ public class BomManager : DomainService, IBomManager } return returnList; } + //private static List BomComponents = new List(); + //private static List GetBomComponents() + //{ + // if(BomComponents.Any() && ) + // var lst = await _repository.GetListAsync(p => p.Product == productCode).ConfigureAwait(false); + //} + /// + /// 层级、拆解、一维结构、树状结构 + /// + /// 上级组件(初始时为根元素) + /// 层级一般为1 + /// 累计数量 + /// 根 + /// 拆解到最终零件时 + /// 树型转成一维表用 + /// + @@ -310,19 +327,19 @@ public class BomManager : DomainService, IBomManager /// 根 /// 拆解到最终零件时 /// 树型转成一维表用 + /// /// private async Task> GetSubcomponentsRecursive(BomComponent p_component, int level, decimal sumQty, string root, Action p_actionLast, Action p_actionDimension - /*,List partcodeList =null*/ + /* ,List bomList =null*/ ) { List subComponents = new List(); // 假设 GetComponentsByProduct 方法可获取某个物料号下的所有子零件 - //List directSubComponents=new List(); - //if (partcodeList.Any()) - //{ - // partcodeList.Where(p => p.Component == p_component.Component); + //if (bomList != null && bomList.Count() > 0) + //{ + // = bomList.Where(p => p.Product == p_component.Component) //} //else //{ diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Plans/InjectioModelPlans/InjectioModelPlanAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Plans/InjectioModelPlans/InjectioModelPlanAppService.cs index 23cdfd0ce..60b7e77a5 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Plans/InjectioModelPlans/InjectioModelPlanAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Plans/InjectioModelPlans/InjectioModelPlanAppService.cs @@ -128,11 +128,9 @@ public class InjectioModelPlanAppService : [HttpPost("get-sumdetails-byNumbers")] - public virtual async Task GetBomList(List p_nodes) + public virtual async Task> GetBomList(List p_nodes) { var list = _repository.WithDetails().Where(p => p_nodes.Contains(p.Number)); - - List inputs = new List(); foreach (var itm in list) { @@ -149,11 +147,12 @@ public class InjectioModelPlanAppService : } var bomlist = await _bomAppService.GetSubcomponentsRecursiveList(inputs, EnumBomSelectedType.Last).ConfigureAwait(false); - if(bomlist.Count==0) - { - throw new Exception("Bom中没有查到零件BOM结构"); - } - return ExportImportService.Export(bomlist); + return bomlist; + //if(bomlist.Count==0) + //{ + // throw new Exception("Bom中没有查到零件BOM结构"); + //} + //return ExportImportService.Export(bomlist); } [HttpPost("get-bom-by-detail")]