shgx_tz_mom/ZR.Service/mes/qc/QCStatisticsService.cs

884 lines
37 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 查询报表
/// </summary>
[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 sortType = 0
)
{
starttime = starttime.ToLocalTime();
endTime = endTime.ToLocalTime();
int totalNum = 0;
var predicate = Expressionable
.Create<QcQualityStatisticsFirst>()
//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<QcQualityStatisticsFirst> data = Context
.Queryable<QcQualityStatisticsFirst>()
.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<WmMaterial>()
.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);
}
/// <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 sortType = 0
)
{
starttime = starttime.ToLocalTime();
endTime = endTime.ToLocalTime();
int totalNum = 0;
var predicate = Expressionable
.Create<QcQualityStatisticsAgain>()
//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<QcQualityStatisticsAgain> data = Context
.Queryable<QcQualityStatisticsAgain>()
.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<WmMaterial>()
.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);
}
/// <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 sortType = 0
)
{
starttime = starttime.ToLocalTime();
endTime = endTime.ToLocalTime();
int totalNum = 0;
var predicate = Expressionable
.Create<QcQualityStatisticsFinal>()
//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<QcQualityStatisticsFinal> data = Context
.Queryable<QcQualityStatisticsFinal>()
.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<WmMaterial>()
.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);
}
/// <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 sortType = 0
)
{
starttime = starttime.ToLocalTime();
endTime = endTime.ToLocalTime();
int totalNum = 0;
var predicate = Expressionable
.Create<QcQualityStatisticsTotal>()
//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<QcQualityStatisticsTotal> data = Context
.Queryable<QcQualityStatisticsTotal>()
.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<WmMaterial>()
.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);
}
/// <summary>
/// 删除首检,二检,三检报表
/// </summary>
/// <param name="workorderid"></param>
/// <returns></returns>
public int DeleteStatisticsTable(string workorderid)
{
int num = 0;
num =
num
+ Context
.Deleteable<QcQualityStatisticsFirst>()
.Where(it => it.WorkorderId == workorderid)
.ExecuteCommand();
num =
num
+ Context
.Deleteable<QcQualityStatisticsAgain>()
.Where(it => it.WorkorderId == workorderid)
.ExecuteCommand();
num =
num
+ Context
.Deleteable<QcQualityStatisticsFinal>()
.Where(it => it.WorkorderId == workorderid)
.ExecuteCommand();
num =
num
+ Context
.Deleteable<QcQualityStatisticsTotal>()
.Where(it => it.WorkorderId == workorderid)
.ExecuteCommand();
return num;
}
List<QcQualityStatisticsFirstDto> 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<QcQualityStatisticsFirstDto> DoFirstExcel(
DateTime starttime,
DateTime endTime,
string workorderid,
string partnumber,
string product_description,
string team,
int pageNum,
int pageSize,
int sortType
)
{
List<QcQualityStatisticsFirst> list = GetQualityStatisticsTable_first(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
).Item1;
List<QcQualityStatisticsFirstDto> 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<QcQualityStatisticsFirstDto> DoSecondExcel(
DateTime starttime,
DateTime endTime,
string workorderid,
string partnumber,
string product_description,
string team,
int pageNum,
int pageSize,
int sortType
)
{
List<QcQualityStatisticsAgain> list = GetQualityStatisticsTable_again(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
).Item1;
List<QcQualityStatisticsFirstDto> 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<QcQualityStatisticsFirstDto> DoThirdExcel(
DateTime starttime,
DateTime endTime,
string workorderid,
string partnumber,
string product_description,
string team,
int pageNum,
int pageSize,
int sortType
)
{
List<QcQualityStatisticsFinal> list = GetQualityStatisticsTable_final(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
).Item1;
List<QcQualityStatisticsFirstDto> 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<QcQualityStatisticsFirstDto> DoTotalExcel(
DateTime starttime,
DateTime endTime,
string workorderid,
string partnumber,
string product_description,
string team,
int pageNum,
int pageSize,
int sortType
)
{
List<QcQualityStatisticsTotal> list = GetQualityStatisticsTable_total(
starttime,
endTime,
workorderid,
partnumber,
product_description,
team,
pageNum,
pageSize,
sortType
).Item1;
List<QcQualityStatisticsFirstDto> 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<WmMaterial>()
.Where(it => it.Partnumber == partnumber)
.First();
if (material == null)
{
return "此零件号不在物料清单内!";
}
else
{
return !string.IsNullOrEmpty(material.Description)
? material.Description
: material.ProductName;
}
}
catch (Exception ex)
{
return "获取描述异常!";
}
}
/// <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>
/// <param name="sortType"></param>
/// <returns></returns>
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<WmMaterial>();
foreach (string checkStr in checkStrArray2)
{
ParkingSensorPartNumberCheck.Or(it => it.Description.Contains(checkStr));
}
;
ParkingSensorPartNumberCheck.And(it => it.Type == 1).And(it => it.Status == 1);
List<string> ParkingSensorPartNumberList = Context
.Queryable<WmMaterial>()
.Where(ParkingSensorPartNumberCheck.ToExpression())
.Select(it => it.Partnumber)
.ToList();
var predicateParkingSensor = Expressionable
.Create<QcQualityStatisticsFirst>()
.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<QcQualityStatisticsFirst>()
.Where(predicateParkingSensor)
.Sum(it => it.QualifiedNumber) ?? 0) / 3;
}
catch (Exception e)
{
throw new Exception(e.Message ?? string.Empty);
}
}
}
}