using Infrastructure.Attribute;
using SqlSugar;
using System;
using System.Linq;
using ZR.Model.MES.qc;
using ZR.Model.MES.qc.DTO;
using ZR.Model.MES.wms;
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 sortType = 0
)
{
starttime = starttime.ToLocalTime();
endTime = endTime.ToLocalTime();
int totalNum = 0;
var predicate = Expressionable
.Create()
//XXX:修改查询日期查询的字段
.AndIF(
starttime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
it => it.StartTime >= starttime.ToLocalTime()
)
.AndIF(
endTime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
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)
.OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc)
.OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc)
.OrderByIF(sortType == 0 || sortType == 2, it => it.StartTime, OrderByType.Asc)
.OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc)
.OrderBy(it => it.WorkorderId)
.OrderBy(it => it.Remark2)
.ToPageList(pageNum, pageSize, ref totalNum);
foreach (QcQualityStatisticsFirst item in data)
{
WmMaterial material = Context
.Queryable()
.Where(it => it.Partnumber == item.FinishedPartNumber)
.First();
if (material == null)
{
item.ProductDescription = "此零件号不在物料清单内!";
continue;
}
item.ProductDescription = !string.IsNullOrEmpty(material.Description)
? material.Description
: material.ProductName;
}
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 sortType = 0
)
{
starttime = starttime.ToLocalTime();
endTime = endTime.ToLocalTime();
int totalNum = 0;
var predicate = Expressionable
.Create()
//XXX:修改查询日期查询的字段
.AndIF(
starttime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
it => it.StartTime >= starttime.ToLocalTime()
)
.AndIF(
endTime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
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)
.OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc)
.OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc)
.OrderByIF(sortType == 0 || sortType == 2, it => it.StartTime, OrderByType.Asc)
.OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc)
.OrderBy(it => it.WorkorderId)
.OrderBy(it => it.Remark2)
.ToPageList(pageNum, pageSize, ref totalNum);
foreach (QcQualityStatisticsAgain item in data)
{
WmMaterial material = Context
.Queryable()
.Where(it => it.Partnumber == item.FinishedPartNumber)
.First();
if (material == null)
{
item.ProductDescription = "此零件号不在物料清单内!";
continue;
}
item.ProductDescription = !string.IsNullOrEmpty(material.Description)
? material.Description
: material.ProductName;
}
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 sortType = 0
)
{
starttime = starttime.ToLocalTime();
endTime = endTime.ToLocalTime();
int totalNum = 0;
var predicate = Expressionable
.Create()
//XXX:修改查询日期查询的字段
.AndIF(
starttime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
it => it.StartTime >= starttime.ToLocalTime()
)
.AndIF(
endTime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
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)
.OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc)
.OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc)
.OrderByIF(sortType == 0 || sortType == 2, it => it.StartTime, OrderByType.Asc)
.OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc)
.OrderBy(it => it.WorkorderId)
.OrderBy(it => it.Remark2)
.ToPageList(pageNum, pageSize, ref totalNum);
foreach (QcQualityStatisticsFinal item in data)
{
WmMaterial material = Context
.Queryable()
.Where(it => it.Partnumber == item.FinishedPartNumber)
.First();
if (material == null)
{
item.ProductDescription = "此零件号不在物料清单内!";
continue;
}
item.ProductDescription = !string.IsNullOrEmpty(material.Description)
? material.Description
: material.ProductName;
}
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 sortType = 0
)
{
starttime = starttime.ToLocalTime();
endTime = endTime.ToLocalTime();
int totalNum = 0;
var predicate = Expressionable
.Create()
//XXX:修改查询日期查询的字段
.AndIF(
starttime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
it => it.StartTime >= starttime.ToLocalTime()
)
.AndIF(
endTime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
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)
.OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc)
.OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc)
.OrderByIF(sortType == 0 || sortType == 2, it => it.StartTime, OrderByType.Asc)
.OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc)
.OrderBy(it => it.WorkorderId)
.OrderBy(it => it.Remark2)
.ToPageList(pageNum, pageSize, ref totalNum);
foreach (QcQualityStatisticsTotal item in data)
{
WmMaterial material = Context
.Queryable()
.Where(it => it.Partnumber == item.FinishedPartNumber)
.First();
if (material == null)
{
item.ProductDescription = "此零件号不在物料清单内!";
continue;
}
item.ProductDescription = !string.IsNullOrEmpty(material.Description)
? material.Description
: material.ProductName;
}
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;
}
List IQCStatisticsService.DownloadStatisticsTableExcel(
DateTime starttime,
DateTime endTime,
string workorderid,
string partnumber,
string product_description,
string team,
int pageNum,
int pageSize,
int type,
int sortType = 0
)
{
try
{
pageNum = 1;
pageSize = 5000;
return type switch
{
// 首检
1
=> DoFirstExcel(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
),
// 抛光
2
=> DoSecondExcel(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
),
// 包装
3
=> DoThirdExcel(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
),
// 总表
4
=> DoTotalExcel(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
),
_ => throw new Exception("获取的报表类型错误!" + type),
};
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
public List DoFirstExcel(
DateTime starttime,
DateTime endTime,
string workorderid,
string partnumber,
string product_description,
string team,
int pageNum,
int pageSize,
int sortType
)
{
List list = GetQualityStatisticsTable_first(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
).Item1;
List newList = list.Select(
item => new QcQualityStatisticsFirstDto()
{
WorkorderId = item.WorkorderId,
FinishedPartNumber = item.FinishedPartNumber,
ProductDescription = GetDescription(item.FinishedPartNumber),
Color = item.Color,
RequireNumber = item.RequireNumber,
Team = item.Team,
QualifiedNumber = item.QualifiedNumber,
QualifiedRate = item.QualifiedRate ?? 0,
PaoguangTotal = item.PaoguangTotal ?? 0,
DamoTotal = item.DamoTotal ?? 0,
BaofeiTotal = item.BaofeiTotal ?? 0,
StartTime = item.StartTime,
EndTime = item.EndTime,
Remark = item.Remark ?? "",
// 油漆(6)
PaintSuokong = item.PaintSuokong ?? 0,
PaintZhengkong = item.PaintZhengkong ?? 0,
PaintShiguang = item.PaintShiguang ?? 0,
PaintSecha = item.PaintSecha ?? 0,
PaintDianzi = item.PaintDianzi ?? 0,
PaintOther = item.PaintOther ?? 0,
// 设备(7)
DeviceShuiban = item.DeviceShuiban ?? 0,
DeviceZandian = item.DeviceZandian ?? 0,
DeviceBianxing = item.DeviceBianxing ?? 0,
DeviceYouzhu = item.DeviceYouzhu ?? 0,
DeviceTuoluo = item.DeviceTuoluo ?? 0,
DeviceZhuangshang = item.DeviceZhuangshang ?? 0,
DeviceOther = item.DeviceOther ?? 0,
// 毛坯(6)
BlankMaoci = item.BlankMaoci ?? 0,
BlankSuoyin = item.BlankSuoyin ?? 0,
BlankCanshuang = item.BlankCanshuang ?? 0,
BlankShaying = item.BlankShaying ?? 0,
BlankZangdian = item.BlankZangdian ?? 0,
BlankDamo = item.BlankDamo ?? 0,
// 程序(5)
ProgramLiuguang = item.ProgramLiuguang ?? 0,
ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0,
ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0,
ProgramJupi = item.ProgramJupi ?? 0,
ProgramOther = item.ProgramOther ?? 0,
// 班组操作(6)
TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0,
TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0,
TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0,
TeamFahua = item.TeamFahua ?? 0,
TeamLiangbang = item.TeamLiangbang ?? 0,
TeamPenglou = item.TeamPenglou ?? 0,
}
)
.ToList();
return newList;
}
public List DoSecondExcel(
DateTime starttime,
DateTime endTime,
string workorderid,
string partnumber,
string product_description,
string team,
int pageNum,
int pageSize,
int sortType
)
{
List list = GetQualityStatisticsTable_again(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
).Item1;
List newList = list.Select(
item => new QcQualityStatisticsFirstDto()
{
WorkorderId = item.WorkorderId,
FinishedPartNumber = item.FinishedPartNumber,
ProductDescription = GetDescription(item.FinishedPartNumber),
Color = item.Color,
RequireNumber = item.RequireNumber,
Team = item.Team,
QualifiedNumber = item.QualifiedNumber,
QualifiedRate = item.QualifiedRate ?? 0,
PaoguangTotal = item.PaoguangTotal ?? 0,
DamoTotal = item.DamoTotal ?? 0,
BaofeiTotal = item.BaofeiTotal ?? 0,
StartTime = item.StartTime,
EndTime = item.EndTime,
Remark = item.Remark ?? "",
// 油漆(6)
PaintSuokong = item.PaintSuokong ?? 0,
PaintZhengkong = item.PaintZhengkong ?? 0,
PaintShiguang = item.PaintShiguang ?? 0,
PaintSecha = item.PaintSecha ?? 0,
PaintDianzi = item.PaintDianzi ?? 0,
PaintOther = item.PaintOther ?? 0,
// 设备(7)
DeviceShuiban = item.DeviceShuiban ?? 0,
DeviceZandian = item.DeviceZandian ?? 0,
DeviceBianxing = item.DeviceBianxing ?? 0,
DeviceYouzhu = item.DeviceYouzhu ?? 0,
DeviceTuoluo = item.DeviceTuoluo ?? 0,
DeviceZhuangshang = item.DeviceZhuangshang ?? 0,
DeviceOther = item.DeviceOther ?? 0,
// 毛坯(6)
BlankMaoci = item.BlankMaoci ?? 0,
BlankSuoyin = item.BlankSuoyin ?? 0,
BlankCanshuang = item.BlankCanshuang ?? 0,
BlankShaying = item.BlankShaying ?? 0,
BlankZangdian = item.BlankZangdian ?? 0,
BlankDamo = item.BlankDamo ?? 0,
// 程序(5)
ProgramLiuguang = item.ProgramLiuguang ?? 0,
ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0,
ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0,
ProgramJupi = item.ProgramJupi ?? 0,
ProgramOther = item.ProgramOther ?? 0,
// 班组操作(6)
TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0,
TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0,
TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0,
TeamFahua = item.TeamFahua ?? 0,
TeamLiangbang = item.TeamLiangbang ?? 0,
TeamPenglou = item.TeamPenglou ?? 0,
}
)
.ToList();
return newList;
}
public List DoThirdExcel(
DateTime starttime,
DateTime endTime,
string workorderid,
string partnumber,
string product_description,
string team,
int pageNum,
int pageSize,
int sortType
)
{
List list = GetQualityStatisticsTable_final(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
).Item1;
List newList = list.Select(
item => new QcQualityStatisticsFirstDto()
{
WorkorderId = item.WorkorderId,
FinishedPartNumber = item.FinishedPartNumber,
ProductDescription = GetDescription(item.FinishedPartNumber),
Color = item.Color,
RequireNumber = item.RequireNumber,
Team = item.Team,
QualifiedNumber = item.QualifiedNumber,
QualifiedRate = item.QualifiedRate ?? 0,
PaoguangTotal = item.PaoguangTotal ?? 0,
DamoTotal = item.DamoTotal ?? 0,
BaofeiTotal = item.BaofeiTotal ?? 0,
StartTime = item.StartTime,
EndTime = item.EndTime,
Remark = item.Remark ?? "",
// 油漆(6)
PaintSuokong = item.PaintSuokong ?? 0,
PaintZhengkong = item.PaintZhengkong ?? 0,
PaintShiguang = item.PaintShiguang ?? 0,
PaintSecha = item.PaintSecha ?? 0,
PaintDianzi = item.PaintDianzi ?? 0,
PaintOther = item.PaintOther ?? 0,
// 设备(7)
DeviceShuiban = item.DeviceShuiban ?? 0,
DeviceZandian = item.DeviceZandian ?? 0,
DeviceBianxing = item.DeviceBianxing ?? 0,
DeviceYouzhu = item.DeviceYouzhu ?? 0,
DeviceTuoluo = item.DeviceTuoluo ?? 0,
DeviceZhuangshang = item.DeviceZhuangshang ?? 0,
DeviceOther = item.DeviceOther ?? 0,
// 毛坯(6)
BlankMaoci = item.BlankMaoci ?? 0,
BlankSuoyin = item.BlankSuoyin ?? 0,
BlankCanshuang = item.BlankCanshuang ?? 0,
BlankShaying = item.BlankShaying ?? 0,
BlankZangdian = item.BlankZangdian ?? 0,
BlankDamo = item.BlankDamo ?? 0,
// 程序(5)
ProgramLiuguang = item.ProgramLiuguang ?? 0,
ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0,
ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0,
ProgramJupi = item.ProgramJupi ?? 0,
ProgramOther = item.ProgramOther ?? 0,
// 班组操作(6)
TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0,
TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0,
TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0,
TeamFahua = item.TeamFahua ?? 0,
TeamLiangbang = item.TeamLiangbang ?? 0,
TeamPenglou = item.TeamPenglou ?? 0,
}
)
.ToList();
return newList;
}
public List DoTotalExcel(
DateTime starttime,
DateTime endTime,
string workorderid,
string partnumber,
string product_description,
string team,
int pageNum,
int pageSize,
int sortType
)
{
List list = GetQualityStatisticsTable_total(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
).Item1;
List newList = list.Select(
item => new QcQualityStatisticsFirstDto()
{
WorkorderId = item.WorkorderId,
FinishedPartNumber = item.FinishedPartNumber,
ProductDescription = GetDescription(item.FinishedPartNumber),
Color = item.Color,
RequireNumber = item.RequireNumber,
Team = item.Team,
QualifiedNumber = item.QualifiedNumber,
QualifiedRate = item.QualifiedRate ?? 0,
PaoguangTotal = item.PaoguangTotal ?? 0,
DamoTotal = item.DamoTotal ?? 0,
BaofeiTotal = item.BaofeiTotal ?? 0,
StartTime = item.StartTime,
EndTime = item.EndTime,
Remark = item.Remark ?? "",
// 油漆(6)
PaintSuokong = item.PaintSuokong ?? 0,
PaintZhengkong = item.PaintZhengkong ?? 0,
PaintShiguang = item.PaintShiguang ?? 0,
PaintSecha = item.PaintSecha ?? 0,
PaintDianzi = item.PaintDianzi ?? 0,
PaintOther = item.PaintOther ?? 0,
// 设备(7)
DeviceShuiban = item.DeviceShuiban ?? 0,
DeviceZandian = item.DeviceZandian ?? 0,
DeviceBianxing = item.DeviceBianxing ?? 0,
DeviceYouzhu = item.DeviceYouzhu ?? 0,
DeviceTuoluo = item.DeviceTuoluo ?? 0,
DeviceZhuangshang = item.DeviceZhuangshang ?? 0,
DeviceOther = item.DeviceOther ?? 0,
// 毛坯(6)
BlankMaoci = item.BlankMaoci ?? 0,
BlankSuoyin = item.BlankSuoyin ?? 0,
BlankCanshuang = item.BlankCanshuang ?? 0,
BlankShaying = item.BlankShaying ?? 0,
BlankZangdian = item.BlankZangdian ?? 0,
BlankDamo = item.BlankDamo ?? 0,
// 程序(5)
ProgramLiuguang = item.ProgramLiuguang ?? 0,
ProgramSeqiqueqi = item.ProgramSeqiqueqi ?? 0,
ProgramQingqiqueqi = item.ProgramQingqiqueqi ?? 0,
ProgramJupi = item.ProgramJupi ?? 0,
ProgramOther = item.ProgramOther ?? 0,
// 班组操作(6)
TeamTuoluocanshuang = item.TeamTuoluocanshuang ?? 0,
TeamQingqiqikuai = item.TeamQingqiqikuai ?? 0,
TeamSeqiqikuai = item.TeamSeqiqikuai ?? 0,
TeamFahua = item.TeamFahua ?? 0,
TeamLiangbang = item.TeamLiangbang ?? 0,
TeamPenglou = item.TeamPenglou ?? 0,
}
)
.ToList();
return newList;
}
public string GetDescription(string partnumber)
{
try
{
WmMaterial material = Context
.Queryable()
.Where(it => it.Partnumber == partnumber)
.First();
if (material == null)
{
return "此零件号不在物料清单内!";
}
else
{
return !string.IsNullOrEmpty(material.Description)
? material.Description
: material.ProductName;
}
}
catch (Exception ex)
{
return "获取描述异常!";
}
}
///
/// 获取首检倒车雷达数量
///
///
///
///
///
///
///
///
///
///
///
public int GetParkingSensorTotal(
DateTime starttime,
DateTime endTime,
string workorderid,
string partnumber,
string product_description,
string team,
int pageNum,
int pageSize
)
{
try
{
// 倒车雷达提取
string[] checkStrArray2 = { "倒车雷达" };
var ParkingSensorPartNumberCheck = Expressionable.Create();
foreach (string checkStr in checkStrArray2)
{
ParkingSensorPartNumberCheck.Or(it => it.Description.Contains(checkStr));
}
;
ParkingSensorPartNumberCheck.And(it => it.Type == 1).And(it => it.Status == 1);
List ParkingSensorPartNumberList = Context
.Queryable()
.Where(ParkingSensorPartNumberCheck.ToExpression())
.Select(it => it.Partnumber)
.ToList();
var predicateParkingSensor = Expressionable
.Create()
.And(it => ParkingSensorPartNumberList.Contains(it.FinishedPartNumber))
.AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId == workorderid)
.AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber == partnumber)
.AndIF(
!string.IsNullOrEmpty(product_description),
it => it.ProductDescription == product_description
)
.AndIF(!string.IsNullOrEmpty(team), it => it.Team == team)
.AndIF(starttime > DateTime.MinValue, it => it.StartTime >= starttime.ToLocalTime())
.AndIF(endTime > DateTime.MinValue, it => it.StartTime <= endTime.ToLocalTime())
.ToExpression();
return (Context
.Queryable()
.Where(predicateParkingSensor)
.Sum(it => it.QualifiedNumber) ?? 0) / 3;
}
catch (Exception e)
{
throw new Exception(e.Message ?? string.Empty);
}
}
}
}