diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 06879f9e..b067329d 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 5911f79c..132599be 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -145,6 +145,11 @@ 序列号集 + + + 第二个序列号集 + + 备注 @@ -746,6 +751,11 @@ 序列号 + + + 第二个序列号 + + 所有枚举信息 @@ -6135,6 +6145,11 @@ 序列号集 + + + 第二个序列号集 + + 箱长 @@ -6896,6 +6911,11 @@ 序列号 + + + 第二个序列号 + + 备注 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 77847cee..2c741d43 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -113,6 +113,11 @@ 序列号集 + + + 序列号集 + + 备注 diff --git a/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs b/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs index c4d0648b..51e38e4d 100644 --- a/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs +++ b/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs @@ -39,6 +39,13 @@ namespace WMS.Web.Core.Dto.BackRecord /// [Required(ErrorMessage = "序列号不能为空")] public List SerialNumbers { get; set; } = new List(); + + /// + /// 第二个序列号集 + /// + //[Required(ErrorMessage = "序列号不能为空")] + public List TwoSerialNumbers { get; set; } = new List(); + /// /// 备注 /// diff --git a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs index ec5c3b45..453bb16a 100644 --- a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs +++ b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs @@ -75,5 +75,11 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord /// 序列号 /// public List SerialNumbers { get; set; } = new List(); + + /// + /// 第二个序列号 + /// + public List TwoSerialNumbers { get; set; } = new List(); + } } diff --git a/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs b/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs index f967a69a..869eec13 100644 --- a/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs +++ b/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs @@ -53,6 +53,11 @@ namespace WMS.Web.Core.Dto.OutStock /// 序列号集 /// public List SerialNumbers { get; set; } = new List(); + /// + /// 第二个序列号集 + /// + public List TwoSerialNumbers { get; set; } = new List(); + /// /// 箱长 /// diff --git a/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs b/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs index 1d01ea48..c319295a 100644 --- a/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs +++ b/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs @@ -64,6 +64,11 @@ namespace WMS.Web.Core.Dto.TakeStock /// 序列号 /// public List SerialNumbers { get; set; } = new List(); + /// + /// 第二个序列号 + /// + public List TwoSerialNumbers { get; set; } = new List(); + /// /// 备注 /// diff --git a/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs b/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs index 129cd0d8..cb13e535 100644 --- a/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs +++ b/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs @@ -40,6 +40,12 @@ namespace WMS.Web.Domain.Entitys /// 序列号集 /// public List SerialNumbers { get; set; } = new List(); + /// + /// 序列号集 + /// + [NotMapped] + public List TwoSerialNumbers { get; set; } = new List(); + /// /// 备注 /// diff --git a/src/WMS.Web.Domain/Entitys/Box.cs b/src/WMS.Web.Domain/Entitys/Box.cs index 569219c6..bba0f4c0 100644 --- a/src/WMS.Web.Domain/Entitys/Box.cs +++ b/src/WMS.Web.Domain/Entitys/Box.cs @@ -66,13 +66,20 @@ namespace WMS.Web.Domain.Entitys public List Details { get; set; } = new List(); //移出 - public Result Out(List<(string MaterialNumber, decimal Qty, List SerialNumbers)> list) + public Result Out(List<(string MaterialNumber, decimal Qty, List SerialNumbers)> list,string isNotCount) { foreach (var l in list) { + var d = this.Details.FirstOrDefault(f => f.MaterialNumber == l.MaterialNumber); if (d == null) return Result.ReFailure(ResultCodes.BoxMateriaNoData); - d.Qty = d.Qty - l.Qty; + if(isNotCount == "1") + { + } + else + { + d.Qty = d.Qty - l.Qty; + } if (d.Qty <= 0) this.Details.Remove(d); //foreach (var s in l.SerialNumbers) d.SerialNumbers.Remove(s); } @@ -80,7 +87,7 @@ namespace WMS.Web.Domain.Entitys } //移入 - public Result In(List<(string MaterialNumber, decimal Qty, List SerialNumbers)> list) + public Result In(List<(string MaterialNumber, decimal Qty, List SerialNumbers)> list,string isNotCount) { foreach (var l in list) { @@ -95,7 +102,13 @@ namespace WMS.Web.Domain.Entitys }); continue; } - d.Qty = d.Qty + l.Qty; + if (isNotCount == "1") + { + } + else + { + d.Qty = d.Qty + l.Qty; + } //d.SerialNumbers.AddRange(l.SerialNumbers); } return Result.ReSuccess(); diff --git a/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs index b257c377..a7a9b38c 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs @@ -34,6 +34,13 @@ namespace WMS.Web.Domain.Entitys /// [Column("SerialNumbers")] public List SerialNumbers { get; set; } = new List(); + ///// + ///// 第二个序列号 + ///// + //[Column("TwoSerialNumbers")] + //public List TwoSerialNumbers { get; set; } = new List(); + + ///// ///// 仓位 ///// diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index 460e5479..ad8cffed 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -97,6 +97,8 @@ namespace WMS.Web.Domain.Services var destIds_boxs = await _boxInventoryRepositories.GetList(destIds); var serialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).ToList(); + var TwoserialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.TwoSerialNumbers).ToList(); + serialNumbers.AddRange(TwoserialNumbers); var serialNumberList = await _serialNumbersRepositories.GetEntityList(serialNumbers); foreach (var d in dto) { @@ -145,14 +147,17 @@ namespace WMS.Web.Domain.Services if (destBoxs.Count() != destIds.Count()) return Result.ReFailure(ResultCodes.BoxNoData); foreach (var d in dto) { + var l = d.Details.Select(s => (s.MaterialNumber, s.Qty, s.SerialNumbers)).ToList(); + var l2 = d.Details.Select(s => (s.MaterialNumber, s.Qty, s.TwoSerialNumbers)).ToList(); var srcBox = srcBoxs.FirstOrDefault(f => f.Id == d.SrcBoxId); var destBox = destBoxs.FirstOrDefault(f => f.Id == d.DestBoxId); //原箱移出 Result res; if (srcBox != null) { - res = srcBox.Out(l); + res = srcBox.Out(l,"0"); + res = srcBox.Out(l2,"1"); if (!res.IsSuccess) return res; } if (srcBox != null) @@ -160,11 +165,35 @@ namespace WMS.Web.Domain.Services //目标箱移入 if (!isAddBox) { - res = destBox.In(l); + res = destBox.In(l, "0"); + res = destBox.In(l2, "1"); if (!res.IsSuccess) return res; if (destBox != null) boxList.Add(destBox); } + + + + // //var srcBox2 = srcBoxs.FirstOrDefault(f => f.Id == d.SrcBoxId); + //// var destBox2 = destBoxs.FirstOrDefault(f => f.Id == d.DestBoxId); + // //原箱移出 + // Result res2; + // if (srcBox != null) + // { + // res2 = srcBox.Out(l2); + // if (!res2.IsSuccess) return res2; + // } + // if (srcBox != null) + // boxList.Add(srcBox); + // //目标箱移入 + // if (!isAddBox) + // { + // res = destBox.In(l); + // if (!res.IsSuccess) return res; + // if (destBox != null) + // boxList.Add(destBox); + // } + } List list = new List(); @@ -180,6 +209,7 @@ namespace WMS.Web.Domain.Services foreach (var d in dt.Details) { ChangeBoxRecord entity = new ChangeBoxRecord(); + d.SerialNumbers.AddRange(d.TwoSerialNumbers); entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialNumber, d.SerialNumbers, dt.SrcBoxId, dt.DestBoxId); //entity.SrcSubStockId = boxi?.SubStockId ?? 0;//原乡仓位需要去拉一下库存获取 if (subStock_s != null) diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 85e2593d..254e10a4 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -600,17 +600,27 @@ namespace WMS.Web.Domain.Services var current_box_mat_serNums = current_box_serNums.Where(t => t.MaterialNumber == x.MaterialNumber).Select(t => t.SerialNumber).ToList(); x.SerialNumbers.AddRange(current_box_mat_serNums); } - if (x.TwoSerialNumbers != null) - { - x.SerialNumbers.AddRange(x.TwoSerialNumbers); - } + //if (x.TwoSerialNumbers != null) + //{ + // x.SerialNumbers.AddRange(x.TwoSerialNumbers); + //} }); } + else + { + entity.Details.ForEach(x => + { + if (x.TwoSerialNumbers != null) + { + x.SerialNumbers.AddRange(x.TwoSerialNumbers); + } + }); + } - //5.1保存入库单信息 - entity = await _inStockRepositories.Add(entity, isTransaction); + //5.1保存入库单信息 + entity = await _inStockRepositories.Add(entity, isTransaction); if (entity == null) return Result.ReFailure(ResultCodes.DateWriteError); diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index 50cbcb05..c6200d73 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -188,6 +188,7 @@ namespace WMS.Web.Domain.Services outd.Qty = qty; outd.SerialNumbers.AddRange(dtoDetails.SelectMany(s => s.SerialNumbers)); + outd.SerialNumbers.AddRange(dtoDetails.SelectMany(s => s.TwoSerialNumbers)); entity.Details.Add(outd); } entity.Create(loginInfo.UserInfo.StaffId, outStockTask, dto.Method); diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index 63ad8ee5..cfa4e788 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -327,7 +327,7 @@ namespace WMS.Web.Domain.Services //serialNumbers.AddRange(twoserialNumbers); ////add by yzh var entityList = await _serialNumbersRepositories.GetEntityList(serialNumbers); - var TwoentityList = await _serialNumbersRepositories.GetEntityList(TwoserialNumbers); + // var TwoentityList = await _serialNumbersRepositories.GetEntityList(TwoserialNumbers); var boxIds = inStock.Details.Select(s => s.BoxId).ToList(); var boxList = await _boxRepositories.GetEntityList(boxIds); var userName = _singleDataService.GetSingleData(SingleAction.Staffs, loginInfo.UserInfo.CompanyId, loginInfo.UserInfo.StaffId); @@ -338,11 +338,11 @@ namespace WMS.Web.Domain.Services bool isRollback = false; bool isSuccess = true; List sList = new List(); - // boxId = 0; + var boxId = 0; foreach (var entity in entityList) { - int boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0; + boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0; var box = boxList.FirstOrDefault(f => f.Id == boxId); var instockDetail = inStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber); var subStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, inStock.SubStockCode + inStock.StockCode + inStock.OrgCode); @@ -372,7 +372,7 @@ namespace WMS.Web.Domain.Services //{ // foreach (var entity in TwoentityList) // { - // var boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0; + // //var boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0; // var box = boxList.FirstOrDefault(f => f.Id == boxId); // var instockDetail = inStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber); // var subStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, inStock.SubStockCode + inStock.StockCode + inStock.OrgCode); @@ -429,6 +429,8 @@ namespace WMS.Web.Domain.Services { //获取序列号信息 var serialNumbers = backRecord.Details.SelectMany(s => s.SerialNumbers).ToList(); + var TwoserialNumbers = backRecord.Details.SelectMany(s => s.TwoSerialNumbers).ToList(); + serialNumbers.AddRange(TwoserialNumbers); var entityList = await _serialNumbersRepositories.GetEntityList(serialNumbers); var boxIds = backRecord.Details.Select(s => s.BoxId).ToList(); var boxList = await _boxRepositories.GetEntityList(boxIds); @@ -442,7 +444,7 @@ namespace WMS.Web.Domain.Services List sList = new List(); foreach (var entity in entityList) { - var detail = backRecord.Details.FirstOrDefault(w => w.SerialNumbers.Contains(entity.SerialNumber)); + var detail = backRecord.Details.FirstOrDefault(w => w.SerialNumbers.Contains(entity.SerialNumber)||w.TwoSerialNumbers.Contains(entity.SerialNumber)); if (detail == null) continue; var box = boxList.FirstOrDefault(f => f.Id == detail.BoxId); if (box == null) continue; diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 80a2220e..813fd100 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -386,12 +386,14 @@ namespace WMS.Web.Domain.Services { List list = new List(); var sNs = dto.SelectMany(s => s.SerialNumbers).ToList(); + //var TwosNs = dto.SelectMany(s => s.TwoSerialNumbers).ToList(); + //sNs.AddRange(TwosNs); var entityList = await _serialNumberRepositories.GetEntityList(sNs); foreach (var s in sNs) { var entity = entityList.FirstOrDefault(f => f.SerialNumber.Equals(s)); if (entity == null) continue; - var d = dto.FirstOrDefault(f => f.SerialNumbers.Contains(s)); + var d = dto.FirstOrDefault(f => f.SerialNumbers.Contains(s)); if (d.BoxId != entity.BoxId) { list.Add(new SerialNumbersBoxInventoryDto() @@ -402,6 +404,29 @@ namespace WMS.Web.Domain.Services }); } } + + + + var TwosNs = dto.SelectMany(s => s.TwoSerialNumbers).ToList(); + var TwoentityList = await _serialNumberRepositories.GetEntityList(TwosNs); + foreach (var s in TwosNs) + { + var entity = entityList.FirstOrDefault(f => f.TwoSerialNumber.Contains(s)); + if (entity == null) continue; + var d = dto.FirstOrDefault(f => f.TwoSerialNumbers.Contains(s)); + if (d.BoxId != entity.BoxId) + { + list.Add(new SerialNumbersBoxInventoryDto() + { + BoxId = entity.BoxId, + MaterialNumber = d.MaterialNumber, + SerialNumber = s + }); + } + } + + + return list; } ///