From e6df47b79a5ee62f3f9efaf4cde6b4d8ed44a46c Mon Sep 17 00:00:00 2001 From: 18923810322 <1666941798@qq.com> Date: Tue, 20 May 2025 14:39:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86pda?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 278871 -> 279122 bytes src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 20 +++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 5 +++ .../SaveBackRecordDetailsRequest.cs | 7 ++++ .../SaveChangeBoxRecordRequest.cs | 6 ++++ .../Dto/OutStock/SaveOutStockRequest.cs | 5 +++ .../Dto/TakeStock/SaveTakeStockRequest.cs | 5 +++ .../Entitys/BackRecordDetails.cs | 6 ++++ src/WMS.Web.Domain/Entitys/Box.cs | 21 ++++++++--- .../Entitys/OutStockBoxsDetails.cs | 7 ++++ .../Services/ChangeMoveBoxService.cs | 34 ++++++++++++++++-- src/WMS.Web.Domain/Services/InStockService.cs | 22 ++++++++---- .../Services/OutStockService.cs | 1 + .../Services/SerialNumberService.cs | 12 ++++--- .../Services/TakeStockService.cs | 27 +++++++++++++- 15 files changed, 160 insertions(+), 18 deletions(-) diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 06879f9ef8db7d072bda5f6fd6d033979ff57fdf..b067329d93f7f38b3908229f4307a7122a5a0707 100644 GIT binary patch delta 17894 zcmZYH3A|0^;>Ph~KAd5%wa*b5G7F(}>6((ENMyJXie|ZK4wrIkODav`MB-1A2H_S( zXjC_eLIWX588YjOawHX+HA%BJ*}=RMn%6?}Wzu}*cfL-VZ~V@>q*?EGzD=49erIFSZ1OwbCCz5P z^L^56@jE{x%~rqjW77Pj9Uh-Y-Ig@l{iz*Ev(xYVoHV=q&hDhy<9GHZ%|5@gKWPs5 zor6j9i{B|s8sm2kB~6jv`88<{CsWZEek5s*`cuCp&F{&A5(Va1vL`WrBz1p0Y5q)_ z6G?M2X)^MPbf`q0DVb+V<(blXrc7REeJyW<$b4$=`G~T4rd*!M%roWr2u@VUGg)~i z+kQk&UO}qFM3b9Wz_LDh{`>Ccng#d$TaVy;(%wCX2}uvXs0--X-sm_sIw3L$Zu~L_Q|}C7+Px1zAnjO!dO|(WL}&uq2yK8745(5bR4HGSGPR^y<%>)sp%G{%Gy|=K zR-lv630x{%3N9Be2iFMKfLn!I!AM~wm?_KzvxHe-jxYzz7v_W15@`uqCM*N1gjHaj zunueywtyYN4scL72#yFxz)9gG$gBV|D-@YLArI6NYJoF_Gr`%y*`RewYK=Mw9l*uH z#h{1K1N0U8f`P(7FjyE2ZV_$)!-e5sj4%d_7si7Ep#aPfW`J43EHJl13e80eb!Z{@ zK==Tx5!Qgs!e+2X*aHp-2Y?X_I4m3nzX`vAO! zT0*T9swdS04TXlFiO>Wz6Pke*LJQDJXa&v}&IcWZj-a#98C)V<0(uHPK_8(H7$6J) zR|!{T^ZZ{YUB{stg&V=m!p-1z;dU@g7zXYZ?gpcU(coU;UU0u~KX_1h5IiD00-g|_ z00lw;ct&_8o9F*o=~)iFEW8Zn2y?)Hg#Umyg*U-cVJUc5co!@amVr-&Pr+(oHTYWi z8f*|YfFFb(z;3 z+#-`LWP>~*51cNX4q6MXK}Vq@=$fnFKV4Bz9qI|L6s`o<3)h32g`2^h!kyqA;T~|m za6cF?j0Y2iiD0@g9c&S{fStlla6mW!4ucf;dV(+ z2s^+oVHemd>;(sfgTM#|92O3P--O@5ap5?~2tY=_^Iu9T74Ur*%7O|)1&|};fKUiQ zzK{~$)Bv@G+MvErA2bvif+j)}&`f9+@cg%sT5zbP&=Ry2+Jg2%d(cVf z1iA=aKsTWq=ppm~mkF1F%Z1Cq6~YzZD&Z<{t#Bw!aLvt;REoI@DW%pEC(wC`}+s2)}htlE8#1! zPFM#v3LC-q!uMdSuoY|5F0fD72M!7c!6D%gI4m3nzYD*E+GDfY)As?J3oCYcjl|eP38mI|U+!vWTI#dVL z7wUsXLL<;rXbR31&IK)m7NC{T3bYm4g7!jt&`Ib7*5-FIU*@ynn+m_qXTv)ixGtYf zQ9aW|)h<-m^Y_t2^DXyJ(ZAUJrD-3_Ux`OUPchFPl33>~?L7z;$%=(~y zI@Avg5C(uNg)6}zVGu|ODR94VKNu^F1>=NqV7xFMJSIE_o)De@6NQPOKqvr{L5lk# z^Rx~<4Wa7OWT6gN?#Quvyp)whCLpHenmsDeMHhgk4~_up8_Z_JaMwesEAY2#SOva8x*| z@8>b;7&sxE0HyRdV=4Y-EGv`+Swa@b5pqC6NPwh}1QmsfppsAt)Dh}{`a*rsKxhCO z3ysV3{I`+XaHxaO0dy8RgKk1M&`anA`UrhMf1y7ZBn$%A3D<$a!eB5&7y^b0L&5FB z?O>QNOn>H&l16c8v@jZs5ypUV!Z_-2M!7c!6D%g_*M87 z92Jg&W5O|TLO203QhMW_!5jCILP@=Y7s`N4AroW?Ss+`;2Dw5m2!sHHLJ0DNJWx@n z2u>4D1C@o!po&lhRL$1!pQ@<34pj#=gc_ixP!rS^YJ<8$T~J@B4;ly!KqH|MXe=}a zO@*f59N`>ru5d1BE;I+{W$X9Pd8nlhwFIq&)}XD>7PJ%Ef%Zas&_U<`ItiV?MZ!g( zi_ish6}p0MLO0M|=ni@aJwPvz;+|iII@B9nCR_&k3VlI8p&#fk^aoc6SAc=SKrl!c z1g;jY2GB4j{Lzn?(3N!U*{&UiE9C}`O9=s^L2xbYhz)QkQ;1%H& zFk6@nUK3sebA`F!^=$sF&NuV3HL|@RJN*v8yk++n`u#=PPnpI3z!F<{&+or)_doRe zAKCr?`u$Jr{&K&+!tQ_O_gC5d&;9-vc7KiEU&}sU|5yINH@5KC{`zA3-`f3+zQ4)t zZ}$7&+x;zmf2-a9$?tC~w!b60t48SmD(oy)*yX;Hd$KRmH!=EN7M9_kUB1uzv(16@ zne=y6XWrt>FWJVV&!oS-IF>GDyw926v(2&e zne=yGXFlT0pV{U_`b_$H(3wv-laXUeCx#=_M=SOGOawf;O2re^v~`YG0#?>SRD$J9xmsh8uwpsk##pJUGa-!t1d(=f-J z#TkA5=9CZG!KubMrpf<)&`!>rony|)VY1?#5~f*Bdvh-N8);5jkn_mjNlVg-v?gsx zTXH^WM=l`kNe9v~r+vzF0vD2tNN3W8Tui!>OGr1;om@(Kke;L$=}rDYE+c(NUvfF= zNBWZi%k3VFu9QoA^#*dk)h;fatpbY+(vFEcaS^D zU1S&;PDYS_k&$E+xtrWWMw5S&d&zwyMaGc($yn_?K*o^=$wTB}@+f(nJV7RqiKKu$ zMW&FcvWBcBUy-lLH)K8emTVxK$Y%0A*+RCGpU5^n|2x1=vWx5{ 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 ZHfJVH12zqlrV*RQNz;T))8v>j{|^F7?+*X~ delta 17602 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 + + + 第二个序列号集 + + 备注 @@ -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; } ///