fix(qc): 添加数据库锁并优化标签查询逻辑

在QcBackEndService中添加事务锁(DbLockType.Wait)防止并发问题
优化标签查询逻辑,添加Take(1)限制查询结果数量
This commit is contained in:
2025-08-31 10:06:04 +08:00
parent e5c52d436b
commit a06cf98732

View File

@@ -701,9 +701,12 @@ namespace ZR.Service.Business
int oldPackageLabelSort = 1; int oldPackageLabelSort = 1;
QcBackEndRecordLabelScan lastPackagelabelInfo = Context QcBackEndRecordLabelScan lastPackagelabelInfo = Context
.Queryable<QcBackEndRecordLabelScan>() .Queryable<QcBackEndRecordLabelScan>()
// TODO 加锁
.TranLock(DbLockType.Wait)
.Where(it => it.WorkOrder == data.WorkOrder) .Where(it => it.WorkOrder == data.WorkOrder)
.Where(it => it.LabelType == 1) .Where(it => it.LabelType == 1)
.OrderByDescending(it => it.LabelSort) .OrderByDescending(it => it.LabelSort)
.Take(1)
.First(); .First();
if (lastPackagelabelInfo == null) if (lastPackagelabelInfo == null)
{ {
@@ -818,9 +821,12 @@ namespace ZR.Service.Business
int oldInnerLabelSort = 0; int oldInnerLabelSort = 0;
QcBackEndRecordLabelScan labelScan = Context QcBackEndRecordLabelScan labelScan = Context
.Queryable<QcBackEndRecordLabelScan>() .Queryable<QcBackEndRecordLabelScan>()
// TODO 加锁
.TranLock(DbLockType.Wait)
.Where(it => it.WorkOrder == data.WorkOrder) .Where(it => it.WorkOrder == data.WorkOrder)
.Where(it => it.LabelType == 2) .Where(it => it.LabelType == 2)
.OrderByDescending(it => it.LabelSort) .OrderByDescending(it => it.LabelSort)
.Take(1)
.First(); .First();
if (labelScan != null) if (labelScan != null)
{ {