diff --git a/src/WMS.Web.Domain/Services/BoxService.cs b/src/WMS.Web.Domain/Services/BoxService.cs index 6488100e..a33f6804 100644 --- a/src/WMS.Web.Domain/Services/BoxService.cs +++ b/src/WMS.Web.Domain/Services/BoxService.cs @@ -50,7 +50,7 @@ namespace WMS.Web.Domain.Services if (list == null || list.Count() <= 0) { DateTime begin = await _erpOpsSyncDateRepositories.Get(ErpOpsSyncType.Ops); - begin = begin.AddYears(-1); + begin = begin.AddMinutes(-10); OpsBoxRequest request = new OpsBoxRequest(begin, DateTime.Now); list = await _opsService.GetBox(request); } diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index e17cce7c..946c9ce5 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -78,6 +78,14 @@ namespace WMS.Web.Domain.Services if (sCount > 0) return Result.ReFailure(ResultCodes.SerialNumbersBoxError); } + else + { + //有原箱的情况下验证序列号和原箱是否一致 + var s = d.Details.SelectMany(s => s.SerialNumbers).ToList(); + var boxCount = serialNumberList.Where(w => s.Contains(w.SerialNumber)).GroupBy(s => s.BoxId).Select(s => s.Key).ToList(); + if (boxCount.Count() > 1 || boxCount[0] != d.SrcBoxId) + return Result.ReFailure(ResultCodes.SerialNumbersSrcBoxError); + } var box = boxs.FirstOrDefault(f => f.BoxId == d.SrcBoxId); //原箱在库存中的话 进行验证 if (box != null) @@ -266,7 +274,7 @@ namespace WMS.Web.Domain.Services var d = dtoList.FirstOrDefault(f => f.DestBoxId == detailClone.BoxId && f.SrcBoxId == s.BoxId); if (d == null) { - d = new SaveChangeBoxRecordRequest(0, detailClone.BoxId); + d = new SaveChangeBoxRecordRequest(s.BoxId, detailClone.BoxId); d.Details.Add(new SaveChangeBoxRecordDetailsRequest(detailClone.MaterialId, 1, s.SerialNumber)); } else @@ -340,7 +348,7 @@ namespace WMS.Web.Domain.Services var d = dtoList.FirstOrDefault(f => f.DestBoxId == detailClone.BoxId && f.SrcBoxId == s.BoxId); if (d == null) { - d = new SaveChangeBoxRecordRequest(0, detailClone.BoxId); + d = new SaveChangeBoxRecordRequest(s.BoxId, detailClone.BoxId); d.Details.Add(new SaveChangeBoxRecordDetailsRequest(detailClone.MaterialId, 1, s.SerialNumber)); } else diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index db952196..ee5b1df3 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -69,6 +69,7 @@ namespace WMS.Web.Domain.Values public static ValueTuple SerialNumbersNoData = (610000, "序列号不存在"); public static ValueTuple SerialNumbersBoxError = (610002, "序列号已经绑定箱"); + public static ValueTuple SerialNumbersSrcBoxError = (610003, "序列号不在原有箱号内"); public static ValueTuple TakeStockStockError = (610001, "一次不能盘多个仓库"); } }