看板数据优化
This commit is contained in:
@@ -550,7 +550,7 @@ 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)
|
||||
{
|
||||
@@ -559,8 +559,7 @@ namespace ZR.Service.mes.qc
|
||||
;
|
||||
DoorknobPartNumberCheck
|
||||
.And(it => it.Type == 1)
|
||||
.And(it => it.Status == 1)
|
||||
.And(it => it.Description.Contains("门把手"));
|
||||
.And(it => it.Status == 1);
|
||||
List<string> DoorknobPartNumberList = Context
|
||||
.Queryable<WmMaterial>()
|
||||
.Where(DoorknobPartNumberCheck.ToExpression())
|
||||
@@ -592,13 +591,11 @@ namespace ZR.Service.mes.qc
|
||||
.Queryable<QcQualityStatisticsTotal>()
|
||||
.Where(predicate1)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.ProductQualifiedNotDoorknobTotal =
|
||||
boardData.ProductQualifiedTotal
|
||||
- Context
|
||||
.Queryable<QcQualityStatisticsTotal>()
|
||||
.Where(predicate3)
|
||||
.Sum(it => it.QualifiedNumber)
|
||||
?? 0;
|
||||
boardData.ProductDoorknobQualifiedTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsTotal>()
|
||||
.Where(predicate3)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.ProductPolishTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
@@ -618,7 +615,7 @@ namespace ZR.Service.mes.qc
|
||||
// 除三优化
|
||||
boardData.ProductRequireTotal = boardData.ProductRequireTotal / 3;
|
||||
boardData.ProductQualifiedTotal = boardData.ProductQualifiedTotal / 3;
|
||||
boardData.ProductQualifiedNotDoorknobTotal = boardData.ProductQualifiedNotDoorknobTotal / 3;
|
||||
boardData.ProductDoorknobQualifiedTotal = boardData.ProductDoorknobQualifiedTotal / 3;
|
||||
boardData.ProductPolishTotal = boardData.ProductPolishTotal / 3;
|
||||
boardData.ProductSandingTotal = boardData.ProductSandingTotal / 3;
|
||||
boardData.ProductDiscardTotal = boardData.ProductDiscardTotal / 3;
|
||||
@@ -668,7 +665,7 @@ 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)
|
||||
{
|
||||
@@ -677,8 +674,7 @@ namespace ZR.Service.mes.qc
|
||||
;
|
||||
DoorknobPartNumberCheck
|
||||
.And(it => it.Type == 1)
|
||||
.And(it => it.Status == 1)
|
||||
.And(it => it.Description.Contains("门把手"));
|
||||
.And(it => it.Status == 1);
|
||||
List<string> DoorknobPartNumberList = Context
|
||||
.Queryable<WmMaterial>()
|
||||
.Where(DoorknobPartNumberCheck.ToExpression())
|
||||
@@ -700,6 +696,22 @@ namespace ZR.Service.mes.qc
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.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();
|
||||
boardData.PolishWarehouseTotal =
|
||||
Context
|
||||
.Queryable<WmPolishInventory>()
|
||||
@@ -716,6 +728,11 @@ namespace ZR.Service.mes.qc
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.Where(predicate1)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.PolishDoorknobQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.Where(predicate4)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.PolishSandingTotal =
|
||||
Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
@@ -737,13 +754,11 @@ namespace ZR.Service.mes.qc
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.AfterPolishQualifiedNotDoorknobTotal =
|
||||
boardData.AfterPolishQualifiedTotal
|
||||
- Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(predicate3)
|
||||
.Sum(it => it.QualifiedNumber)
|
||||
?? 0;
|
||||
boardData.AfterPolishDoorknobQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(predicate3)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.AfterPolishPolishTotal =
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
@@ -790,6 +805,37 @@ namespace ZR.Service.mes.qc
|
||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||
)
|
||||
.ToExpression();
|
||||
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);
|
||||
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();
|
||||
boardData.OneTimeWarehouseTotal =
|
||||
Context.Queryable<WmOneTimeInventory>().Where(predicate1).Sum(it => it.Quantity)
|
||||
?? 0;
|
||||
@@ -804,6 +850,11 @@ namespace ZR.Service.mes.qc
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
.Where(predicate2)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.GP12DoorknobQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
.Where(predicate3)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
boardData.GP12PolishTotal =
|
||||
Context
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
@@ -901,5 +952,25 @@ namespace ZR.Service.mes.qc
|
||||
result.UpdatedTime = DateTime.Now.ToLocalTime();
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查零件号是否是门把手
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool CheckIsDoorknob(string partnumber)
|
||||
{
|
||||
string[] checkStrArray = { "门把手","面盖","T22", "T26", "A58", "A60", "C01", "B02", "V71", "T1EJ" };
|
||||
var isDoorknobCheck = Expressionable.Create<WmMaterial>();
|
||||
foreach (string checkStr in checkStrArray)
|
||||
{
|
||||
isDoorknobCheck.Or(it => it.Description.Contains(checkStr));
|
||||
}
|
||||
;
|
||||
isDoorknobCheck
|
||||
.And(it => it.Partnumber == partnumber)
|
||||
.And(it => it.Type == 1)
|
||||
.And(it => it.Status == 1);
|
||||
return Context.Queryable<WmMaterial>().Where(isDoorknobCheck.ToExpression()).Any();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3568,6 +3568,7 @@ namespace ZR.Service.mes.qc
|
||||
// 合格品检查是否是门把手,是进入成品库(仅出库),不是进入一次合格品库
|
||||
string[] checkStrArray =
|
||||
{
|
||||
"门把手","面盖",
|
||||
"T22",
|
||||
"T26",
|
||||
"A58",
|
||||
@@ -3586,8 +3587,7 @@ namespace ZR.Service.mes.qc
|
||||
isDoorknobCheck
|
||||
.And(it => it.Partnumber == workorder_item.FinishedPartNumber)
|
||||
.And(it => it.Type == 1)
|
||||
.And(it => it.Status == 1)
|
||||
.And(it => it.Description.Contains("门把手"));
|
||||
.And(it => it.Status == 1);
|
||||
bool isDoorknob = Context
|
||||
.Queryable<WmMaterial>()
|
||||
.Where(isDoorknobCheck.ToExpression())
|
||||
|
||||
@@ -46,5 +46,12 @@ namespace ZR.Service.mes.qc.IService
|
||||
/// <returns></returns>
|
||||
public QcProductAndPolishAndOneTimeFqcBoardDto GetProductAndPolishAndOneTimeFqcBoardData(QcProductAndPolishAndOneTimeFqcBoardQuery query);
|
||||
|
||||
/// <summary>
|
||||
/// 检查零件号是否是门把手
|
||||
/// </summary>
|
||||
/// <param name="partnumber"></param>
|
||||
/// <returns></returns>
|
||||
public bool CheckIsDoorknob(string partnumber);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,7 +276,7 @@ namespace ZR.Service.mes.wms
|
||||
/// <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)
|
||||
{
|
||||
@@ -286,8 +286,7 @@ namespace ZR.Service.mes.wms
|
||||
isDoorknobCheck
|
||||
.And(it => it.Partnumber == partnumber)
|
||||
.And(it => it.Type == 1)
|
||||
.And(it => it.Status == 1)
|
||||
.And(it => it.Description.Contains("门把手"));
|
||||
.And(it => it.Status == 1);
|
||||
return Context.Queryable<WmMaterial>().Where(isDoorknobCheck.ToExpression()).Any();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user