820 lines
34 KiB
C#
820 lines
34 KiB
C#
using System;
|
||
using System.Linq;
|
||
using Infrastructure.Attribute;
|
||
using SqlSugar;
|
||
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 > 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<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 > 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<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 > 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<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 > 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<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 "获取描述异常!";
|
||
}
|
||
}
|
||
}
|
||
}
|