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) { starttime = starttime.ToLocalTime(); endTime = endTime.ToLocalTime(); int totalNum = 0; var predicate = Expressionable.Create() //XXX:修改查询日期查询的字段 .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.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) { starttime = starttime.ToLocalTime(); endTime = endTime.ToLocalTime(); int totalNum = 0; var predicate = Expressionable.Create() //XXX:修改查询日期查询的字段 .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.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) { starttime = starttime.ToLocalTime(); endTime = endTime.ToLocalTime(); int totalNum = 0; var predicate = Expressionable.Create() //XXX:修改查询日期查询的字段 .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.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) { starttime = starttime.ToLocalTime(); endTime = endTime.ToLocalTime(); int totalNum = 0; var predicate = Expressionable.Create() //XXX:修改查询日期查询的字段 .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.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 int DeleteStatisticsTable(string workorderid) { int num = 0; num = num + Context.Deleteable() .Where(it => it.WorkorderId == workorderid).ExecuteCommand(); num = num + Context.Deleteable().Where(it => it.WorkorderId == workorderid).ExecuteCommand(); num = num + Context.Deleteable().Where(it => it.WorkorderId == workorderid).ExecuteCommand(); num = num + Context.Deleteable().Where(it => it.WorkorderId == workorderid).ExecuteCommand(); return num; } } }