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