看板数据优化
This commit is contained in:
@@ -147,5 +147,24 @@ namespace ZR.Admin.WebApi.Controllers.mes.qc.IQC
|
|||||||
return ToResponse(new ApiResult(500, ex.Message, ex.Message));
|
return ToResponse(new ApiResult(500, ex.Message, ex.Message));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 零件号是否是门把手测试
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="partnumber">零件号</param>
|
||||||
|
/// <returns>true false</returns>
|
||||||
|
[HttpGet("checkIsDoorknob")]
|
||||||
|
public IActionResult CheckIsDoorknob(string partnumber)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var result = _commonFQCService.CheckIsDoorknob(partnumber);
|
||||||
|
return ToResponse(new ApiResult(200, "ok", result));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return ToResponse(new ApiResult(500, ex.Message, ex.Message));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -220,9 +220,9 @@
|
|||||||
public int ProductQualifiedTotal { get; set; } = 0;
|
public int ProductQualifiedTotal { get; set; } = 0;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 产线一次合格总数(不包含门把手)
|
/// 产线门把手合格数
|
||||||
///</summary>
|
///</summary>
|
||||||
public int ProductQualifiedNotDoorknobTotal { get; set; } = 0;
|
public int ProductDoorknobQualifiedTotal { get; set; } = 0;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 产线抛光总数
|
/// 产线抛光总数
|
||||||
@@ -254,6 +254,11 @@
|
|||||||
///</summary>
|
///</summary>
|
||||||
public int PolishQualifiedTotal { get; set; } = 0;
|
public int PolishQualifiedTotal { get; set; } = 0;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 抛光门把手合格总数
|
||||||
|
///</summary>
|
||||||
|
public int PolishDoorknobQualifiedTotal { get; set; } = 0;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 抛光打磨总数
|
/// 抛光打磨总数
|
||||||
///</summary>
|
///</summary>
|
||||||
@@ -275,9 +280,9 @@
|
|||||||
public int AfterPolishQualifiedTotal { get; set; } = 0;
|
public int AfterPolishQualifiedTotal { get; set; } = 0;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 后道检验一次合格总数 (不包含门把手)
|
/// 后道检验门把手合格数
|
||||||
///</summary>
|
///</summary>
|
||||||
public int AfterPolishQualifiedNotDoorknobTotal { get; set; } = 0;
|
public int AfterPolishDoorknobQualifiedTotal { get; set; } = 0;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 后道检验抛光总数
|
/// 后道检验抛光总数
|
||||||
@@ -309,6 +314,11 @@
|
|||||||
///</summary>
|
///</summary>
|
||||||
public int GP12QualifiedTotal { get; set; } = 0;
|
public int GP12QualifiedTotal { get; set; } = 0;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 一次合格品GP12门把手数(需要清理)
|
||||||
|
///</summary>
|
||||||
|
public int GP12DoorknobQualifiedTotal { get; set; } = 0;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 一次合格品GP12检验抛光总数
|
/// 一次合格品GP12检验抛光总数
|
||||||
///</summary>
|
///</summary>
|
||||||
|
|||||||
@@ -550,7 +550,7 @@ namespace ZR.Service.mes.qc
|
|||||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||||
)
|
)
|
||||||
.ToExpression();
|
.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>();
|
var DoorknobPartNumberCheck = Expressionable.Create<WmMaterial>();
|
||||||
foreach (string checkStr in checkStrArray)
|
foreach (string checkStr in checkStrArray)
|
||||||
{
|
{
|
||||||
@@ -559,8 +559,7 @@ namespace ZR.Service.mes.qc
|
|||||||
;
|
;
|
||||||
DoorknobPartNumberCheck
|
DoorknobPartNumberCheck
|
||||||
.And(it => it.Type == 1)
|
.And(it => it.Type == 1)
|
||||||
.And(it => it.Status == 1)
|
.And(it => it.Status == 1);
|
||||||
.And(it => it.Description.Contains("门把手"));
|
|
||||||
List<string> DoorknobPartNumberList = Context
|
List<string> DoorknobPartNumberList = Context
|
||||||
.Queryable<WmMaterial>()
|
.Queryable<WmMaterial>()
|
||||||
.Where(DoorknobPartNumberCheck.ToExpression())
|
.Where(DoorknobPartNumberCheck.ToExpression())
|
||||||
@@ -592,13 +591,11 @@ namespace ZR.Service.mes.qc
|
|||||||
.Queryable<QcQualityStatisticsTotal>()
|
.Queryable<QcQualityStatisticsTotal>()
|
||||||
.Where(predicate1)
|
.Where(predicate1)
|
||||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||||
boardData.ProductQualifiedNotDoorknobTotal =
|
boardData.ProductDoorknobQualifiedTotal =
|
||||||
boardData.ProductQualifiedTotal
|
Context
|
||||||
- Context
|
.Queryable<QcQualityStatisticsTotal>()
|
||||||
.Queryable<QcQualityStatisticsTotal>()
|
.Where(predicate3)
|
||||||
.Where(predicate3)
|
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||||
.Sum(it => it.QualifiedNumber)
|
|
||||||
?? 0;
|
|
||||||
boardData.ProductPolishTotal =
|
boardData.ProductPolishTotal =
|
||||||
Context
|
Context
|
||||||
.Queryable<QcQualityStatisticsFirst>()
|
.Queryable<QcQualityStatisticsFirst>()
|
||||||
@@ -618,7 +615,7 @@ namespace ZR.Service.mes.qc
|
|||||||
// 除三优化
|
// 除三优化
|
||||||
boardData.ProductRequireTotal = boardData.ProductRequireTotal / 3;
|
boardData.ProductRequireTotal = boardData.ProductRequireTotal / 3;
|
||||||
boardData.ProductQualifiedTotal = boardData.ProductQualifiedTotal / 3;
|
boardData.ProductQualifiedTotal = boardData.ProductQualifiedTotal / 3;
|
||||||
boardData.ProductQualifiedNotDoorknobTotal = boardData.ProductQualifiedNotDoorknobTotal / 3;
|
boardData.ProductDoorknobQualifiedTotal = boardData.ProductDoorknobQualifiedTotal / 3;
|
||||||
boardData.ProductPolishTotal = boardData.ProductPolishTotal / 3;
|
boardData.ProductPolishTotal = boardData.ProductPolishTotal / 3;
|
||||||
boardData.ProductSandingTotal = boardData.ProductSandingTotal / 3;
|
boardData.ProductSandingTotal = boardData.ProductSandingTotal / 3;
|
||||||
boardData.ProductDiscardTotal = boardData.ProductDiscardTotal / 3;
|
boardData.ProductDiscardTotal = boardData.ProductDiscardTotal / 3;
|
||||||
@@ -668,7 +665,7 @@ namespace ZR.Service.mes.qc
|
|||||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||||
)
|
)
|
||||||
.ToExpression();
|
.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>();
|
var DoorknobPartNumberCheck = Expressionable.Create<WmMaterial>();
|
||||||
foreach (string checkStr in checkStrArray)
|
foreach (string checkStr in checkStrArray)
|
||||||
{
|
{
|
||||||
@@ -677,8 +674,7 @@ namespace ZR.Service.mes.qc
|
|||||||
;
|
;
|
||||||
DoorknobPartNumberCheck
|
DoorknobPartNumberCheck
|
||||||
.And(it => it.Type == 1)
|
.And(it => it.Type == 1)
|
||||||
.And(it => it.Status == 1)
|
.And(it => it.Status == 1);
|
||||||
.And(it => it.Description.Contains("门把手"));
|
|
||||||
List<string> DoorknobPartNumberList = Context
|
List<string> DoorknobPartNumberList = Context
|
||||||
.Queryable<WmMaterial>()
|
.Queryable<WmMaterial>()
|
||||||
.Where(DoorknobPartNumberCheck.ToExpression())
|
.Where(DoorknobPartNumberCheck.ToExpression())
|
||||||
@@ -700,6 +696,22 @@ namespace ZR.Service.mes.qc
|
|||||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||||
)
|
)
|
||||||
.ToExpression();
|
.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 =
|
boardData.PolishWarehouseTotal =
|
||||||
Context
|
Context
|
||||||
.Queryable<WmPolishInventory>()
|
.Queryable<WmPolishInventory>()
|
||||||
@@ -716,6 +728,11 @@ namespace ZR.Service.mes.qc
|
|||||||
.Queryable<WmPolishWorkQualityStatistics>()
|
.Queryable<WmPolishWorkQualityStatistics>()
|
||||||
.Where(predicate1)
|
.Where(predicate1)
|
||||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||||
|
boardData.PolishDoorknobQualifiedTotal =
|
||||||
|
Context
|
||||||
|
.Queryable<WmPolishWorkQualityStatistics>()
|
||||||
|
.Where(predicate4)
|
||||||
|
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||||
boardData.PolishSandingTotal =
|
boardData.PolishSandingTotal =
|
||||||
Context
|
Context
|
||||||
.Queryable<WmPolishWorkQualityStatistics>()
|
.Queryable<WmPolishWorkQualityStatistics>()
|
||||||
@@ -737,13 +754,11 @@ namespace ZR.Service.mes.qc
|
|||||||
.Queryable<WmPolishQualityStatistics>()
|
.Queryable<WmPolishQualityStatistics>()
|
||||||
.Where(predicate2)
|
.Where(predicate2)
|
||||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||||
boardData.AfterPolishQualifiedNotDoorknobTotal =
|
boardData.AfterPolishDoorknobQualifiedTotal =
|
||||||
boardData.AfterPolishQualifiedTotal
|
Context
|
||||||
- Context
|
.Queryable<WmPolishQualityStatistics>()
|
||||||
.Queryable<WmPolishQualityStatistics>()
|
.Where(predicate3)
|
||||||
.Where(predicate3)
|
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||||
.Sum(it => it.QualifiedNumber)
|
|
||||||
?? 0;
|
|
||||||
boardData.AfterPolishPolishTotal =
|
boardData.AfterPolishPolishTotal =
|
||||||
Context
|
Context
|
||||||
.Queryable<WmPolishQualityStatistics>()
|
.Queryable<WmPolishQualityStatistics>()
|
||||||
@@ -790,6 +805,37 @@ namespace ZR.Service.mes.qc
|
|||||||
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
|
||||||
)
|
)
|
||||||
.ToExpression();
|
.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 =
|
boardData.OneTimeWarehouseTotal =
|
||||||
Context.Queryable<WmOneTimeInventory>().Where(predicate1).Sum(it => it.Quantity)
|
Context.Queryable<WmOneTimeInventory>().Where(predicate1).Sum(it => it.Quantity)
|
||||||
?? 0;
|
?? 0;
|
||||||
@@ -804,6 +850,11 @@ namespace ZR.Service.mes.qc
|
|||||||
.Queryable<WmGp12QualityStatistics>()
|
.Queryable<WmGp12QualityStatistics>()
|
||||||
.Where(predicate2)
|
.Where(predicate2)
|
||||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||||
|
boardData.GP12DoorknobQualifiedTotal =
|
||||||
|
Context
|
||||||
|
.Queryable<WmGp12QualityStatistics>()
|
||||||
|
.Where(predicate3)
|
||||||
|
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||||
boardData.GP12PolishTotal =
|
boardData.GP12PolishTotal =
|
||||||
Context
|
Context
|
||||||
.Queryable<WmGp12QualityStatistics>()
|
.Queryable<WmGp12QualityStatistics>()
|
||||||
@@ -901,5 +952,25 @@ namespace ZR.Service.mes.qc
|
|||||||
result.UpdatedTime = DateTime.Now.ToLocalTime();
|
result.UpdatedTime = DateTime.Now.ToLocalTime();
|
||||||
return result;
|
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 =
|
string[] checkStrArray =
|
||||||
{
|
{
|
||||||
|
"门把手","面盖",
|
||||||
"T22",
|
"T22",
|
||||||
"T26",
|
"T26",
|
||||||
"A58",
|
"A58",
|
||||||
@@ -3586,8 +3587,7 @@ namespace ZR.Service.mes.qc
|
|||||||
isDoorknobCheck
|
isDoorknobCheck
|
||||||
.And(it => it.Partnumber == workorder_item.FinishedPartNumber)
|
.And(it => it.Partnumber == workorder_item.FinishedPartNumber)
|
||||||
.And(it => it.Type == 1)
|
.And(it => it.Type == 1)
|
||||||
.And(it => it.Status == 1)
|
.And(it => it.Status == 1);
|
||||||
.And(it => it.Description.Contains("门把手"));
|
|
||||||
bool isDoorknob = Context
|
bool isDoorknob = Context
|
||||||
.Queryable<WmMaterial>()
|
.Queryable<WmMaterial>()
|
||||||
.Where(isDoorknobCheck.ToExpression())
|
.Where(isDoorknobCheck.ToExpression())
|
||||||
|
|||||||
@@ -46,5 +46,12 @@ namespace ZR.Service.mes.qc.IService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public QcProductAndPolishAndOneTimeFqcBoardDto GetProductAndPolishAndOneTimeFqcBoardData(QcProductAndPolishAndOneTimeFqcBoardQuery query);
|
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>
|
/// <returns></returns>
|
||||||
public bool CheckIsDoorknob(string partnumber)
|
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>();
|
var isDoorknobCheck = Expressionable.Create<WmMaterial>();
|
||||||
foreach (string checkStr in checkStrArray)
|
foreach (string checkStr in checkStrArray)
|
||||||
{
|
{
|
||||||
@@ -286,8 +286,7 @@ namespace ZR.Service.mes.wms
|
|||||||
isDoorknobCheck
|
isDoorknobCheck
|
||||||
.And(it => it.Partnumber == partnumber)
|
.And(it => it.Partnumber == partnumber)
|
||||||
.And(it => it.Type == 1)
|
.And(it => it.Type == 1)
|
||||||
.And(it => it.Status == 1)
|
.And(it => it.Status == 1);
|
||||||
.And(it => it.Description.Contains("门把手"));
|
|
||||||
return Context.Queryable<WmMaterial>().Where(isDoorknobCheck.ToExpression()).Any();
|
return Context.Queryable<WmMaterial>().Where(isDoorknobCheck.ToExpression()).Any();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user