shgx_tz_mom/ZR.Service/mes/qc/QCStatisticsService.cs
赵正易 3a609eaa3e 1.添加原材料入库的Model DTO Service层Controller层代码
2.修改质量管理-FQCService逻辑【抛光报表,包装报表】的生产投入数的计算方式(未确定)
2024-02-23 18:09:19 +08:00

150 lines
7.7 KiB
C#

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<QcQualityStatisticsFirst>, IQCStatisticsService
{
/// <summary>
/// 获取质量统计表 首检
/// </summary>
/// <param name="starttime"></param>
/// <param name="endTime"></param>
/// <param name="workorderid">工单号</param>
/// <param name="partnumber"></param>
/// <param name="product_description"></param>
/// <param name="team"></param>
/// <param name="pageNum"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public (List<QcQualityStatisticsFirst>, 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<QcQualityStatisticsFirst>()
.AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime)
//XXX:修改查询日期查询的字段
.AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime)
.AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Equals(workorderid))
.AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber))
.AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team))
.AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description))
.ToExpression();
List<QcQualityStatisticsFirst> data = Context.Queryable<QcQualityStatisticsFirst>().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum);
return (data, totalNum);
}
/// <summary>
/// 获取质量统计表 二检
/// </summary>
/// <param name="starttime"></param>
/// <param name="endTime"></param>
/// <param name="workorderid"></param>
/// <param name="partnumber"></param>
/// <param name="product_description"></param>
/// <param name="team"></param>
/// <param name="pageNum"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public (List<QcQualityStatisticsAgain>, 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<QcQualityStatisticsAgain>()
.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.WorkorderId.Equals(workorderid))
.AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber))
.AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team))
.AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description))
.ToExpression();
List<QcQualityStatisticsAgain> data = Context.Queryable<QcQualityStatisticsAgain>().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum);
return (data, totalNum);
}
/// <summary>
/// 获取质量统计表 三检
/// </summary>
/// <param name="starttime"></param>
/// <param name="endTime"></param>
/// <param name="workorderid"></param>
/// <param name="partnumber"></param>
/// <param name="product_description"></param>
/// <param name="team"></param>
/// <param name="pageNum"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public (List<QcQualityStatisticsFinal>, 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<QcQualityStatisticsFinal>()
.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.WorkorderId.Equals(workorderid))
.AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber))
.AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team))
.AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description))
.ToExpression();
List<QcQualityStatisticsFinal> data = Context.Queryable<QcQualityStatisticsFinal>().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum);
return (data, totalNum);
}
/// <summary>
/// 获取质量统计表 总表
/// </summary>
/// <param name="starttime"></param>
/// <param name="endTime"></param>
/// <param name="workorderid"></param>
/// <param name="partnumber"></param>
/// <param name="product_description"></param>
/// <param name="team"></param>
/// <param name="pageNum"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public (List<QcQualityStatisticsTotal>, 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<QcQualityStatisticsTotal>()
.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.WorkorderId.Equals(workorderid))
.AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber))
.AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team))
.AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description))
.ToExpression();
List<QcQualityStatisticsTotal> data = Context.Queryable<QcQualityStatisticsTotal>().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum);
return (data, totalNum);
}
}
}