using Infrastructure.Attribute; using SqlSugar; using System.Linq; using ZR.Model.mes.md; using ZR.Service.MES.md.IService; namespace ZR.Service.MES.md { [AppService(ServiceType = typeof(IMdBOMService), ServiceLifetime = LifeTime.Transient)] public class MdBOMService : BaseService, IMdBOMService { public int deleteBOM(int[] ids) { return Delete(ids); } public List GetAllunitList() { return Context.Queryable().Where(it => it.EnableFlag == 'Y').ToList(); } public int UpdateBOM(MdBom mdBom) { return Context.Updateable(mdBom).WhereColumns(it => new { it.Id, it.ProductCode }).ExecuteCommand(); } int IMdBOMService.AddBom(MdBom bom) { return Insert(bom); } (int, List) IMdBOMService.GetAll(string productCode, string productName, int pageNum, int pageSize) { int totalNum = 0; if (string.IsNullOrEmpty(productCode) && string.IsNullOrEmpty(productName)) { List data = Context.Queryable().ToTree(it => it.Child, it => it.ParentProductId, null); totalNum = data.Count(); data = data.Skip(pageSize * (pageNum - 1)).Take(pageSize).ToList(); return (totalNum, data); } else { var predicate = Expressionable.Create() .AndIF(!string.IsNullOrEmpty(productCode), it => it.ProductCode.Contains(productCode)) .AndIF(!string.IsNullOrEmpty(productName), it => it.ProductName.Contains(productName)) .And(it => it.ParentProductId == null) .ToExpression(); List data = Context.Queryable().Where(predicate).ToList(); totalNum = data.Count(); List dataSons = new List(); if (data != null && data.Count > 0) { foreach (var item in data) { List data1 = Context.Queryable().ToTree(it => it.Child, it => it.ParentProductId, item.Id); item.Child = data1; } } data = data.Skip(pageSize * (pageNum - 1)).Take(pageSize).ToList(); return (totalNum, data); } } List IMdBOMService.QueryBOM(string queryString) { var predicate = Expressionable.Create() .AndIF(!string.IsNullOrEmpty(queryString), it => it.ProductCode.Contains(queryString)) .ToExpression(); return Context.Queryable().Where(predicate).ToList(); } } }