using Infrastructure.Attribute; using Microsoft.Extensions.DependencyInjection; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ZR.Model.mes.md; using ZR.Model.MES.qc; using ZR.Model.MES.qu; using ZR.Service.mes.qc.IService; namespace ZR.Service.mes.qc { [AppService(ServiceType = typeof(IQCStatisticsService), ServiceLifetime = LifeTime.Transient)] public class QCStatisticsService : BaseService, IQCStatisticsService { /// /// 获取质量统计表 首检 /// /// /// /// 工单号 /// /// /// /// /// /// /// public (List, int) GetQualityStatisticsTable_first(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) { int totalNum = 0; var predicate = Expressionable.Create() .AndIF(starttime>new DateTime(2023, 1, 1, 0,0, 0), it => it.StartTime>=starttime) .AndIF(endTime > new DateTime(2023, 1, 1, 0,0, 0), it => it.EndTime<=endTime) .AndIF(!string.IsNullOrEmpty(workorderid),it=>it.Equals(workorderid)) .AndIF(!string.IsNullOrEmpty(partnumber),it=>it.Equals(partnumber)) .AndIF(!string.IsNullOrEmpty(team),it=>it.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); List data = Context.Queryable().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it=>it.Remark2).ToPageList(pageNum, pageSize, ref totalNum); return (data, totalNum); } /// /// 获取质量统计表 二检 /// /// /// /// /// /// /// /// /// /// /// public (List,int) GetQualityStatisticsTable_again(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) { int totalNum = 0; var predicate = Expressionable.Create() .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) .AndIF(!string.IsNullOrEmpty(workorderid), it => it.Equals(workorderid)) .AndIF(!string.IsNullOrEmpty(partnumber), it => it.Equals(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); List data = Context.Queryable().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum); return (data, totalNum); } /// /// 获取质量统计表 三检 /// /// /// /// /// /// /// /// /// /// /// public (List,int) GetQualityStatisticsTable_final(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) { int totalNum = 0; var predicate = Expressionable.Create() .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) .AndIF(!string.IsNullOrEmpty(workorderid), it => it.Equals(workorderid)) .AndIF(!string.IsNullOrEmpty(partnumber), it => it.Equals(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); List data = Context.Queryable().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum); return (data, totalNum); } /// /// 获取质量统计表 总表 /// /// /// /// /// /// /// /// /// /// /// public (List,int) GetQualityStatisticsTable_total(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) { int totalNum = 0; var predicate = Expressionable.Create() .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) .AndIF(!string.IsNullOrEmpty(workorderid), it => it.Equals(workorderid)) .AndIF(!string.IsNullOrEmpty(partnumber), it => it.Equals(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); List data = Context.Queryable().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum); return (data, totalNum); } } }