using System; using SqlSugar; using Infrastructure.Attribute; using Infrastructure.Extensions; using DOAN.Model; using DOAN.Model.Dto; using DOAN.Model.MES.base_; using DOAN.Model.MES.base_.Dto; using DOAN.Repository; using DOAN.Service.MES.base_.IService; using System.Linq; using Microsoft.IdentityModel.Tokens; using Mapster; using System.Xml.Linq; using static Org.BouncyCastle.Crypto.Engines.SM2Engine; using Infrastructure.Model; using Aliyun.OSS; using NPOI.SS.Formula.Functions; using MathNet.Numerics.Distributions; namespace DOAN.Service.MES.base_ { /// /// Service业务层处理 /// [AppService(ServiceType = typeof(IBaseMaterialBomService), ServiceLifetime = LifeTime.Transient)] public class BaseMaterialBomService : BaseService, IBaseMaterialBomService { /// /// 查询列表 /// /// /// public PagedInfo GetList(BaseMaterialBomQueryDto parm) { var predicate = Expressionable.Create(); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); //Context.Queryable().Where(predicate.ToExpression()).ToTree(it => it.Child, it => it.InvCode, 0, it => it.Id) //var response = Context.Queryable() // .Where(predicate.ToExpression()) // .Includes(x => x.Child).ToList(); return response; } /// /// 获取母件BOM清单 /// /// /// public PagedInfo GetMonterInvList(BaseMaterialBomQueryDto parm) { var predicate = Expressionable.Create() .AndIF(!string.IsNullOrEmpty(parm.InvCode),it=>it.InvCode.Contains(parm.InvCode)) .AndIF(!string.IsNullOrEmpty(parm.SubInvCode),it=>it.SubInvCode.Contains(parm.SubInvCode)) ; var query = Context.Queryable() .Where(predicate.ToExpression()) .GroupBy(it => it.InvCode) .Select(it => new BaseMaterialBomDto() { Id = SqlFunc.AggregateMax(it.Id), InvCode = SqlFunc.AggregateMax(it.InvCode), InvName = SqlFunc.AggregateMax(it.InvName), SubInvName = SqlFunc.AggregateMax(it.SubInvName), Iusequantity = SqlFunc.AggregateMax(it.Iusequantity), BOMVersion = SqlFunc.AggregateMax(it.BOMVersion), CreatedBy = SqlFunc.AggregateMax(it.CreatedBy), CreatedTime = SqlFunc.AggregateMax(it.CreatedTime), UpdatedBy = SqlFunc.AggregateMax(it.UpdatedBy), UpdatedTime = SqlFunc.AggregateMax(it.UpdatedTime) }); var response = query.ToPage(parm); return response; } /// /// 获取子件 /// /// /// public List GetSonInvList(BaseMaterialBomQueryDto parm) { return Context.Queryable().Where(it => it.InvCode == parm.InvCode).ToList(); } /// /// 获取详情 /// /// /// public BaseMaterialBom GetInfo(string Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加 /// /// /// public BaseMaterialBom AddBaseMaterialBom(BaseMaterialBom model) { return Context.Insertable(model).ExecuteReturnEntity(); } /// /// 修改 /// /// /// public int UpdateBaseMaterialBom(BaseMaterialBom model) { //var response = Update(w => w.Id == model.Id, it => new BaseMaterialBom() //{ // InvCode = model.InvCode, // InvName = model.InvName, // SubInvCode = model.SubInvCode, // SubcInvName = model.SubcInvName, // Iusequantity = model.Iusequantity, // BOMVersion = model.BOMVersion, // CreatedBy = model.CreatedBy, // CreatedTime = model.CreatedTime, // UpdatedBy = model.UpdatedBy, // UpdatedTime = model.UpdatedTime, //}); //return response; return Update(model, true); } } }