diff --git a/BasicData/Tnb.BasicData.Entities/Entity/BasMaterial.cs b/BasicData/Tnb.BasicData.Entities/Entity/BasMaterial.cs index 633cc417..b9147f91 100644 --- a/BasicData/Tnb.BasicData.Entities/Entity/BasMaterial.cs +++ b/BasicData/Tnb.BasicData.Entities/Entity/BasMaterial.cs @@ -248,5 +248,10 @@ public partial class BasMaterial : BaseEntity /// 是否包含入库数 /// public int? is_contain_into_num { get; set; } + + /// + /// 是否创建子工单 + /// + public string? is_create_sub_work_order { get; set; } } diff --git a/BasicData/Tnb.BasicData.Interfaces/IBasMaterialService.cs b/BasicData/Tnb.BasicData.Interfaces/IBasMaterialService.cs index c27b3596..53f530fd 100644 --- a/BasicData/Tnb.BasicData.Interfaces/IBasMaterialService.cs +++ b/BasicData/Tnb.BasicData.Interfaces/IBasMaterialService.cs @@ -4,6 +4,19 @@ namespace Tnb.BasicData.Interfaces { public interface IBasMaterialService { + /// + /// 获取本物料清单及其所有子集物料信息 + /// + /// + /// public Task GetMaterialSelectInfo(MaterialSelectQueryInput queryInput); + + + /// + /// 获取可创建子工单的物料 + /// + /// + /// + public Task GetCanCreateSubWorkOrderMaterial(MaterialSelectQueryInput queryInput); } } \ No newline at end of file diff --git a/BasicData/Tnb.BasicData/BasMaterialService.cs b/BasicData/Tnb.BasicData/BasMaterialService.cs index 16716cc5..f5ba3c65 100644 --- a/BasicData/Tnb.BasicData/BasMaterialService.cs +++ b/BasicData/Tnb.BasicData/BasMaterialService.cs @@ -128,6 +128,38 @@ namespace Tnb.BasicData } } + [HttpPost] + public async Task GetCanCreateSubWorkOrderMaterial(MaterialSelectQueryInput queryInput) + { + var db = _repository.AsSugarClient(); + if (!string.IsNullOrEmpty(queryInput.ebom_id)) + { + List ids = await GetAllChildrenMaterialId(queryInput.ebom_id,0); + var result = await db.Queryable() + .LeftJoin((a, b) => b.EnCode == DictConst.MeasurementUnit && b.DeleteMark == null) + .LeftJoin((a, b, c) => c.DictionaryTypeId == b.Id && a.unit_id == c.EnCode) + .WhereIF(!string.IsNullOrEmpty(queryInput.material_info), (a, b, c) => a.code.Contains(queryInput.material_info) || a.name.Contains(queryInput.material_info)) + .WhereIF(!string.IsNullOrEmpty(queryInput.ebom_id), (a, b, c) => ids.Contains(a.id)) + .Where((a,b,c)=>a.is_create_sub_work_order=="1") + .Select((a, b, c) => new MaterialSelectOutput() + { + id = a.id, + code = a.code, + name = a.name, + descrip = a.descrip, + unit_id = a.unit_id, + unit_name = c.FullName, + }).ToPagedListAsync(queryInput.currentPage, queryInput.pageSize); + + return PageResult.SqlSugarPageResult(result); + + } + else + { + return PageResult.SqlSugarPageResult(new SqlSugarPagedList()); + } + } + /// /// 获取物料清单下所子集物料id ///