From c90824366475a0e4d11671357b3ecaf3ddd86efa Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Wed, 17 Apr 2024 10:14:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 240054 -> 240054 bytes src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 5 ++ .../Dto/InStockTask/InStockTaskBoxInfoDto.cs | 5 ++ .../InStockTaskRepositories.cs | 49 ++++++++++-------- 4 files changed, 36 insertions(+), 23 deletions(-) diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 13023a8e386f251b8a2acacbcb7edac98bcd60c6..597cfc6401b730a0b5d96a1e82c8d4b82aa5c105 100644 GIT binary patch delta 5362 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 NotIg09sKF2e*w%^Z{`31 delta 5100 zcmc(jeQ+1W8OOQZ?1lsg5W-t9Kq3$U1$+SwqFe$52oMP!D+@sIj4wRNUby{9*0gD=?c?r(GVi?K6(ai*F1>^{$Z zpS|qezTC6FlczFHp32y~#W}&wr1`UNVPm*@Gn3`}dzQ28PELRI(NZT%y?n-z{+pB7 zr;cjez^bLVWZ0#{hNufSvTVOOjlJ964>H+HBc1b9Ss5Gbe_X=W_VcG~WOs8l(_^F6 z=}K1V-{Y|z(^Y;M&sfGqbN8Uo_P$n9566#PH&&lj2++eyJl)1qSH<;;C zmhhX(cwd&@UAWW(^c1S}G%N90Eo)?~mr#v$tjD06(UTSdbEte#Jmy+?{-(|vRahVE*CHVTA)dM9g?@@uD<#tD_SpAYuNi}9vY6HMR2 zpifA}XfRRGB&$r0l@cgZ1WmQdv{)&Ha+RRzRw;{>8Bk^ly1K1$4V24g3A(nebRDGY z1SU zfkG-Zu6>G-W*B#VqU#}D)7rhRwOiiWU0^2GmuCG{>h%|-P7VY0`2n8S>#5Xs=C5>G zyLLgl>c9zDz-ggSO;xPBy0VEC$VGbm7O9FRc8<5$KJ=3K9o~S4zERLkR#_S=H$%Ba z(5+Tk7Awo4tPr%)Dyw2;HI&=1Cs<`otlR;`yHn6wE3J#A^^i7Tv#`phSgC+gDaf-* zbz=GGiL@C?m7wZ`5)3y3q=gy?TLf*jO={ztZ4+Kdb%O4)(%rGN9gTJfy2mQ_#>!48 z^@19#vMW}0L%C1T{Z`o%D+tJ&%A#Rl_N^E$uMO$H3z%_cZ&;c|zsp=a`!I9_!iTDO_*D4)!iM4*L}9(~keyAJ`zr`v)#GgEQbu z@D=zPd;`vcZ$Ufhk^>mvAO#2@K`Lku(m*=s06KzBAOmy;T|ifm3A%wS&>i%Uu17s# z^a8y>Hs}M+0Xd*A=m+|PT#yIO1p~l9FbL#>^T1#*1Ple|gA2egFdU2k7lMnx#o!V! z5{#0bOP9j93>1LT;BqhqTmh~GV}T0_K@k`S#)Ao<7)%6{z+_MYrhutn8Yl%?oS#k#2x@3YkGYvcrMII~Q7ttqcF<@M4pd!H@iy=P18#It2c<=QBR zF-IG7q~ClWzt`zKS9^1Dd7d`r!I-a&`BFW*hiCZ>AFyFeF3^`2s8>H?1*r?Qy-@m9 zd--(UWs&w4$&eOnW3lu%Cts9m?-XhHqwgh50bzq``F((SVRl zV4{L?Q1_zZEc+rYZ$Z>%rKAN(ZD8v*3osv%IOZ*k;#Nt_!uZ~>bsQ$>aox>M8|L@^f82+{D99#R!TT=AZ#6&s9<;q?3+l3H%oYNBy1h& zNmY8BjZgz}`Nk(sXeeAW-RfSyh9?v{z% zf4k|4$^CcW|K20%UaKUfc{`!hOKPx6QYy6z%5F*bS>^utZhQ1o$nVedFqM$!JzyK{ zjT`MlqX#8DWR-_wWj~Yyk`7wsP^>%xjw=A!@w(| zBeublaf731a7@xuZI$Cto|g1XTcr`ovyz^(%8%l^oq+OVNhcFZQVQ(L(4(KoU}B-2P{XuR>Ui1l@6;?CF6KOYPGhjrD~{W@2c|gyev7rQGXrJ z7pK}8)(?d%O{zj5u94e1f%+Ibq%u&Id8=P{3(=PoSsq@R=74Qq` z27hvcPu<{iHwan|NS{B-i*kMmxid2Dt{@Y116iOu_?0R>%xml!O8xCHKcBrS)rYn0 zGxnNPP1{%x_PSJ`ZeydmzJc2uM3Y0noUzn9)A)AwCO&8Hu^t(3K~6eWy>Jzu<@ghh W@G(vYo#wAhHNPMEoe%OS(*6mwQ%S`D diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index c2d8c31c..cf5ba40f 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -1948,6 +1948,11 @@ 序列号 + + + 销售订单号 + + 入库任务单明细详情 diff --git a/src/WMS.Web.Core/Dto/InStockTask/InStockTaskBoxInfoDto.cs b/src/WMS.Web.Core/Dto/InStockTask/InStockTaskBoxInfoDto.cs index 1514f334..51a5f1a3 100644 --- a/src/WMS.Web.Core/Dto/InStockTask/InStockTaskBoxInfoDto.cs +++ b/src/WMS.Web.Core/Dto/InStockTask/InStockTaskBoxInfoDto.cs @@ -78,6 +78,11 @@ namespace WMS.Web.Core.Dto.InStockTask /// 序列号 /// public string SerialNumbers { get; set; } + + /// + /// 销售订单号 + /// + public string SaleBillNo { get; set; } } } diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs index 7e152d1e..32bbe4e8 100644 --- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -183,7 +183,7 @@ namespace WMS.Web.Repositories Method = InventoryInOutMethod.Box.GetRemark(), MaterialNumber = x.detail.MaterialNumber, Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.detail.MaterialNumber), - ReceiveTime = x.box.CreateTime.HasValue ? x.box.CreateTime.Value.ToString("yyyy-MM-dd HH:mm:ss"):"", + ReceiveTime = x.box.CreateTime.HasValue ? x.box.CreateTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", Receiver = x.box.ReceiverId.HasValue ? _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.box.ReceiverId.Value) : "", Qty = x.detail.ReceiveQty, ReceiveQty = x.detail.ReceiveQty @@ -220,7 +220,7 @@ namespace WMS.Web.Repositories boxList.ForEach(x => { - x.SerialNumbers = (string.Join(",", serialNumbList.Where(t =>t.BoxId==x.BoxId && t.MaterialNumber == x.MaterialNumber).Select(t => t.SerialNumber).ToList())).TrimEnd(','); + x.SerialNumbers = (string.Join(",", serialNumbList.Where(t => t.BoxId == x.BoxId && t.MaterialNumber == x.MaterialNumber).Select(t => t.SerialNumber).ToList())).TrimEnd(','); }); @@ -236,6 +236,8 @@ namespace WMS.Web.Repositories .SelectMany(x => x.ts.DefaultIfEmpty(), (p, order) => new { p.detail, order }) .GroupJoin(_context.Box, p => p.detail.BoxId, ts => ts.Id, (p, ts) => new { p.detail, p.order, ts }) .SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, p.order, box }) + .GroupJoin(_context.InStockTaskDetails, p => p.detail.TaskDetailId, ts => ts.Id, (p, ts) => new { p.detail, p.order, p.box, ts }) + .SelectMany(x => x.ts.DefaultIfEmpty(), (p, taskDet) => new { p.detail, p.order, p.box, taskDet }) .Where(x => x.detail.TaskId == entity.Id).Select(x => new InStockTaskBoxInfoDto() { BoxId = x.box.Id, @@ -244,7 +246,7 @@ namespace WMS.Web.Repositories MethodForInt = (int)x.order.Method, MaterialNumber = x.detail.MaterialNumber, Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.detail.MaterialNumber), - + SaleBillNo = x.taskDet.SaleBillNo, Qty = 0, RealityQty = x.detail.Qty, ShelfTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), @@ -358,7 +360,7 @@ namespace WMS.Web.Repositories { Id = s.order.Id, DetailsId = s.detail.Id, - CustomerCode=s.detail.CustomerCode, + CustomerCode = s.detail.CustomerCode, SupplierId = s.detail.SupplierId, OrgId = s.detail.OrgId, OrgCode = s.detail.OrgCode, @@ -373,7 +375,7 @@ namespace WMS.Web.Repositories ReceiveQty = s.detail.ReceiveQty, //采购:可入库数量=应入库数量-收货数量-已交数量+该明细的入库数量之和; AvailableQty = s.detail.AccruedQty - s.detail.ReceiveQty - (s.detail.DeliveredQty > s.detail.RealityQty ? s.detail.DeliveredQty : s.detail.RealityQty), - WaitSlefQty = s.detail.ReceiveQty-s.detail.RealityQty, + WaitSlefQty = s.detail.ReceiveQty - s.detail.RealityQty, Remark = s.detail.Remark, ErpDetailId = s.detail.ErpDetailId }).ToListAsync(); @@ -507,7 +509,7 @@ namespace WMS.Web.Repositories /// public async Task> GetReceiveBox(int taskId, string materialNumber) { - var list = await _context.InstockTaskBox.Include(x => x.Details.Where(t=>t.MaterialNumber==materialNumber)).Where(x => x.TaskId == taskId && x.Details.Where(t => t.MaterialNumber == materialNumber).Count()>0).ToListAsync(); + var list = await _context.InstockTaskBox.Include(x => x.Details.Where(t => t.MaterialNumber == materialNumber)).Where(x => x.TaskId == taskId && x.Details.Where(t => t.MaterialNumber == materialNumber).Count() > 0).ToListAsync(); //var list_last = list.Where(x => x.Details.Any(t => t.MaterialNumber == materialNumber)).ToList(); var result = list.Select(x => new ReceiveBoxResponse() { @@ -749,14 +751,22 @@ namespace WMS.Web.Repositories } } + var taskIds = new List(); + if (dto.BoxBillNos != null && dto.BoxBillNos.Count != 0) + { + var tids = await _context.InstockTaskBox.Where(x => dto.BoxBillNos.Contains(x.BoxBillNo)).GroupBy(x => x.TaskId).Select(x => x.Key).ToListAsync(); + taskIds.AddRange(tids); + } + if (dto.SerialNumbers != null && dto.SerialNumbers.Count != 0) + { + var tids= await _context.InStockDetails.Where(w => w.SerialNumbers.SequenceEqual(dto.SerialNumbers)).GroupBy(x => x.TaskId).Select(x => x.Key).ToListAsync(); + taskIds.AddRange(tids); + } + var query = _context.InStockTaskDetails - .GroupJoin(_context.InStockTask, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders }) - .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order }) - .GroupJoin(_context.InstockTaskBox,p=>p.order.Id,ts=>ts.TaskId, (p,ts)=>new { p.detail,p.order,ts}) - .SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, p.order,box }) - .GroupJoin(_context.InStockDetails, p => p.order.Id, ts => ts.TaskId, (p, ts) => new { p.detail, p.order, p.box,ts }) - .SelectMany(x => x.ts.DefaultIfEmpty(), (p, instockdet) => new { p.detail, p.order,p.box, instockdet }) - .Where(adv => 1 == 1); + .GroupJoin(_context.InStockTask, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders }) + .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order }) + .Where(adv => 1 == 1); if (!string.IsNullOrEmpty(dto.SourceBillNo)) query = query.Where(w => EF.Functions.Like(w.order.SourceBillNo, "%" + dto.SourceBillNo + "%")); @@ -767,16 +777,9 @@ namespace WMS.Web.Repositories query = query.Where(w => materialNumbs.Contains(w.detail.MaterialNumber)); } - //箱号 - if (dto.BoxBillNos != null && dto.BoxBillNos.Count != 0) + if (taskIds.Count!=0) { - query = query.Where(w => dto.BoxBillNos.Contains(w.box.BoxBillNo)); - } - - //序列号 - if (dto.SerialNumbers != null && dto.SerialNumbers.Count != 0) - { - query = query.Where(w => w.instockdet.SerialNumbers.SequenceEqual(dto.SerialNumbers)); + query = query.Where(w => taskIds.Contains(w.order.Id)); } if (!string.IsNullOrEmpty(dto.Receiver)) @@ -835,7 +838,7 @@ namespace WMS.Web.Repositories CreateTime = s.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), Remark = s.detail.Remark, IsRepeal = s.detail.IsRepeal ?? false, - SaleBillNo=s.detail.SaleBillNo, + SaleBillNo = s.detail.SaleBillNo, }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); return (list, total);