涂装抛光流程变更
This commit is contained in:
@@ -514,28 +514,19 @@ namespace ZR.Service.mes.qc
|
||||
}
|
||||
}
|
||||
|
||||
// 获取产线相关数据
|
||||
/// <summary>
|
||||
/// 获取产线相关数据
|
||||
/// </summary>
|
||||
/// <param name="boardData"></param>
|
||||
/// <param name="query"></param>
|
||||
/// <returns></returns>
|
||||
public QcProductAndPolishAndOneTimeFqcBoardDto GetProductTotal(
|
||||
QcProductAndPolishAndOneTimeFqcBoardDto boardData,
|
||||
QcProductAndPolishAndOneTimeFqcBoardQuery query
|
||||
)
|
||||
{
|
||||
// 投入数
|
||||
var predicate1 = Expressionable
|
||||
.Create<QcQualityStatisticsTotal>()
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
it => it.FinishedPartNumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
var predicate2 = Expressionable
|
||||
.Create<QcQualityStatisticsFirst>()
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
@@ -550,23 +541,34 @@ namespace ZR.Service.mes.qc
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
string[] checkStrArray = { "门把手", "面盖", "T22", "T26", "A58", "A60", "C01", "B02", "V71", "T1EJ" };
|
||||
// 门把手提取
|
||||
string[] checkStrArray =
|
||||
{
|
||||
"门把手",
|
||||
"面盖",
|
||||
"T22",
|
||||
"T26",
|
||||
"A58",
|
||||
"A60",
|
||||
"C01",
|
||||
"B02",
|
||||
"V71",
|
||||
"T1EJ"
|
||||
};
|
||||
var DoorknobPartNumberCheck = Expressionable.Create<WmMaterial>();
|
||||
foreach (string checkStr in checkStrArray)
|
||||
{
|
||||
DoorknobPartNumberCheck.Or(it => it.Description.Contains(checkStr));
|
||||
}
|
||||
;
|
||||
DoorknobPartNumberCheck
|
||||
.And(it => it.Type == 1)
|
||||
.And(it => it.Status == 1);
|
||||
DoorknobPartNumberCheck.And(it => it.Type == 1).And(it => it.Status == 1);
|
||||
List<string> DoorknobPartNumberList = Context
|
||||
.Queryable<WmMaterial>()
|
||||
.Where(DoorknobPartNumberCheck.ToExpression())
|
||||
.Select(it => it.Partnumber)
|
||||
.ToList();
|
||||
var predicate3 = Expressionable
|
||||
.Create<QcQualityStatisticsTotal>()
|
||||
var predicate2 = Expressionable
|
||||
.Create<QcQualityStatisticsFirst>()
|
||||
.And(it => DoorknobPartNumberList.Contains(it.FinishedPartNumber))
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
@@ -581,34 +583,71 @@ namespace ZR.Service.mes.qc
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
// 倒车雷达提取
|
||||
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(query.Partnumber),
|
||||
it => it.FinishedPartNumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
boardData.ProductRequireTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsTotal>()
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(predicate1)
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
boardData.ProductQualifiedTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsTotal>()
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(predicate1)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// 门把手合格
|
||||
boardData.ProductDoorknobQualifiedTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsTotal>()
|
||||
.Where(predicate3)
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// 倒车雷达合格
|
||||
boardData.ProductParkingSensorbQualifiedTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(predicateParkingSensor)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.ProductPolishTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(predicate2)
|
||||
.Where(predicate1)
|
||||
.Sum(it => it.PaoguangTotal) ?? 0;
|
||||
boardData.ProductSandingTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsTotal>()
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(predicate1)
|
||||
.Sum(it => it.DamoTotal) ?? 0;
|
||||
boardData.ProductDiscardTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsTotal>()
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(predicate1)
|
||||
.Sum(it => it.BaofeiTotal) ?? 0;
|
||||
|
||||
@@ -616,9 +655,20 @@ namespace ZR.Service.mes.qc
|
||||
boardData.ProductRequireTotal = boardData.ProductRequireTotal / 3;
|
||||
boardData.ProductQualifiedTotal = boardData.ProductQualifiedTotal / 3;
|
||||
boardData.ProductDoorknobQualifiedTotal = boardData.ProductDoorknobQualifiedTotal / 3;
|
||||
boardData.ProductParkingSensorbQualifiedTotal =
|
||||
boardData.ProductParkingSensorbQualifiedTotal / 3;
|
||||
boardData.ProductPolishTotal = boardData.ProductPolishTotal / 3;
|
||||
boardData.ProductSandingTotal = boardData.ProductSandingTotal / 3;
|
||||
boardData.ProductDiscardTotal = boardData.ProductDiscardTotal / 3;
|
||||
// 合格数补正(合格数 = 总合格数 - 门把手 - 倒车雷达)
|
||||
/*boardData.ProductQualifiedTotal = boardData.ProductQualifiedTotal - (boardData.ProductDoorknobQualifiedTotal + boardData.ProductParkingSensorbQualifiedTotal);*/
|
||||
|
||||
if (boardData.ProductRequireTotal > 0)
|
||||
{
|
||||
double passRate =
|
||||
((double)boardData.ProductQualifiedTotal / boardData.ProductRequireTotal) * 100;
|
||||
boardData.ProductQualifiePassRate = passRate.ToString("0") + "%";
|
||||
}
|
||||
return boardData;
|
||||
}
|
||||
|
||||
@@ -665,21 +715,77 @@ namespace ZR.Service.mes.qc
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
string[] checkStrArray = { "门把手", "面盖", "T22", "T26", "A58", "A60", "C01", "B02", "V71", "T1EJ" };
|
||||
string[] checkStrArray =
|
||||
{
|
||||
"门把手",
|
||||
"面盖",
|
||||
"T22",
|
||||
"T26",
|
||||
"A58",
|
||||
"A60",
|
||||
"C01",
|
||||
"B02",
|
||||
"V71",
|
||||
"T1EJ"
|
||||
};
|
||||
var DoorknobPartNumberCheck = Expressionable.Create<WmMaterial>();
|
||||
foreach (string checkStr in checkStrArray)
|
||||
{
|
||||
DoorknobPartNumberCheck.Or(it => it.Description.Contains(checkStr));
|
||||
}
|
||||
;
|
||||
DoorknobPartNumberCheck
|
||||
.And(it => it.Type == 1)
|
||||
.And(it => it.Status == 1);
|
||||
DoorknobPartNumberCheck.And(it => it.Type == 1).And(it => it.Status == 1);
|
||||
List<string> DoorknobPartNumberList = Context
|
||||
.Queryable<WmMaterial>()
|
||||
.Where(DoorknobPartNumberCheck.ToExpression())
|
||||
.Select(it => it.Partnumber)
|
||||
.ToList();
|
||||
// 倒车雷达提取
|
||||
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 predicateParkingSensor1 = Expressionable
|
||||
.Create<WmPolishWorkQualityStatistics>()
|
||||
.And(it => ParkingSensorPartNumberList.Contains(it.Partnumber))
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
it => it.Partnumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
var predicateParkingSensor2 = Expressionable
|
||||
.Create<WmPolishQualityStatistics>()
|
||||
.And(it => ParkingSensorPartNumberList.Contains(it.Partnumber))
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
it => it.Partnumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
var predicate3 = Expressionable
|
||||
.Create<WmPolishQualityStatistics>()
|
||||
.And(it => DoorknobPartNumberList.Contains(it.Partnumber))
|
||||
@@ -697,21 +803,21 @@ namespace ZR.Service.mes.qc
|
||||
)
|
||||
.ToExpression();
|
||||
var predicate4 = Expressionable
|
||||
.Create<WmPolishWorkQualityStatistics>()
|
||||
.And(it => DoorknobPartNumberList.Contains(it.Partnumber))
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
it => it.Partnumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
.Create<WmPolishWorkQualityStatistics>()
|
||||
.And(it => DoorknobPartNumberList.Contains(it.Partnumber))
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
it => it.Partnumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
boardData.PolishWarehouseTotal =
|
||||
Context
|
||||
.Queryable<WmPolishInventory>()
|
||||
@@ -723,16 +829,24 @@ namespace ZR.Service.mes.qc
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.Where(predicate1)
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
// 抛光合格
|
||||
boardData.PolishQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.Where(predicate1)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// 抛光门把手
|
||||
boardData.PolishDoorknobQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.Where(predicate4)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// 抛光倒车雷达
|
||||
boardData.PolishParkingSensorbQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.Where(predicateParkingSensor1)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.PolishSandingTotal =
|
||||
Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
@@ -749,16 +863,24 @@ namespace ZR.Service.mes.qc
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
// 后道合格
|
||||
boardData.AfterPolishQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// 后道门把手合格数
|
||||
boardData.AfterPolishDoorknobQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(predicate3)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// 后道倒车雷达合格数
|
||||
boardData.AfterPolishParkingSensorbQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(predicateParkingSensor2)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.AfterPolishPolishTotal =
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
@@ -774,6 +896,12 @@ namespace ZR.Service.mes.qc
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.BaofeiTotal) ?? 0;
|
||||
// 合格数修正
|
||||
boardData.PolishQualifiedTotal =
|
||||
boardData.PolishQualifiedTotal - boardData.PolishParkingSensorbQualifiedTotal;
|
||||
boardData.AfterPolishQualifiedTotal =
|
||||
boardData.AfterPolishQualifiedTotal
|
||||
- boardData.AfterPolishParkingSensorbQualifiedTotal;
|
||||
return boardData;
|
||||
}
|
||||
|
||||
@@ -805,37 +933,79 @@ namespace ZR.Service.mes.qc
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
string[] checkStrArray = { "门把手", "面盖", "T22", "T26", "A58", "A60", "C01", "B02", "V71", "T1EJ" };
|
||||
// 门把手提取
|
||||
string[] checkStrArray =
|
||||
{
|
||||
"门把手",
|
||||
"面盖",
|
||||
"T22",
|
||||
"T26",
|
||||
"A58",
|
||||
"A60",
|
||||
"C01",
|
||||
"B02",
|
||||
"V71",
|
||||
"T1EJ"
|
||||
};
|
||||
var DoorknobPartNumberCheck = Expressionable.Create<WmMaterial>();
|
||||
foreach (string checkStr in checkStrArray)
|
||||
{
|
||||
DoorknobPartNumberCheck.Or(it => it.Description.Contains(checkStr));
|
||||
}
|
||||
;
|
||||
DoorknobPartNumberCheck
|
||||
.And(it => it.Type == 1)
|
||||
.And(it => it.Status == 1);
|
||||
DoorknobPartNumberCheck.And(it => it.Type == 1).And(it => it.Status == 1);
|
||||
List<string> DoorknobPartNumberList = Context
|
||||
.Queryable<WmMaterial>()
|
||||
.Where(DoorknobPartNumberCheck.ToExpression())
|
||||
.Select(it => it.Partnumber)
|
||||
.ToList();
|
||||
var predicate3 = Expressionable
|
||||
.Create<WmGp12QualityStatistics>()
|
||||
.And(it => DoorknobPartNumberList.Contains(it.Partnumber))
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
it => it.Partnumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
.Create<WmGp12QualityStatistics>()
|
||||
.And(it => DoorknobPartNumberList.Contains(it.Partnumber))
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
it => it.Partnumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
// 倒车雷达提取
|
||||
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<WmGp12QualityStatistics>()
|
||||
.And(it => ParkingSensorPartNumberList.Contains(it.Partnumber))
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
it => it.Partnumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
|
||||
boardData.OneTimeWarehouseTotal =
|
||||
Context.Queryable<WmOneTimeInventory>().Where(predicate1).Sum(it => it.Quantity)
|
||||
?? 0;
|
||||
@@ -845,16 +1015,24 @@ namespace ZR.Service.mes.qc
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
// GP12合格数
|
||||
boardData.GP12QualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// GP12门把手
|
||||
boardData.GP12DoorknobQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
.Where(predicate3)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// GP12倒车雷达
|
||||
boardData.GP12ParkingSensorQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
.Where(predicateParkingSensor)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.GP12PolishTotal =
|
||||
Context
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
@@ -870,6 +1048,16 @@ namespace ZR.Service.mes.qc
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.BaofeiTotal) ?? 0;
|
||||
|
||||
boardData.GP12QualifiedTotal =
|
||||
boardData.GP12QualifiedTotal - boardData.GP12ParkingSensorQualifiedTotal;
|
||||
if (boardData.GP12RequireTotal > 0)
|
||||
{
|
||||
double passRate =
|
||||
((double)boardData.GP12QualifiedTotal / boardData.GP12RequireTotal) * 100;
|
||||
boardData.GP12QualifiePassRate = passRate.ToString("0") + "%";
|
||||
}
|
||||
|
||||
return boardData;
|
||||
}
|
||||
|
||||
@@ -926,6 +1114,66 @@ namespace ZR.Service.mes.qc
|
||||
return boardData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取二次统计数据
|
||||
/// </summary>
|
||||
/// <param name="boardData"></param>
|
||||
/// <param name="query"></param>
|
||||
/// <returns></returns>
|
||||
public QcProductAndPolishAndOneTimeFqcBoardDto GetStatisticsTotal(
|
||||
QcProductAndPolishAndOneTimeFqcBoardDto boardData,
|
||||
QcProductAndPolishAndOneTimeFqcBoardQuery query
|
||||
)
|
||||
{
|
||||
var predicate1 = Expressionable
|
||||
.Create<WmPolishQualityStatistics>()
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
it => it.Partnumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.And(it => it.Type == 1)
|
||||
.ToExpression();
|
||||
var predicate2 = Expressionable
|
||||
.Create<WmGp12QualityStatistics>()
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(query.Partnumber),
|
||||
it => it.Partnumber == query.Partnumber
|
||||
)
|
||||
.AndIF(
|
||||
query.StartTime != null,
|
||||
it => it.StartTime >= query.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
query.EndTime != null,
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.And(it=>it.Type == 1)
|
||||
.ToExpression();
|
||||
boardData.StatisticsPolishQualifiedTotal =
|
||||
(
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(predicate1)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0
|
||||
)
|
||||
+ (
|
||||
Context
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0
|
||||
);
|
||||
boardData.StatisticsProductAndPolishQualifiedTotal = boardData.StatisticsPolishQualifiedTotal + boardData.ProductQualifiedTotal;
|
||||
return boardData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取产线,抛光,一次合格品质量报表看板数据
|
||||
/// </summary>
|
||||
@@ -939,6 +1187,7 @@ namespace ZR.Service.mes.qc
|
||||
result = GetPolishTotal(result, query);
|
||||
result = GetOneTimeTotal(result, query);
|
||||
result = GetFinishProductTotal(result, query);
|
||||
result = GetStatisticsTotal(result, query);
|
||||
result.SandingTotal =
|
||||
result.ProductSandingTotal
|
||||
+ result.PolishSandingTotal
|
||||
@@ -959,7 +1208,20 @@ namespace ZR.Service.mes.qc
|
||||
/// <returns></returns>
|
||||
public bool CheckIsDoorknob(string partnumber)
|
||||
{
|
||||
string[] checkStrArray = { "门把手","面盖","T22", "T26", "A58", "A60", "C01", "B02", "V71", "T1EJ" };
|
||||
string[] checkStrArray =
|
||||
{
|
||||
"门把手",
|
||||
"面盖",
|
||||
"T22",
|
||||
"T26",
|
||||
"A58",
|
||||
"A60",
|
||||
"C01",
|
||||
"B02",
|
||||
"V71",
|
||||
"T1EJ",
|
||||
"倒车雷达"
|
||||
};
|
||||
var isDoorknobCheck = Expressionable.Create<WmMaterial>();
|
||||
foreach (string checkStr in checkStrArray)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user