diff --git a/src/WMS.Web.Domain/Services/BoxService.cs b/src/WMS.Web.Domain/Services/BoxService.cs index a33f6804..88142cc0 100644 --- a/src/WMS.Web.Domain/Services/BoxService.cs +++ b/src/WMS.Web.Domain/Services/BoxService.cs @@ -64,7 +64,8 @@ namespace WMS.Web.Domain.Services list.Remove(box); } var boxs = _mapper.Map>(list); - + var sns = list.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).Select(s => s.SerialNumber).ToList(); + var sEntityList = await _serialNumbersRepositories.GetEntityList(sns); IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); bool isRollback = false; bool isSuccess = true; @@ -83,6 +84,10 @@ namespace WMS.Web.Domain.Services var detail = ops_box.Details.FirstOrDefault(f => f.SerialNumbers.Select(s => s.SerialNumber).Contains(sn.SerialNumber)); if (detail == null) continue; + //存在就不处理 + var sn_s = sEntityList.FirstOrDefault(f => f.SerialNumber.Equals(sn.SerialNumber)); + if (sn_s != null) continue; + var opsSerial = list.FirstOrDefault(f => f.OpsBoxId == b.OpsBoxId).Details .SelectMany(s => s.SerialNumbers) .FirstOrDefault(s => s.SerialNumber.Equals(sn.SerialNumber));