using DOAN.Infrastructure; using DOAN.Model; using DOAN.Model.MES.quality.IPQC; using DOAN.Model.MES.quality.IPQC.Dto; using DOAN.Repository; using DOAN.Service.MES.quality.IQC.IService; using Infrastructure.Attribute; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Infrastructure.Converter; namespace DOAN.Service.MES.quality.IQC { [AppService(ServiceType = typeof(IQcReportService), ServiceLifetime = LifeTime.Transient)] public class QcReportService : BaseService, IQcReportService { /// /// 查询报损单 /// /// /// public PagedInfo GetLossList(QcDefectCollectionQueryDto2 parm) { parm.DateTime = ConvertDateTime.ConvertLocalDate(parm.DateTime ?? DateTime.MinValue); var predicate = Expressionable.Create() .AndIF(!string.IsNullOrEmpty(parm.MaterialCode), it => it.MaterialCode.Contains(parm.MaterialCode)) .AndIF(!string.IsNullOrEmpty(parm.MaterialName), it => it.MaterialName.Contains(parm.MaterialName)) .AndIF(!string.IsNullOrEmpty(parm.ProductCode), it => it.ProductCode.Contains(parm.ProductCode)) .AndIF(!string.IsNullOrEmpty(parm.ProductName), it => it.ProductName.Contains(parm.ProductName)) .AndIF(!string.IsNullOrEmpty(parm.LineCode), it => it.LineCode.Contains(parm.LineCode)) .AndIF(!string.IsNullOrEmpty(parm.SupplierCode), it => it.SupplierCode.Contains(parm.SupplierCode)) .AndIF(parm.DateTime != null && parm.DateTime > DateTime.MinValue.AddYears(1), it => it.DateTime == parm.DateTime) .And(it => it.Type == 2) ; var response = Queryable() .Where(predicate.ToExpression()) .OrderBy(it => it.MaterialCode) .ToPage(parm); return response; } /// /// 查询索赔单 /// /// /// public PagedInfo GetCompensationList(QcDefectCollectionQueryDto2 parm) { parm.DateTime= DOANConvertDateTime.ConvertLocalDate(parm.DateTime ?? DateTime.MinValue); var predicate = Expressionable.Create() .AndIF(!string.IsNullOrEmpty(parm.MaterialCode), it => it.MaterialCode.Contains(parm.MaterialCode)) .AndIF(!string.IsNullOrEmpty(parm.MaterialName), it => it.MaterialName.Contains(parm.MaterialName)) .AndIF(!string.IsNullOrEmpty(parm.ProductCode), it => it.ProductCode.Contains(parm.ProductCode)) .AndIF(!string.IsNullOrEmpty(parm.ProductName), it => it.ProductName.Contains(parm.ProductName)) .AndIF(!string.IsNullOrEmpty(parm.LineCode), it => it.LineCode.Contains(parm.LineCode)) .AndIF(!string.IsNullOrEmpty(parm.SupplierCode), it => it.SupplierCode.Contains(parm.SupplierCode)) .AndIF(parm.DateTime != null && parm.DateTime > DateTime.MinValue.AddYears(1), it => it.DateTime == parm.DateTime) .And(it => it.Type == 1) ; var response = Queryable() .Where(predicate.ToExpression()) .OrderBy(it => it.MaterialCode) .ToPage(parm); return response; } public List ClaimFormExport(DateTime startTime, DateTime endTime) { DateTime AddDate= endTime.AddDays(1); return Context.Queryable().Where(it => it.CreatedTime >= startTime&&it.CreatedTimeit.Type==1) .ToList(); } public List ReportLossExport(DateTime startTime, DateTime endTime) { return Context.Queryable().Where(it => it.Type == 2) .Where(it => it.DateTime >= startTime&&it.DateTime<=endTime) .ToList(); } } }