gb12质检模块
This commit is contained in:
@@ -1802,7 +1802,7 @@ namespace ZR.Service.mes.qc
|
||||
.Queryable<QcGp12ServiceStatistics>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0
|
||||
);
|
||||
)/3;
|
||||
boardData.StatisticsProductAndPolishQualifiedTotal =
|
||||
boardData.StatisticsPolishQualifiedTotal + boardData.ProductQualifiedTotal;
|
||||
|
||||
@@ -1873,6 +1873,7 @@ namespace ZR.Service.mes.qc
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.Sum(it => it.PolishNumber) ?? 0;
|
||||
gP12PolishTotal = gP12PolishTotal / 3;
|
||||
// 抛光总投入数
|
||||
int polishRequireTotal =
|
||||
Context
|
||||
@@ -1997,6 +1998,7 @@ namespace ZR.Service.mes.qc
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
gP12RequireTotal = gP12RequireTotal / 3;
|
||||
// 后道直接出库
|
||||
int afterPolishOutTotal =
|
||||
Context
|
||||
@@ -2068,6 +2070,7 @@ namespace ZR.Service.mes.qc
|
||||
.Where(it => it.StartTime >= boardData.PolishStockTime)
|
||||
.Where(it => it.StartTime <= query.StartTime.Value.ToLocalTime())
|
||||
.Sum(it => it.PolishNumber) ?? 0;
|
||||
gP12PolishTotal2 = gP12PolishTotal2 / 3;
|
||||
// 抛光总投入数
|
||||
int polishRequireTotal2 =
|
||||
Context
|
||||
@@ -2143,6 +2146,7 @@ namespace ZR.Service.mes.qc
|
||||
.Where(it => it.StartTime >= boardData.OneTimeStockTime)
|
||||
.Where(it => it.StartTime <= query.StartTime.Value.ToLocalTime())
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
gP12RequireTotal2 = gP12RequireTotal2 / 3;
|
||||
// 后道直接出库
|
||||
int afterPolishOutTotal2 =
|
||||
Context
|
||||
@@ -2287,6 +2291,81 @@ namespace ZR.Service.mes.qc
|
||||
}
|
||||
}
|
||||
|
||||
// 获取抛光报表变动后 每个零件 的实际库存 startTime 必填
|
||||
public Dictionary<string, int> GetBatchPolishPartRealStockNew(
|
||||
List<string> partNumbers,
|
||||
DateTime startTime
|
||||
)
|
||||
{
|
||||
var result = new Dictionary<string, int>();
|
||||
try
|
||||
{
|
||||
foreach (var partNumber in partNumbers)
|
||||
{
|
||||
startTime =
|
||||
Context
|
||||
.Queryable<WmPolishInventory>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Select(it => it.CreatedTime)
|
||||
.First() ?? startTime;
|
||||
// 盘点数
|
||||
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)
|
||||
.Sum(it => it.PaoguangTotal) ?? 0;
|
||||
productPolishTotal = productPolishTotal / 3;
|
||||
// 后道反抛
|
||||
int afterPolishPolishTotal =
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime)
|
||||
.Sum(it => it.PaoguangTotal) ?? 0;
|
||||
// GP12 反抛
|
||||
int gP12PolishTotal =
|
||||
Context
|
||||
.Queryable<QcGp12ServiceStatistics>()
|
||||
.Where(it => it.PartNumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime)
|
||||
.Sum(it => it.PolishNumber) ?? 0;
|
||||
|
||||
gP12PolishTotal= gP12PolishTotal / 3;
|
||||
// 抛光出库
|
||||
int polishRequireTotal =
|
||||
Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime)
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
|
||||
int realStock =
|
||||
polishWarehouseTotal
|
||||
+ productPolishTotal
|
||||
+ afterPolishPolishTotal
|
||||
+ gP12PolishTotal
|
||||
- polishRequireTotal;
|
||||
|
||||
result.Add(partNumber, realStock);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// 此处应记录日志而不是直接抛出异常或返回0,否则调用者无法区别正常0库存与错误
|
||||
Console.WriteLine($"An error occurred: {ex.Message}");
|
||||
throw; // 重新抛出异常以告知调用者
|
||||
}
|
||||
}
|
||||
|
||||
// 获取GP12报表变动后 一次合格品 每个零件 的实际库存 startTime 必填
|
||||
public Dictionary<string, int> GetBatchOneTimePartRealStock(
|
||||
List<string> partNumbers,
|
||||
@@ -2392,6 +2471,113 @@ namespace ZR.Service.mes.qc
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 获取GP12报表变动后 一次合格品 每个零件 的实际库存 startTime 必填
|
||||
public Dictionary<string, int> GetBatchOneTimePartRealStockNew(
|
||||
List<string> partNumbers,
|
||||
DateTime startTime
|
||||
)
|
||||
{
|
||||
var result = new Dictionary<string, int>();
|
||||
try
|
||||
{
|
||||
foreach (var partNumber in partNumbers)
|
||||
{
|
||||
startTime =
|
||||
Context
|
||||
.Queryable<WmOneTimeInventory>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Select(it => it.CreatedTime)
|
||||
.First() ?? startTime;
|
||||
// 基本值
|
||||
int oneTimeWarehouseTotal =
|
||||
Context
|
||||
.Queryable<WmOneTimeInventory>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Sum(it => it.Quantity) ?? 0;
|
||||
|
||||
// 产线倒车雷达
|
||||
// 倒车雷达剔除数据
|
||||
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 == partNumber)
|
||||
.And(it => it.StartTime >= startTime.ToLocalTime())
|
||||
.ToExpression();
|
||||
int productParkingSensorbQualifiedTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(predicateParkingSensor)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
productParkingSensorbQualifiedTotal = productParkingSensorbQualifiedTotal / 3;*/
|
||||
// 产线合格
|
||||
int productQualifiedTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(it =>
|
||||
!ParkingSensorPartNumberList.Contains(it.FinishedPartNumber)
|
||||
)
|
||||
.Where(it => it.FinishedPartNumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
productQualifiedTotal = productQualifiedTotal / 3;
|
||||
// 抛光合格
|
||||
int polishQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// gp12投入
|
||||
int gP12RequireTotal =
|
||||
Context
|
||||
.Queryable<QcGp12ServiceStatistics>()
|
||||
.Where(it => it.PartNumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime)
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
// 后道直接出库
|
||||
gP12RequireTotal = gP12RequireTotal / 3;
|
||||
int afterPolishOutTotal =
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime)
|
||||
.Where(it => it.Type == 1)
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
|
||||
int realStock =
|
||||
oneTimeWarehouseTotal
|
||||
+ productQualifiedTotal
|
||||
+ polishQualifiedTotal
|
||||
- gP12RequireTotal
|
||||
- afterPolishOutTotal;
|
||||
|
||||
result.Add(partNumber, realStock);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// 此处应记录日志而不是直接抛出异常或返回0,否则调用者无法区别正常0库存与错误
|
||||
Console.WriteLine($"An error occurred: {ex.Message}");
|
||||
throw; // 重新抛出异常以告知调用者
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 检查零件号是否是门把手
|
||||
/// </summary>
|
||||
|
||||
@@ -652,7 +652,8 @@ namespace ZR.Service.mes.wms
|
||||
CommonFQCService commonFQCService = new();
|
||||
// 获取报表数据
|
||||
// 一次合格计算后库存 = 盘点库存 + 产线合格 + 抛光合格 - gp12投入 - 后道直接出库
|
||||
return commonFQCService.GetBatchOneTimePartRealStock(partnumbers, checkTime.Value);
|
||||
//return commonFQCService.GetBatchOneTimePartRealStock(partnumbers, checkTime.Value);
|
||||
return commonFQCService.GetBatchOneTimePartRealStockNew(partnumbers, checkTime.Value);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
@@ -733,7 +733,8 @@ namespace ZR.Service.mes.wms
|
||||
CommonFQCService commonFQCService = new();
|
||||
// 获取报表数据
|
||||
// 抛光计算后库存 = 盘点库存 + 产线抛光 + 后道反抛 + GP12反抛 - 抛光投入
|
||||
return commonFQCService.GetBatchPolishPartRealStock(partnumbers, checkTime.Value);
|
||||
//return commonFQCService.GetBatchPolishPartRealStock(partnumbers, checkTime.Value);
|
||||
return commonFQCService.GetBatchPolishPartRealStockNew(partnumbers, checkTime.Value);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user