2025-07-28 15:40:59 +08:00
|
|
|
|
using Infrastructure.Attribute;
|
2024-09-13 13:18:02 +08:00
|
|
|
|
using SqlSugar;
|
2025-07-28 15:40:59 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Linq;
|
2024-02-19 09:08:27 +08:00
|
|
|
|
using ZR.Model.MES.qc;
|
2024-05-11 15:23:42 +08:00
|
|
|
|
using ZR.Model.MES.qc.DTO;
|
2024-05-20 10:36:58 +08:00
|
|
|
|
using ZR.Model.MES.wms;
|
2024-02-19 09:08:27 +08:00
|
|
|
|
using ZR.Service.mes.qc.IService;
|
|
|
|
|
|
|
|
|
|
|
|
namespace ZR.Service.mes.qc
|
|
|
|
|
|
{
|
2024-03-22 08:54:11 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 查询报表
|
|
|
|
|
|
/// </summary>
|
2024-02-19 09:08:27 +08:00
|
|
|
|
[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>
|
2024-09-13 13:18:02 +08:00
|
|
|
|
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
|
|
|
|
|
|
)
|
2024-02-19 09:08:27 +08:00
|
|
|
|
{
|
2024-03-19 20:41:57 +08:00
|
|
|
|
starttime = starttime.ToLocalTime();
|
|
|
|
|
|
endTime = endTime.ToLocalTime();
|
2024-02-19 09:08:27 +08:00
|
|
|
|
int totalNum = 0;
|
2024-09-13 13:18:02 +08:00
|
|
|
|
var predicate = Expressionable
|
|
|
|
|
|
.Create<QcQualityStatisticsFirst>()
|
2024-02-23 18:05:11 +08:00
|
|
|
|
//XXX:修改查询日期查询的字段
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.AndIF(
|
2025-04-15 14:34:04 +08:00
|
|
|
|
starttime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
|
2024-09-13 13:18:02 +08:00
|
|
|
|
it => it.StartTime >= starttime.ToLocalTime()
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
2025-04-15 14:34:04 +08:00
|
|
|
|
endTime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
|
2024-09-13 13:18:02 +08:00
|
|
|
|
it => it.StartTime <= endTime.ToLocalTime()
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(workorderid),
|
|
|
|
|
|
it => it.WorkorderId.Contains(workorderid)
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(partnumber),
|
|
|
|
|
|
it => it.FinishedPartNumber.Contains(partnumber)
|
|
|
|
|
|
)
|
2024-02-20 15:04:49 +08:00
|
|
|
|
.AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team))
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(product_description),
|
|
|
|
|
|
it => it.ProductDescription.Contains(product_description)
|
|
|
|
|
|
)
|
2024-02-19 09:08:27 +08:00
|
|
|
|
.ToExpression();
|
|
|
|
|
|
|
2024-09-13 13:18:02 +08:00
|
|
|
|
List<QcQualityStatisticsFirst> data = Context
|
|
|
|
|
|
.Queryable<QcQualityStatisticsFirst>()
|
2024-06-07 11:04:26 +08:00
|
|
|
|
.Where(predicate)
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc)
|
|
|
|
|
|
.OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc)
|
2024-09-18 17:39:18 +08:00
|
|
|
|
.OrderByIF(sortType == 0 || sortType == 2, it => it.StartTime, OrderByType.Asc)
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc)
|
|
|
|
|
|
.OrderBy(it => it.WorkorderId)
|
2024-06-07 11:04:26 +08:00
|
|
|
|
.OrderBy(it => it.Remark2)
|
|
|
|
|
|
.ToPageList(pageNum, pageSize, ref totalNum);
|
2024-02-20 15:04:49 +08:00
|
|
|
|
|
2024-05-20 10:36:58 +08:00
|
|
|
|
foreach (QcQualityStatisticsFirst item in data)
|
|
|
|
|
|
{
|
2024-09-13 13:18:02 +08:00
|
|
|
|
WmMaterial material = Context
|
|
|
|
|
|
.Queryable<WmMaterial>()
|
|
|
|
|
|
.Where(it => it.Partnumber == item.FinishedPartNumber)
|
|
|
|
|
|
.First();
|
2024-05-20 10:36:58 +08:00
|
|
|
|
if (material == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
item.ProductDescription = "此零件号不在物料清单内!";
|
|
|
|
|
|
continue;
|
|
|
|
|
|
}
|
2024-09-13 13:18:02 +08:00
|
|
|
|
item.ProductDescription = !string.IsNullOrEmpty(material.Description)
|
|
|
|
|
|
? material.Description
|
|
|
|
|
|
: material.ProductName;
|
2024-05-20 10:36:58 +08:00
|
|
|
|
}
|
2024-02-19 09:08:27 +08:00
|
|
|
|
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>
|
2024-09-13 13:18:02 +08:00
|
|
|
|
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
|
|
|
|
|
|
)
|
2024-02-19 09:08:27 +08:00
|
|
|
|
{
|
2024-03-19 20:41:57 +08:00
|
|
|
|
starttime = starttime.ToLocalTime();
|
|
|
|
|
|
endTime = endTime.ToLocalTime();
|
2024-02-19 09:08:27 +08:00
|
|
|
|
int totalNum = 0;
|
2024-09-13 13:18:02 +08:00
|
|
|
|
var predicate = Expressionable
|
|
|
|
|
|
.Create<QcQualityStatisticsAgain>()
|
2024-03-01 14:42:53 +08:00
|
|
|
|
//XXX:修改查询日期查询的字段
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.AndIF(
|
2025-04-15 14:34:04 +08:00
|
|
|
|
starttime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
|
2024-09-13 13:18:02 +08:00
|
|
|
|
it => it.StartTime >= starttime.ToLocalTime()
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
2025-04-15 14:34:04 +08:00
|
|
|
|
endTime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
|
2024-09-13 13:18:02 +08:00
|
|
|
|
it => it.StartTime <= endTime.ToLocalTime()
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(workorderid),
|
|
|
|
|
|
it => it.WorkorderId.Contains(workorderid)
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(partnumber),
|
|
|
|
|
|
it => it.FinishedPartNumber.Contains(partnumber)
|
|
|
|
|
|
)
|
2024-02-20 15:04:49 +08:00
|
|
|
|
.AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team))
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(product_description),
|
|
|
|
|
|
it => it.ProductDescription.Contains(product_description)
|
|
|
|
|
|
)
|
2024-02-19 09:08:27 +08:00
|
|
|
|
.ToExpression();
|
|
|
|
|
|
|
2024-09-13 13:18:02 +08:00
|
|
|
|
List<QcQualityStatisticsAgain> data = Context
|
|
|
|
|
|
.Queryable<QcQualityStatisticsAgain>()
|
|
|
|
|
|
.Where(predicate)
|
|
|
|
|
|
.OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc)
|
|
|
|
|
|
.OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc)
|
2024-09-18 17:39:18 +08:00
|
|
|
|
.OrderByIF(sortType == 0 || sortType == 2, it => it.StartTime, OrderByType.Asc)
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc)
|
|
|
|
|
|
.OrderBy(it => it.WorkorderId)
|
|
|
|
|
|
.OrderBy(it => it.Remark2)
|
|
|
|
|
|
.ToPageList(pageNum, pageSize, ref totalNum);
|
2024-05-20 10:36:58 +08:00
|
|
|
|
foreach (QcQualityStatisticsAgain item in data)
|
|
|
|
|
|
{
|
2024-09-13 13:18:02 +08:00
|
|
|
|
WmMaterial material = Context
|
|
|
|
|
|
.Queryable<WmMaterial>()
|
|
|
|
|
|
.Where(it => it.Partnumber == item.FinishedPartNumber)
|
|
|
|
|
|
.First();
|
2024-05-20 10:36:58 +08:00
|
|
|
|
if (material == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
item.ProductDescription = "此零件号不在物料清单内!";
|
|
|
|
|
|
continue;
|
|
|
|
|
|
}
|
2024-09-13 13:18:02 +08:00
|
|
|
|
item.ProductDescription = !string.IsNullOrEmpty(material.Description)
|
|
|
|
|
|
? material.Description
|
|
|
|
|
|
: material.ProductName;
|
2024-05-20 10:36:58 +08:00
|
|
|
|
}
|
2024-02-19 09:08:27 +08:00
|
|
|
|
|
|
|
|
|
|
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>
|
2024-09-13 13:18:02 +08:00
|
|
|
|
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
|
|
|
|
|
|
)
|
2024-02-19 09:08:27 +08:00
|
|
|
|
{
|
2024-03-19 20:41:57 +08:00
|
|
|
|
starttime = starttime.ToLocalTime();
|
|
|
|
|
|
endTime = endTime.ToLocalTime();
|
2024-02-19 09:08:27 +08:00
|
|
|
|
int totalNum = 0;
|
2024-09-13 13:18:02 +08:00
|
|
|
|
var predicate = Expressionable
|
|
|
|
|
|
.Create<QcQualityStatisticsFinal>()
|
2024-03-01 14:42:53 +08:00
|
|
|
|
//XXX:修改查询日期查询的字段
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.AndIF(
|
2025-04-15 14:34:04 +08:00
|
|
|
|
starttime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
|
2024-09-13 13:18:02 +08:00
|
|
|
|
it => it.StartTime >= starttime.ToLocalTime()
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
2025-04-15 14:34:04 +08:00
|
|
|
|
endTime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
|
2024-09-13 13:18:02 +08:00
|
|
|
|
it => it.StartTime <= endTime.ToLocalTime()
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(workorderid),
|
|
|
|
|
|
it => it.WorkorderId.Contains(workorderid)
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(partnumber),
|
|
|
|
|
|
it => it.FinishedPartNumber.Contains(partnumber)
|
|
|
|
|
|
)
|
2024-02-20 15:04:49 +08:00
|
|
|
|
.AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team))
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(product_description),
|
|
|
|
|
|
it => it.ProductDescription.Contains(product_description)
|
|
|
|
|
|
)
|
2024-02-19 09:08:27 +08:00
|
|
|
|
.ToExpression();
|
|
|
|
|
|
|
2024-09-13 13:18:02 +08:00
|
|
|
|
List<QcQualityStatisticsFinal> data = Context
|
|
|
|
|
|
.Queryable<QcQualityStatisticsFinal>()
|
|
|
|
|
|
.Where(predicate)
|
|
|
|
|
|
.OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc)
|
|
|
|
|
|
.OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc)
|
2024-09-18 17:39:18 +08:00
|
|
|
|
.OrderByIF(sortType == 0 || sortType == 2, it => it.StartTime, OrderByType.Asc)
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc)
|
|
|
|
|
|
.OrderBy(it => it.WorkorderId)
|
|
|
|
|
|
.OrderBy(it => it.Remark2)
|
|
|
|
|
|
.ToPageList(pageNum, pageSize, ref totalNum);
|
2024-02-19 09:08:27 +08:00
|
|
|
|
|
2024-05-20 10:36:58 +08:00
|
|
|
|
foreach (QcQualityStatisticsFinal item in data)
|
|
|
|
|
|
{
|
2024-09-13 13:18:02 +08:00
|
|
|
|
WmMaterial material = Context
|
|
|
|
|
|
.Queryable<WmMaterial>()
|
|
|
|
|
|
.Where(it => it.Partnumber == item.FinishedPartNumber)
|
|
|
|
|
|
.First();
|
2024-05-20 10:36:58 +08:00
|
|
|
|
if (material == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
item.ProductDescription = "此零件号不在物料清单内!";
|
|
|
|
|
|
continue;
|
|
|
|
|
|
}
|
2024-09-13 13:18:02 +08:00
|
|
|
|
item.ProductDescription = !string.IsNullOrEmpty(material.Description)
|
|
|
|
|
|
? material.Description
|
|
|
|
|
|
: material.ProductName;
|
2024-05-20 10:36:58 +08:00
|
|
|
|
}
|
2024-02-19 09:08:27 +08:00
|
|
|
|
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>
|
2024-09-13 13:18:02 +08:00
|
|
|
|
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
|
|
|
|
|
|
)
|
2024-02-19 09:08:27 +08:00
|
|
|
|
{
|
2024-03-19 20:41:57 +08:00
|
|
|
|
starttime = starttime.ToLocalTime();
|
|
|
|
|
|
endTime = endTime.ToLocalTime();
|
2024-02-19 09:08:27 +08:00
|
|
|
|
int totalNum = 0;
|
2024-09-13 13:18:02 +08:00
|
|
|
|
var predicate = Expressionable
|
|
|
|
|
|
.Create<QcQualityStatisticsTotal>()
|
2024-03-01 14:42:53 +08:00
|
|
|
|
//XXX:修改查询日期查询的字段
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.AndIF(
|
2025-04-15 14:34:04 +08:00
|
|
|
|
starttime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
|
2024-09-13 13:18:02 +08:00
|
|
|
|
it => it.StartTime >= starttime.ToLocalTime()
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
2025-04-15 14:34:04 +08:00
|
|
|
|
endTime > DateTime.MinValue && string.IsNullOrEmpty(workorderid),
|
2024-09-13 13:18:02 +08:00
|
|
|
|
it => it.StartTime <= endTime.ToLocalTime()
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(workorderid),
|
|
|
|
|
|
it => it.WorkorderId.Contains(workorderid)
|
|
|
|
|
|
)
|
|
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(partnumber),
|
|
|
|
|
|
it => it.FinishedPartNumber.Contains(partnumber)
|
|
|
|
|
|
)
|
2024-02-20 15:04:49 +08:00
|
|
|
|
.AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team))
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.AndIF(
|
|
|
|
|
|
!string.IsNullOrEmpty(product_description),
|
|
|
|
|
|
it => it.ProductDescription.Contains(product_description)
|
|
|
|
|
|
)
|
2024-02-19 09:08:27 +08:00
|
|
|
|
.ToExpression();
|
|
|
|
|
|
|
2024-09-13 13:18:02 +08:00
|
|
|
|
List<QcQualityStatisticsTotal> data = Context
|
|
|
|
|
|
.Queryable<QcQualityStatisticsTotal>()
|
|
|
|
|
|
.Where(predicate)
|
|
|
|
|
|
.OrderByIF(sortType == 1, it => it.QualifiedRate, OrderByType.Desc)
|
|
|
|
|
|
.OrderByIF(sortType == 2, it => it.ProductDescription, OrderByType.Asc)
|
2024-09-18 17:39:18 +08:00
|
|
|
|
.OrderByIF(sortType == 0 || sortType == 2, it => it.StartTime, OrderByType.Asc)
|
2024-09-13 13:18:02 +08:00
|
|
|
|
.OrderByIF(sortType == 3, it => it.FinishedPartNumber, OrderByType.Asc)
|
|
|
|
|
|
.OrderBy(it => it.WorkorderId)
|
|
|
|
|
|
.OrderBy(it => it.Remark2)
|
|
|
|
|
|
.ToPageList(pageNum, pageSize, ref totalNum);
|
2024-05-20 10:36:58 +08:00
|
|
|
|
foreach (QcQualityStatisticsTotal item in data)
|
|
|
|
|
|
{
|
2024-09-13 13:18:02 +08:00
|
|
|
|
WmMaterial material = Context
|
|
|
|
|
|
.Queryable<WmMaterial>()
|
|
|
|
|
|
.Where(it => it.Partnumber == item.FinishedPartNumber)
|
|
|
|
|
|
.First();
|
2024-05-20 10:36:58 +08:00
|
|
|
|
if (material == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
item.ProductDescription = "此零件号不在物料清单内!";
|
|
|
|
|
|
continue;
|
|
|
|
|
|
}
|
2024-09-13 13:18:02 +08:00
|
|
|
|
item.ProductDescription = !string.IsNullOrEmpty(material.Description)
|
|
|
|
|
|
? material.Description
|
|
|
|
|
|
: material.ProductName;
|
2024-05-20 10:36:58 +08:00
|
|
|
|
}
|
2024-02-19 09:08:27 +08:00
|
|
|
|
|
|
|
|
|
|
return (data, totalNum);
|
|
|
|
|
|
}
|
2024-03-22 08:54:11 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 删除首检,二检,三检报表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="workorderid"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public int DeleteStatisticsTable(string workorderid)
|
|
|
|
|
|
{
|
|
|
|
|
|
int num = 0;
|
2024-09-13 13:18:02 +08:00
|
|
|
|
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();
|
2024-03-22 08:54:11 +08:00
|
|
|
|
|
|
|
|
|
|
return num;
|
|
|
|
|
|
}
|
2024-09-13 13:18:02 +08:00
|
|
|
|
|
|
|
|
|
|
List<QcQualityStatisticsFirstDto> IQCStatisticsService.DownloadStatisticsTableExcel(
|
|
|
|
|
|
DateTime starttime,
|
|
|
|
|
|
DateTime endTime,
|
|
|
|
|
|
string workorderid,
|
|
|
|
|
|
string partnumber,
|
|
|
|
|
|
string product_description,
|
|
|
|
|
|
string team,
|
|
|
|
|
|
int pageNum,
|
|
|
|
|
|
int pageSize,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
int type,
|
|
|
|
|
|
int sortType = 0
|
2024-09-13 13:18:02 +08:00
|
|
|
|
)
|
2024-05-11 15:23:42 +08:00
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
pageNum = 1;
|
|
|
|
|
|
pageSize = 5000;
|
|
|
|
|
|
return type switch
|
|
|
|
|
|
{
|
|
|
|
|
|
// 首检
|
2024-09-13 13:18:02 +08:00
|
|
|
|
1
|
|
|
|
|
|
=> DoFirstExcel(
|
|
|
|
|
|
starttime,
|
|
|
|
|
|
endTime,
|
|
|
|
|
|
workorderid,
|
|
|
|
|
|
partnumber,
|
|
|
|
|
|
product_description,
|
|
|
|
|
|
team,
|
|
|
|
|
|
pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
pageSize,
|
|
|
|
|
|
sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
),
|
2024-05-11 15:23:42 +08:00
|
|
|
|
// 抛光
|
2024-09-13 13:18:02 +08:00
|
|
|
|
2
|
|
|
|
|
|
=> DoSecondExcel(
|
|
|
|
|
|
starttime,
|
|
|
|
|
|
endTime,
|
|
|
|
|
|
workorderid,
|
|
|
|
|
|
partnumber,
|
|
|
|
|
|
product_description,
|
|
|
|
|
|
team,
|
|
|
|
|
|
pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
pageSize,
|
|
|
|
|
|
sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
),
|
2024-05-11 15:23:42 +08:00
|
|
|
|
// 包装
|
2024-09-13 13:18:02 +08:00
|
|
|
|
3
|
|
|
|
|
|
=> DoThirdExcel(
|
|
|
|
|
|
starttime,
|
|
|
|
|
|
endTime,
|
|
|
|
|
|
workorderid,
|
|
|
|
|
|
partnumber,
|
|
|
|
|
|
product_description,
|
|
|
|
|
|
team,
|
|
|
|
|
|
pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
pageSize,
|
|
|
|
|
|
sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
),
|
2024-05-11 15:23:42 +08:00
|
|
|
|
// 总表
|
2024-09-13 13:18:02 +08:00
|
|
|
|
4
|
|
|
|
|
|
=> DoTotalExcel(
|
|
|
|
|
|
starttime,
|
|
|
|
|
|
endTime,
|
|
|
|
|
|
workorderid,
|
|
|
|
|
|
partnumber,
|
|
|
|
|
|
product_description,
|
|
|
|
|
|
team,
|
|
|
|
|
|
pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
pageSize,
|
|
|
|
|
|
sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
),
|
2024-05-11 15:23:42 +08:00
|
|
|
|
_ => throw new Exception("获取的报表类型错误!" + type),
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
throw new Exception(ex.Message);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-07 11:04:26 +08:00
|
|
|
|
|
2024-09-13 13:18:02 +08:00
|
|
|
|
public List<QcQualityStatisticsFirstDto> DoFirstExcel(
|
|
|
|
|
|
DateTime starttime,
|
|
|
|
|
|
DateTime endTime,
|
|
|
|
|
|
string workorderid,
|
|
|
|
|
|
string partnumber,
|
|
|
|
|
|
string product_description,
|
|
|
|
|
|
string team,
|
|
|
|
|
|
int pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
int pageSize,
|
|
|
|
|
|
int sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
)
|
|
|
|
|
|
{
|
|
|
|
|
|
List<QcQualityStatisticsFirst> list = GetQualityStatisticsTable_first(
|
|
|
|
|
|
starttime,
|
|
|
|
|
|
endTime,
|
|
|
|
|
|
workorderid,
|
|
|
|
|
|
partnumber,
|
|
|
|
|
|
product_description,
|
|
|
|
|
|
team,
|
|
|
|
|
|
pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
pageSize,
|
|
|
|
|
|
sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
).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();
|
2024-05-11 15:23:42 +08:00
|
|
|
|
return newList;
|
|
|
|
|
|
}
|
2024-09-13 13:18:02 +08:00
|
|
|
|
|
|
|
|
|
|
public List<QcQualityStatisticsFirstDto> DoSecondExcel(
|
|
|
|
|
|
DateTime starttime,
|
|
|
|
|
|
DateTime endTime,
|
|
|
|
|
|
string workorderid,
|
|
|
|
|
|
string partnumber,
|
|
|
|
|
|
string product_description,
|
|
|
|
|
|
string team,
|
|
|
|
|
|
int pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
int pageSize,
|
|
|
|
|
|
int sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
)
|
2024-05-11 15:23:42 +08:00
|
|
|
|
{
|
2024-09-13 13:18:02 +08:00
|
|
|
|
List<QcQualityStatisticsAgain> list = GetQualityStatisticsTable_again(
|
|
|
|
|
|
starttime,
|
|
|
|
|
|
endTime,
|
|
|
|
|
|
workorderid,
|
|
|
|
|
|
partnumber,
|
|
|
|
|
|
product_description,
|
|
|
|
|
|
team,
|
|
|
|
|
|
pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
pageSize,
|
|
|
|
|
|
sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
).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();
|
2024-05-11 15:23:42 +08:00
|
|
|
|
return newList;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-09-13 13:18:02 +08:00
|
|
|
|
public List<QcQualityStatisticsFirstDto> DoThirdExcel(
|
|
|
|
|
|
DateTime starttime,
|
|
|
|
|
|
DateTime endTime,
|
|
|
|
|
|
string workorderid,
|
|
|
|
|
|
string partnumber,
|
|
|
|
|
|
string product_description,
|
|
|
|
|
|
string team,
|
|
|
|
|
|
int pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
int pageSize,
|
|
|
|
|
|
int sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
)
|
2024-05-11 15:23:42 +08:00
|
|
|
|
{
|
2024-09-13 13:18:02 +08:00
|
|
|
|
List<QcQualityStatisticsFinal> list = GetQualityStatisticsTable_final(
|
|
|
|
|
|
starttime,
|
|
|
|
|
|
endTime,
|
|
|
|
|
|
workorderid,
|
|
|
|
|
|
partnumber,
|
|
|
|
|
|
product_description,
|
|
|
|
|
|
team,
|
|
|
|
|
|
pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
pageSize,
|
|
|
|
|
|
sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
).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();
|
2024-05-11 15:23:42 +08:00
|
|
|
|
return newList;
|
|
|
|
|
|
}
|
2024-09-13 13:18:02 +08:00
|
|
|
|
|
|
|
|
|
|
public List<QcQualityStatisticsFirstDto> DoTotalExcel(
|
|
|
|
|
|
DateTime starttime,
|
|
|
|
|
|
DateTime endTime,
|
|
|
|
|
|
string workorderid,
|
|
|
|
|
|
string partnumber,
|
|
|
|
|
|
string product_description,
|
|
|
|
|
|
string team,
|
|
|
|
|
|
int pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
int pageSize,
|
|
|
|
|
|
int sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
)
|
2024-05-11 15:23:42 +08:00
|
|
|
|
{
|
2024-09-13 13:18:02 +08:00
|
|
|
|
List<QcQualityStatisticsTotal> list = GetQualityStatisticsTable_total(
|
|
|
|
|
|
starttime,
|
|
|
|
|
|
endTime,
|
|
|
|
|
|
workorderid,
|
|
|
|
|
|
partnumber,
|
|
|
|
|
|
product_description,
|
|
|
|
|
|
team,
|
|
|
|
|
|
pageNum,
|
2024-09-14 15:17:33 +08:00
|
|
|
|
pageSize,
|
|
|
|
|
|
sortType
|
2024-09-13 13:18:02 +08:00
|
|
|
|
).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();
|
2024-05-11 15:23:42 +08:00
|
|
|
|
return newList;
|
|
|
|
|
|
}
|
2024-05-20 10:36:58 +08:00
|
|
|
|
|
|
|
|
|
|
public string GetDescription(string partnumber)
|
|
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
2024-09-13 13:18:02 +08:00
|
|
|
|
WmMaterial material = Context
|
|
|
|
|
|
.Queryable<WmMaterial>()
|
|
|
|
|
|
.Where(it => it.Partnumber == partnumber)
|
|
|
|
|
|
.First();
|
2024-05-20 10:36:58 +08:00
|
|
|
|
if (material == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return "此零件号不在物料清单内!";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2024-09-13 13:18:02 +08:00
|
|
|
|
return !string.IsNullOrEmpty(material.Description)
|
|
|
|
|
|
? material.Description
|
|
|
|
|
|
: material.ProductName;
|
2024-05-20 10:36:58 +08:00
|
|
|
|
}
|
2024-06-07 11:04:26 +08:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
2024-05-20 10:36:58 +08:00
|
|
|
|
{
|
|
|
|
|
|
return "获取描述异常!";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-11-25 09:58:29 +08:00
|
|
|
|
|
|
|
|
|
|
/// <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);
|
|
|
|
|
|
}
|
2025-07-28 15:40:59 +08:00
|
|
|
|
|
2024-11-25 09:58:29 +08:00
|
|
|
|
}
|
2024-02-19 09:08:27 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|