fix(qc): 添加数据库锁并优化标签查询逻辑
在QcBackEndService中添加事务锁(DbLockType.Wait)防止并发问题 优化标签查询逻辑,添加Take(1)限制查询结果数量
This commit is contained in:
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user