diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 7dc66351..5911f79c 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -2838,6 +2838,11 @@ 序列号集 + + + 两件装序列号集 + + 采购上架-请求对象 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 8f9293af..77847cee 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -902,6 +902,11 @@ 序列号集 + + + 第二个序列号集 + + 是否已发送 @@ -1349,6 +1354,11 @@ 序列号集 + + + 第二个序列号集 + + wms即时库存明细表 diff --git a/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs b/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs index a376414f..f8bba3f9 100644 --- a/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs +++ b/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs @@ -104,5 +104,9 @@ namespace WMS.Web.Core.Dto.InStock /// 序列号集 /// public List SerialNumbers { get; set; } = new List(); + /// + /// 两件装序列号集 + /// + public List TwoSerialNumbers { get; set; } = new List(); } } diff --git a/src/WMS.Web.Domain/Entitys/InStockDetails.cs b/src/WMS.Web.Domain/Entitys/InStockDetails.cs index 6a62a6d6..7ce85cf1 100644 --- a/src/WMS.Web.Domain/Entitys/InStockDetails.cs +++ b/src/WMS.Web.Domain/Entitys/InStockDetails.cs @@ -64,6 +64,14 @@ namespace WMS.Web.Domain.Entitys /// 物料编码 /// public string MaterialNumber { get; set; } + + + ///// + ///// 物料编码测试 + ///// + //public string MaterialNumber2 { get; set; } + + /// /// 数量 /// @@ -74,6 +82,13 @@ 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/InStockTotalDetails.cs b/src/WMS.Web.Domain/Entitys/InStockTotalDetails.cs index 0aedaa34..c37be6aa 100644 --- a/src/WMS.Web.Domain/Entitys/InStockTotalDetails.cs +++ b/src/WMS.Web.Domain/Entitys/InStockTotalDetails.cs @@ -49,5 +49,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/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 3a10d214..85e2593d 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -566,8 +566,9 @@ namespace WMS.Web.Domain.Services //3.遍历:box信息,并拼装入库单明细 foreach (var box in dto.Boxs) { - //3.1先数据映射 - var dets = _mapper.Map>(box.Details); + + //3.1先数据映射 + var dets = _mapper.Map>(box.Details); //3.2遍历赋值:boxID和仓库和仓位和来源单和供应商和组织 dets.ForEach(item => { @@ -577,9 +578,11 @@ namespace WMS.Web.Domain.Services }); //3.3添加到临时集合中 temps.AddRange(dets); + } //3.4给对象明细赋值 entity.Details = temps; + //4.创建 entity.Create(loginInfo.UserInfo.StaffId); @@ -597,6 +600,12 @@ 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); + } + + }); } @@ -609,14 +618,16 @@ namespace WMS.Web.Domain.Services var totalDetails = dto.Boxs.SelectMany(x => x.Details).GroupBy(x => new { x.MaterialNumber }) .Select(x => new InStockTotalDetails { + InStockId = entity.Id, TaskId = dto.TaskId, SourceBillNo = task.SourceBillNo, MaterialNumber = x.Key.MaterialNumber, Qty = x.Sum(t => t.Qty), - SerialNumbers = x.SelectMany(t => t.SerialNumbers).ToList() + SerialNumbers = x.SelectMany(t => t.SerialNumbers).ToList(), + TwoSerialNumbers = x.SelectMany(t => t.TwoSerialNumbers).ToList() }).ToList(); - + var isSuccess = await _inStockRepositories.AddRangeTotalDetails(totalDetails, isTransaction); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs index 5ffd3a6c..ae30d442 100644 --- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs +++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs @@ -227,6 +227,15 @@ namespace WMS.Web.Repositories.Configuration (c1, c2) => c1.SequenceEqual(c2), c => c.Aggregate(0, (a, v) => HashCode.Combine(a, v.GetHashCode())), c => (List)c.ToList())); + + ent.Property(f => f.TwoSerialNumbers).HasConversion( + v => JsonConvert.SerializeObject(v), + v => JsonConvert.DeserializeObject>(v), + new ValueComparer>( + (c1, c2) => c1.SequenceEqual(c2), + c => c.Aggregate(0, (a, v) => HashCode.Combine(a, v.GetHashCode())), + c => (List)c.ToList())); + }); builder.Entity(ent => { diff --git a/src/WMS.Web.Repositories/InStockRepositories.cs b/src/WMS.Web.Repositories/InStockRepositories.cs index 7519bbc9..15891f37 100644 --- a/src/WMS.Web.Repositories/InStockRepositories.cs +++ b/src/WMS.Web.Repositories/InStockRepositories.cs @@ -1,6 +1,7 @@ using AutoMapper; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Storage; +using NPOI.POIFS.FileSystem; using Org.BouncyCastle.Crypto; using System; using System.Collections.Generic; @@ -153,6 +154,25 @@ namespace WMS.Web.Repositories { if (entitys != null && entitys.Count != 0) { + // entitys[0].SerialNumbers = entitys[0].SerialNumbers.Add(entitys[0].TwoSerialNumbers); + //List entitys2=new List(); + //for (int i = 0; i < entitys.Count; i++) + //{ + + // entitys[i].SerialNumbers = entitys[i].SerialNumbers.AddRange(); + + + //} + //赋值序列号 + entitys.ForEach(x => + { + + if (x.TwoSerialNumbers != null) + { + x.SerialNumbers.AddRange(x.TwoSerialNumbers); + } + }); + await _context.InStockTotalDetails.AddRangeAsync(entitys); await _context.SaveChangesAsync(); }