This commit is contained in:
赵正易 2024-10-28 18:08:56 +08:00
parent 58994f4d7a
commit 08b25e0633
4 changed files with 226 additions and 10 deletions

View File

@ -424,6 +424,39 @@
public int StatisticsProductAndPolishQualifiedTotal { get; set; } = 0;
/// <summary>
/// 抛光盘点时间
///</summary>
public DateTime? PolishStockTime { get; set; }
/// <summary>
/// 一次合格盘点时间
///</summary>
public DateTime? OneTimeStockTime { get; set; }
/// <summary>
/// 抛光盘点库存数
///</summary>
public int StockPolishWarehouseCount { get; set; } = 0;
/// <summary>
/// 一次合格盘点库存数
///</summary>
public int StockOneTimeWarehouseCount { get; set; } = 0;
/// <summary>
/// 抛光计算盘点时间后报表实际库存数
///</summary>
public int RealPolishWarehouseCount { get; set; } = 0;
/// <summary>
/// 一次合格计算盘点时间后报表库存数
///</summary>
public int RealOneTimeWarehouseCount { get; set; } = 0;
/// <summary>
/// 备注
/// </summary>

View File

@ -1198,6 +1198,175 @@ namespace ZR.Service.mes.qc
boardData.StatisticsProductAndPolishQualifiedTotal =
boardData.StatisticsPolishQualifiedTotal + boardData.ProductQualifiedTotal;
// 盘点后库存计算值
// 抛光库盘点时间
boardData.PolishStockTime =
Context
.Queryable<WmPolishInventory>()
.Where(it => it.Status == 1)
.Select(it => it.CreatedTime)
.First() ?? new DateTime(2024, 10, 19, 0, 0, 0);
// 抛光盘点库存
int polishWarehouseTotal =
Context
.Queryable<WmPolishInventory>()
.WhereIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.Partnumber == query.Partnumber
)
.Sum(it => it.Quantity) ?? 0;
boardData.StockPolishWarehouseCount = polishWarehouseTotal;
// 产线抛光
int productPolishTotal =
(
Context
.Queryable<QcQualityStatisticsFirst>()
.WhereIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.FinishedPartNumber == query.Partnumber
)
.Where(it => it.StartTime >= boardData.PolishStockTime)
.Sum(it => it.PaoguangTotal) ?? 0
) / 3;
// 后道反抛
int afterPolishPolishTotal =
Context
.Queryable<WmPolishQualityStatistics>()
.WhereIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.Partnumber == query.Partnumber
)
.Where(it => it.StartTime >= boardData.PolishStockTime)
.Sum(it => it.PaoguangTotal) ?? 0;
// GP12反抛
int gP12PolishTotal =
Context
.Queryable<WmGp12QualityStatistics>()
.WhereIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.Partnumber == query.Partnumber
)
.Where(it => it.StartTime >= boardData.PolishStockTime)
.Sum(it => it.PaoguangTotal) ?? 0;
// 抛光总投入数
int polishRequireTotal =
Context
.Queryable<WmPolishWorkQualityStatistics>()
.WhereIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.Partnumber == query.Partnumber
)
.Where(it => it.StartTime >= boardData.PolishStockTime)
.Sum(it => it.RequireNumber) ?? 0;
// 抛光实际库存
boardData.RealPolishWarehouseCount =
polishWarehouseTotal
+ productPolishTotal
+ afterPolishPolishTotal
+ gP12PolishTotal
- polishRequireTotal;
// 一次合格库盘点时间
boardData.OneTimeStockTime =
Context
.Queryable<WmOneTimeInventory>()
.Where(it => it.Status == 1)
.Select(it => it.CreatedTime)
.First() ?? new DateTime(2024, 10, 19, 0, 0, 0);
// 一次合格盘点库存
int oneTimeWarehouseTotal =
Context
.Queryable<WmOneTimeInventory>()
.WhereIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.Partnumber == query.Partnumber
)
.Sum(it => it.Quantity) ?? 0;
boardData.StockOneTimeWarehouseCount = oneTimeWarehouseTotal;
// 产线合格
int productQualifiedTotal =
(
Context
.Queryable<QcQualityStatisticsFirst>()
.WhereIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.FinishedPartNumber == query.Partnumber
)
.Where(it => it.StartTime >= boardData.OneTimeStockTime)
.Sum(it => it.QualifiedNumber) ?? 0
) / 3;
// 倒车雷达
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))
.And(it => it.FinishedPartNumber == query.Partnumber)
.And(it => it.StartTime >= boardData.OneTimeStockTime)
.ToExpression();
// 倒车雷达
int productParkingSensorbQualifiedTotal =
Context
.Queryable<QcQualityStatisticsFirst>()
.Where(predicateParkingSensor)
.Sum(it => it.QualifiedNumber) ?? 0;
productParkingSensorbQualifiedTotal = productParkingSensorbQualifiedTotal / 3;
// 产线合格 - 倒车雷达
productQualifiedTotal -= productParkingSensorbQualifiedTotal;
// 抛光合格
int polishQualifiedTotal =
Context
.Queryable<WmPolishWorkQualityStatistics>()
.WhereIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.Partnumber == query.Partnumber
)
.Where(it => it.StartTime >= boardData.OneTimeStockTime)
.Sum(it => it.QualifiedNumber) ?? 0;
// GP12总投入
int gP12RequireTotal =
Context
.Queryable<WmGp12QualityStatistics>()
.WhereIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.Partnumber == query.Partnumber
)
.Where(it => it.StartTime >= boardData.OneTimeStockTime)
.Sum(it => it.RequireNumber) ?? 0;
// 后道直接出库
int afterPolishOutTotal = Context
.Queryable<WmPolishQualityStatistics>()
.WhereIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.Partnumber == query.Partnumber
)
.Where(it =>it.Type == 1)
.Where(it => it.StartTime >= boardData.OneTimeStockTime)
.Sum(it => it.RequireNumber) ?? 0;
boardData.RealOneTimeWarehouseCount =
oneTimeWarehouseTotal
+ productQualifiedTotal
+ polishQualifiedTotal
- gP12RequireTotal
- afterPolishOutTotal;
return boardData;
}
@ -1240,33 +1409,35 @@ namespace ZR.Service.mes.qc
{
foreach (var partNumber in partNumbers)
{
// 盘点数
int polishWarehouseTotal =
Context
.Queryable<WmPolishInventory>()
.Where(it => it.Partnumber == partNumber)
.Sum(it => it.Quantity) ?? 0;
// 产线抛光
int productPolishTotal =
Context
.Queryable<QcQualityStatisticsFirst>()
.Where(it => it.FinishedPartNumber == partNumber)
.Where(it => it.StartTime >= startTime.ToLocalTime())
.Sum(it => it.PaoguangTotal) ?? 0;
productPolishTotal = productPolishTotal / 3;
// 后道反抛
int afterPolishPolishTotal =
Context
.Queryable<WmPolishQualityStatistics>()
.Where(it => it.Partnumber == partNumber)
.Where(it => it.StartTime >= startTime.ToLocalTime())
.Sum(it => it.PaoguangTotal) ?? 0;
// GP12 反抛
int gP12PolishTotal =
Context
.Queryable<WmGp12QualityStatistics>()
.Where(it => it.Partnumber == partNumber)
.Where(it => it.StartTime >= startTime.ToLocalTime())
.Sum(it => it.PaoguangTotal) ?? 0;
// 抛光出库
int polishRequireTotal =
Context
.Queryable<WmPolishWorkQualityStatistics>()
@ -1339,13 +1510,16 @@ namespace ZR.Service.mes.qc
.Queryable<QcQualityStatisticsFirst>()
.Where(predicateParkingSensor)
.Sum(it => it.QualifiedNumber) ?? 0;
productParkingSensorbQualifiedTotal = productParkingSensorbQualifiedTotal / 3;
// 产线合格 - 倒车雷达
int productQualifiedTotal =
Context
.Queryable<QcQualityStatisticsFirst>()
.Where(it => it.FinishedPartNumber == partNumber)
.Where(it => it.StartTime >= startTime.ToLocalTime())
.Sum(it => it.QualifiedNumber) ?? 0 - productParkingSensorbQualifiedTotal;
.Sum(it => it.QualifiedNumber)
?? 0 - productParkingSensorbQualifiedTotal;
productQualifiedTotal = productQualifiedTotal / 3;
// 抛光合格
int polishQualifiedTotal =
Context
@ -1366,7 +1540,7 @@ namespace ZR.Service.mes.qc
.Queryable<WmPolishQualityStatistics>()
.Where(it => it.Partnumber == partNumber)
.Where(it => it.StartTime >= startTime.ToLocalTime())
.Where(it => it.Type == 1)
.Where(it => it.Type == 1)
.Sum(it => it.RequireNumber) ?? 0;
int realStock =

View File

@ -487,11 +487,16 @@ namespace ZR.Service.mes.wms
try
{
// 盘点时间
DateTime checkTime = new(2024, 10, 20, 0, 0, 0);
DateTime? checkTime = Context
.Queryable<WmOneTimeInventory>()
.Where(it => it.Status == 1)
.Select(it => it.CreatedTime)
.First() ?? new DateTime(2024, 10, 19, 0, 0, 0);
// DateTime
CommonFQCService commonFQCService = new();
// 获取报表数据
// 一次合格计算后库存 = 盘点库存 + 产线合格 + 抛光合格 - gp12投入 - 后道直接出库
return commonFQCService.GetBatchOneTimePartRealStock(partnumbers, checkTime);
return commonFQCService.GetBatchOneTimePartRealStock(partnumbers, checkTime.Value);
}
catch (Exception e)
{

View File

@ -561,11 +561,15 @@ namespace ZR.Service.mes.wms
try
{
// 盘点时间
DateTime checkTime = new(2024, 10, 20, 0, 0, 0);
DateTime? checkTime = Context
.Queryable<WmPolishInventory>()
.Where(it => it.Status == 1)
.Select(it => it.CreatedTime)
.First() ?? new DateTime(2024, 10, 19, 0, 0, 0);
CommonFQCService commonFQCService = new();
// 获取报表数据
// 抛光计算后库存 = 盘点库存 + 产线抛光 + 后道反抛 + GP12反抛 - 抛光投入
return commonFQCService.GetBatchPolishPartRealStock(partnumbers, checkTime);
return commonFQCService.GetBatchPolishPartRealStock(partnumbers, checkTime.Value);
}
catch (Exception e)
{