后道标签扫码零件号校验修正

This commit is contained in:
2025-05-30 14:17:51 +08:00
parent 85fa785c4f
commit f642214f66
2 changed files with 42 additions and 16 deletions

View File

@@ -671,9 +671,18 @@ namespace ZR.Service.Business
Context.Ado.BeginTran(); Context.Ado.BeginTran();
DateTime nowTime = DateTime.Now; DateTime nowTime = DateTime.Now;
// 标签防错 (零件号) // 标签防错 (零件号)
string partNumber = DoAnalyzePartnumber(data.Label); QcBackEndServiceWorkorder workorderInfo = Context
.Queryable<QcBackEndServiceWorkorder>()
.Where(it => it.WorkOrder == data.WorkOrder)
.First();
if(workorderInfo == null)
{
Context.Ado.RollbackTran();
return "工单号不存在!";
}
// 内外标签零件号不一致 // 内外标签零件号不一致
if (!partNumber.Contains(data.PartNumber)) string partnumber = DoAnalyzePartnumber(data.Label);
if (!(workorderInfo.PartNumber == partnumber))
{ {
Context.Ado.RollbackTran(); Context.Ado.RollbackTran();
return "箱标签零件号与工单零件号不一致!"; return "箱标签零件号与工单零件号不一致!";
@@ -747,13 +756,22 @@ namespace ZR.Service.Business
{ {
Context.Ado.BeginTran(); Context.Ado.BeginTran();
DateTime nowTime = DateTime.Now; DateTime nowTime = DateTime.Now;
// 标签防错 内标签零件号) // 标签防错 (零件号)
string partNumber = DoAnalyzePartnumber(data.Label); QcBackEndServiceWorkorder workorderInfo = Context
// 内外标签零件号不一致 .Queryable<QcBackEndServiceWorkorder>()
if (!partNumber.Contains(data.PartNumber)) .Where(it => it.WorkOrder == data.WorkOrder)
.First();
if (workorderInfo == null)
{ {
Context.Ado.RollbackTran(); Context.Ado.RollbackTran();
return "内标签零件号与工单零件号不一致!"; return "工单号不存在!";
}
// 内外标签零件号不一致
string partnumber = DoAnalyzePartnumber(data.Label);
if (!(workorderInfo.PartNumber == partnumber))
{
Context.Ado.RollbackTran();
return "产品标签零件号与工单零件号不一致!";
} }
bool hasAny = Context bool hasAny = Context
.Queryable<QcBackEndRecordLabelScan>() .Queryable<QcBackEndRecordLabelScan>()
@@ -964,7 +982,7 @@ namespace ZR.Service.Business
_logger.LogInformation($"发送后道外箱标签打印成功:{topic}"); _logger.LogInformation($"发送后道外箱标签打印成功:{topic}");
// 添加打印记录 // 添加打印记录
await AddBackendLabelPrintRecordAsync(newLabelScran, mqttEventDto, maxPackage); await AddBackendLabelPrintRecordAsync(mqttEventDto, maxPackage);
} }
catch (JsonException ex) catch (JsonException ex)
{ {
@@ -982,7 +1000,6 @@ namespace ZR.Service.Business
/// 异步添加后道箱标签打印记录 /// 异步添加后道箱标签打印记录
/// </summary> /// </summary>
private async Task AddBackendLabelPrintRecordAsync( private async Task AddBackendLabelPrintRecordAsync(
QcBackEndRecordLabelScan newLabelScran,
QcBackEndPrintMqttEventDto labelScan, QcBackEndPrintMqttEventDto labelScan,
int maxPackage int maxPackage
) )
@@ -1004,7 +1021,8 @@ namespace ZR.Service.Business
int oldPackageLabelSort = 1; int oldPackageLabelSort = 1;
QcBackendRecordLabelPrint lastPackagelabelInfo = Context QcBackendRecordLabelPrint lastPackagelabelInfo = Context
.Queryable<QcBackendRecordLabelPrint>() .Queryable<QcBackendRecordLabelPrint>()
.Where(it => it.WorkOrder == newLabelScran.WorkOrder) .Where(it => it.PartNumber == labelScan.PartNumber)
.Where(it => it.BatchCode.Contains(batchCode))
.Where(it => it.LabelType == 1) .Where(it => it.LabelType == 1)
.OrderByDescending(it => it.SerialNumber) .OrderByDescending(it => it.SerialNumber)
.First(); .First();
@@ -1022,7 +1040,7 @@ namespace ZR.Service.Business
Id = SnowFlakeSingle.instance.NextId().ToString(), Id = SnowFlakeSingle.instance.NextId().ToString(),
MachineCode = labelScan.SiteNo ?? "未知站点", MachineCode = labelScan.SiteNo ?? "未知站点",
LabelCode = labelCode, LabelCode = labelCode,
WorkOrder = newLabelScran.WorkOrder ?? "未知工单", WorkOrder = labelScan.WorkOrder ?? "未知工单",
PartNumber = labelScan.PartNumber ?? "未知零件号", PartNumber = labelScan.PartNumber ?? "未知零件号",
Description = description, Description = description,
Team = labelScan.Team ?? "未知班组", Team = labelScan.Team ?? "未知班组",

View File

@@ -633,12 +633,20 @@ namespace ZR.Service.Business
public string ScanInnerLabel(QcGp12LabelScanDto data) public string ScanInnerLabel(QcGp12LabelScanDto data)
{ {
DateTime nowTime = DateTime.Now; DateTime nowTime = DateTime.Now;
// 标签防错 内标签零件号) // 标签防错 (零件号)
string partNumber = DoAnalyzePartnumber(data.Label); QcGp12ServiceWorkorder workorderInfo = Context
// 内标签包含外标签 .Queryable<QcGp12ServiceWorkorder>()
if (!partNumber.Contains(data.PartNumber)) .Where(it => it.WorkOrder == data.WorkOrder)
.First();
if (workorderInfo == null)
{ {
return "内标签零件号与外箱标签不一致!"; return "工单号不存在!";
}
// 内外标签零件号不一致
string partnumber = DoAnalyzePartnumber(data.Label);
if (!(workorderInfo.PartNumber == partnumber))
{
return "产品标签零件号与工单零件号不一致!";
} }
bool hasAny = Context bool hasAny = Context
.Queryable<QcGp12RecordLabelScan>() .Queryable<QcGp12RecordLabelScan>()