using DOAN.Model.BZFM; using DOAN.Model.BZFM.Dto; using DOAN.Repository; using DOAN.Service.BZFM.IBZFMService; using Infrastructure.Attribute; using Infrastructure.Converter; using Infrastructure.Extensions; using Microsoft.IdentityModel.Tokens; namespace DOAN.Service.BZFM { /// /// 入库记录表Service业务层处理 /// [AppService(ServiceType = typeof(IMmRecordInboundService), ServiceLifetime = LifeTime.Transient)] public class MmRecordInboundService : BaseService, IMmRecordInboundService { /// /// 查询入库记录表列表 /// /// /// public PagedInfo GetList(MmRecordInboundQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } /// /// 获取详情 /// /// /// public MmRecordInbound GetInfo(int Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加入库记录表 /// /// /// public MmRecordInbound AddMmRecordInbound(MmRecordInbound model) { return Insertable(model).ExecuteReturnEntity(); } /// /// 修改入库记录表 /// /// /// public int UpdateMmRecordInbound(MmRecordInbound model) { return Update(model, true); } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExp(MmRecordInboundQueryDto parm) { if (parm.CreatedTime != null && parm.CreatedTime.Length > 0) { parm.CreatedTime[0] = DOANConvertDate.ConvertLocalDate(parm.CreatedTime[0]); parm.CreatedTime[1] = DOANConvertDate.ConvertLocalDate(parm.CreatedTime[1]); parm.CreatedTime[0] = parm.CreatedTime[0].Date; parm.CreatedTime[1] = parm.CreatedTime[1].Date; } var predicate = Expressionable.Create() .AndIF(!string.IsNullOrEmpty(parm.SupplierCode), it => it.SupplierCode.Contains(parm.SupplierCode)) .AndIF(!string.IsNullOrEmpty(parm.Operator), it => it.Operator.Contains(parm.Operator)) .AndIF(!string.IsNullOrEmpty(parm.MaterialCode), it => it.MaterialCode.Contains(parm.MaterialCode)) .AndIF(!string.IsNullOrEmpty(parm.InboundNo), it => it.InboundNo.Contains(parm.InboundNo)) .AndIF(!string.IsNullOrEmpty(parm.TransactionType), it => it.TransactionType.Contains(parm.TransactionType)) .AndIF( parm.CreatedTime != null && parm.CreatedTime[0] > DateTime.MinValue, it => it.CreatedTime >= parm.CreatedTime[0] ) .AndIF( parm.CreatedTime != null && parm.CreatedTime[1] > DateTime.MinValue, it => it.CreatedTime <= parm.CreatedTime[1] ); ; return predicate; } } }