diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/FQC/CommonFQCController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/FQC/CommonFQCController.cs
index 05c8552a..a84b1bb7 100644
--- a/ZR.Admin.WebApi/Controllers/mes/qc/FQC/CommonFQCController.cs
+++ b/ZR.Admin.WebApi/Controllers/mes/qc/FQC/CommonFQCController.cs
@@ -147,5 +147,24 @@ namespace ZR.Admin.WebApi.Controllers.mes.qc.IQC
return ToResponse(new ApiResult(500, ex.Message, ex.Message));
}
}
+
+ ///
+ /// 零件号是否是门把手测试
+ ///
+ /// 零件号
+ /// true false
+ [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));
+ }
+ }
}
}
diff --git a/ZR.Model/MES/qc/DTO/QcCommonFqcDto.cs b/ZR.Model/MES/qc/DTO/QcCommonFqcDto.cs
index f9841f52..9126ae4c 100644
--- a/ZR.Model/MES/qc/DTO/QcCommonFqcDto.cs
+++ b/ZR.Model/MES/qc/DTO/QcCommonFqcDto.cs
@@ -220,9 +220,9 @@
public int ProductQualifiedTotal { get; set; } = 0;
///
- /// 产线一次合格总数(不包含门把手)
+ /// 产线门把手合格数
///
- public int ProductQualifiedNotDoorknobTotal { get; set; } = 0;
+ public int ProductDoorknobQualifiedTotal { get; set; } = 0;
///
/// 产线抛光总数
@@ -254,6 +254,11 @@
///
public int PolishQualifiedTotal { get; set; } = 0;
+ ///
+ /// 抛光门把手合格总数
+ ///
+ public int PolishDoorknobQualifiedTotal { get; set; } = 0;
+
///
/// 抛光打磨总数
///
@@ -275,9 +280,9 @@
public int AfterPolishQualifiedTotal { get; set; } = 0;
///
- /// 后道检验一次合格总数 (不包含门把手)
+ /// 后道检验门把手合格数
///
- public int AfterPolishQualifiedNotDoorknobTotal { get; set; } = 0;
+ public int AfterPolishDoorknobQualifiedTotal { get; set; } = 0;
///
/// 后道检验抛光总数
@@ -309,6 +314,11 @@
///
public int GP12QualifiedTotal { get; set; } = 0;
+ ///
+ /// 一次合格品GP12门把手数(需要清理)
+ ///
+ public int GP12DoorknobQualifiedTotal { get; set; } = 0;
+
///
/// 一次合格品GP12检验抛光总数
///
diff --git a/ZR.Service/mes/qc/CommonFQCService.cs b/ZR.Service/mes/qc/CommonFQCService.cs
index 203155c2..c5ddb282 100644
--- a/ZR.Service/mes/qc/CommonFQCService.cs
+++ b/ZR.Service/mes/qc/CommonFQCService.cs
@@ -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();
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 DoorknobPartNumberList = Context
.Queryable()
.Where(DoorknobPartNumberCheck.ToExpression())
@@ -592,13 +591,11 @@ namespace ZR.Service.mes.qc
.Queryable()
.Where(predicate1)
.Sum(it => it.QualifiedNumber) ?? 0;
- boardData.ProductQualifiedNotDoorknobTotal =
- boardData.ProductQualifiedTotal
- - Context
- .Queryable()
- .Where(predicate3)
- .Sum(it => it.QualifiedNumber)
- ?? 0;
+ boardData.ProductDoorknobQualifiedTotal =
+ Context
+ .Queryable()
+ .Where(predicate3)
+ .Sum(it => it.QualifiedNumber) ?? 0;
boardData.ProductPolishTotal =
Context
.Queryable()
@@ -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();
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 DoorknobPartNumberList = Context
.Queryable()
.Where(DoorknobPartNumberCheck.ToExpression())
@@ -700,6 +696,22 @@ namespace ZR.Service.mes.qc
it => it.StartTime <= query.EndTime.Value.ToLocalTime()
)
.ToExpression();
+ var predicate4 = Expressionable
+ .Create()
+ .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()
@@ -716,6 +728,11 @@ namespace ZR.Service.mes.qc
.Queryable()
.Where(predicate1)
.Sum(it => it.QualifiedNumber) ?? 0;
+ boardData.PolishDoorknobQualifiedTotal =
+ Context
+ .Queryable()
+ .Where(predicate4)
+ .Sum(it => it.QualifiedNumber) ?? 0;
boardData.PolishSandingTotal =
Context
.Queryable()
@@ -737,13 +754,11 @@ namespace ZR.Service.mes.qc
.Queryable()
.Where(predicate2)
.Sum(it => it.QualifiedNumber) ?? 0;
- boardData.AfterPolishQualifiedNotDoorknobTotal =
- boardData.AfterPolishQualifiedTotal
- - Context
- .Queryable()
- .Where(predicate3)
- .Sum(it => it.QualifiedNumber)
- ?? 0;
+ boardData.AfterPolishDoorknobQualifiedTotal =
+ Context
+ .Queryable()
+ .Where(predicate3)
+ .Sum(it => it.QualifiedNumber) ?? 0;
boardData.AfterPolishPolishTotal =
Context
.Queryable()
@@ -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();
+ foreach (string checkStr in checkStrArray)
+ {
+ DoorknobPartNumberCheck.Or(it => it.Description.Contains(checkStr));
+ }
+ ;
+ DoorknobPartNumberCheck
+ .And(it => it.Type == 1)
+ .And(it => it.Status == 1);
+ List DoorknobPartNumberList = Context
+ .Queryable()
+ .Where(DoorknobPartNumberCheck.ToExpression())
+ .Select(it => it.Partnumber)
+ .ToList();
+ var predicate3 = Expressionable
+ .Create()
+ .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().Where(predicate1).Sum(it => it.Quantity)
?? 0;
@@ -804,6 +850,11 @@ namespace ZR.Service.mes.qc
.Queryable()
.Where(predicate2)
.Sum(it => it.QualifiedNumber) ?? 0;
+ boardData.GP12DoorknobQualifiedTotal =
+ Context
+ .Queryable()
+ .Where(predicate3)
+ .Sum(it => it.QualifiedNumber) ?? 0;
boardData.GP12PolishTotal =
Context
.Queryable()
@@ -901,5 +952,25 @@ namespace ZR.Service.mes.qc
result.UpdatedTime = DateTime.Now.ToLocalTime();
return result;
}
+
+ ///
+ /// 检查零件号是否是门把手
+ ///
+ ///
+ public bool CheckIsDoorknob(string partnumber)
+ {
+ string[] checkStrArray = { "门把手","面盖","T22", "T26", "A58", "A60", "C01", "B02", "V71", "T1EJ" };
+ var isDoorknobCheck = Expressionable.Create();
+ 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().Where(isDoorknobCheck.ToExpression()).Any();
+ }
}
}
diff --git a/ZR.Service/mes/qc/FirstFQCService.cs b/ZR.Service/mes/qc/FirstFQCService.cs
index 095783d5..21104e22 100644
--- a/ZR.Service/mes/qc/FirstFQCService.cs
+++ b/ZR.Service/mes/qc/FirstFQCService.cs
@@ -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()
.Where(isDoorknobCheck.ToExpression())
diff --git a/ZR.Service/mes/qc/IService/ICommonFQCService.cs b/ZR.Service/mes/qc/IService/ICommonFQCService.cs
index 4a0b5444..98c5b1a4 100644
--- a/ZR.Service/mes/qc/IService/ICommonFQCService.cs
+++ b/ZR.Service/mes/qc/IService/ICommonFQCService.cs
@@ -46,5 +46,12 @@ namespace ZR.Service.mes.qc.IService
///
public QcProductAndPolishAndOneTimeFqcBoardDto GetProductAndPolishAndOneTimeFqcBoardData(QcProductAndPolishAndOneTimeFqcBoardQuery query);
+ ///
+ /// 检查零件号是否是门把手
+ ///
+ ///
+ ///
+ public bool CheckIsDoorknob(string partnumber);
+
}
}
diff --git a/ZR.Service/mes/wms/WmPolishQualityStatisticsService.cs b/ZR.Service/mes/wms/WmPolishQualityStatisticsService.cs
index 01587dfe..af1b68ae 100644
--- a/ZR.Service/mes/wms/WmPolishQualityStatisticsService.cs
+++ b/ZR.Service/mes/wms/WmPolishQualityStatisticsService.cs
@@ -276,7 +276,7 @@ namespace ZR.Service.mes.wms
///
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();
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().Where(isDoorknobCheck.ToExpression()).Any();
}
}