From a165e8e71c3c85a7f71c8a9b9719375e2bdf6382 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Wed, 19 Jun 2024 15:17:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9=E6=B2=A1=E6=9C=89=E7=AE=B1?= =?UTF-8?q?=E5=BA=93=E5=AD=98=20=E5=8F=AF=E4=BB=A5=E7=9B=98=E8=BF=9B?= =?UTF-8?q?=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 274420 -> 274420 bytes .../Entitys/TakeStockDetails.cs | 7 +++++ .../IBoxInventoryRepositories.cs | 2 ++ .../Services/BoxInventoryService.cs | 28 +++++++++++++----- .../BoxInventoryRepositories.cs | 28 ++++++++++++++++++ 5 files changed, 58 insertions(+), 7 deletions(-) diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 576af6f4b5cc5ea2a0f9e89f19c2406ffdfd55fe..8fb124c76d904da819a251c6f074e58b2f32e998 100644 GIT binary patch delta 5248 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 U=GJ(#(Ow-DBf{N(6klci54BYbUH||9 delta 5331 zcmb7{33wDm7RRT%Nxw2g1Y{!^5KzPu%}fr0x^56Ta}h`aghMCEgwu$qC|(^9Aw*ON zm<}Kq5fwqi0~~HdR8&9^cfD5EU3C{-73VpusH^V&tLIGyv)_K-Zhzl@>i3SWs(zj7 zsvQ5g{qc|68*eW*)*Ah0uiL!NxHE5%KRrE|Rhd&+l@kh72CFlJnSDc*{!pMIrz$Ha zy)sng4+JxU!OB3WIx{=aw<;?X%Bl`l_(K`#{>*HDwa@hD`1-jU^No!8&G|;SIp5r1 z4bII8WL5+!`iA@!q0CTLWmeycj8J;Izi(A`R=-eIAmqpG!Sqm8FefY99|{I4vintF zgo>(=zbY$O8SAE<3PW3kE3{OOg5gB3g zNQsmrBBh9w**r=jqZ5%ah?LtrRwCmPk@1L3o?!De61p}K3L;ctbEQO@t(M7EAri8= zS|ZbvS|Sq>nPl^1i5yAXGX;^U?pGtNuFf=xUY8iF2GQ$no-UCa5|J5*+-UPn61mxn z@Gq7w(oDo|vH4bstx1eF3z6GwzWqP@yTk4srkl|!Fmj^*Mv7tvnIAZyS^pwUYqMr$^+}X zdOJMsGjo#>KDCdvCndaLp5-Llb@otn6b>x5mYR0GHtNF%mRNOdN*CH!VLnrnc%jXh z;6gi+%JEV8|3aja>GHA`a6QuoOwD_}er z{;q_gc!X`VHlZ{+%3#CA(LhYbs@b`kwh1$dJ04)cv zfF6QYLaU&Mp=Rh2Xtf=Fd8IYSbhaXS0Oj&_Be%BphrLPD;OkRC0IecTCkFMjbIh=Q-UGlb%NEz&k0T>{Af;Gf{7rdVME5Yf+@5tP5AbwA92Jr`iHxeI{+?z16cyA{D&=HKQQ?~=!Gh%+UjmN;8*HgQf29iBscnYiyJ zzCv&=@l}HN5YLm|<`dTmE+GC@5ww~n|-I$n=8D)_Y%KMZe)$s-FZV?`-u+-9wdHK z@DTA~!MBKy2)<4Hd%-^t2W4LG5LXJmOB@n>kNADb{eXC)c>joLdESmG{1H}{WPFU( zPHyvKRww5(as3qwS@0;9li(LvWP)E}WeI+bW?>C+$H>A4a^B_Fxs|A&Q4eWLP4S zhe*ES0*MqRB1MP{SMDCenp6|%)L=Alu_}akgu*Y5C?ge@C@xi8hD`WJDITqOjKVRc zTuO@#D8bb>14Ym}TyuMO8eX(gvQ4HQ3(1r@%b ziPIPumv(sTH@*Q14GQD^+C;Ih!B=C!kJF{gb!rF> zs``l+Xj-7DUQ@k0_d6>i{a)2zERvIGA$dp8h01I0i#7Mhng?RdBKPQbRxigZ@N@B3 zwuy#BBOOt#&BU89t=XoI$1d&gE`A}N6((@2EI49WTjE(;iMO=Qg2THU>mAgd7`}_eEw3hd2!?Cr~WtoLLGCN|`E&|n9C56$~H&!X|R+q~FL zo5$WRo5z2_85*%qi9bW*?XwNW&ua}nihpfBhrWc4LEl2hp%c)L(9cjCEX=mhX;4S# z3@A-6`0miT&;?LBlm%T5 + /// 老仓位(如果更好了仓位 这里就是原有仓位) + /// 如果没有更换仓位 那老仓位和新仓位就是一样的值 + /// + [Column("Old_SubStockCode")] + public string Old_SubStockCode { get; set; } + /// /// 子仓库(跟金蝶交互字段) /// [Column("Erp_SubStockCode")] diff --git a/src/WMS.Web.Domain/Infrastructure/IBoxInventoryRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBoxInventoryRepositories.cs index 59e7e6ea..f9b3465a 100644 --- a/src/WMS.Web.Domain/Infrastructure/IBoxInventoryRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IBoxInventoryRepositories.cs @@ -48,6 +48,8 @@ namespace WMS.Web.Domain.Infrastructure /// /// Task Get(int id); + // 新增 + Task Add(BoxInventory entity, bool isTransaction = true); /// /// 批量添加 /// diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs index b480afc9..9340389a 100644 --- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs +++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs @@ -165,7 +165,7 @@ namespace WMS.Web.Domain.Services //1.判断来源数据是否存在 if (dtoDatas == null || dtoDatas.Count == 0) { - _logger.LogInformation("移箱-箱库存变更:失败->" + ResultCodes.InventoryNoSourceError.Item2+",参数->" + JsonConvert.SerializeObject(dtoDatas)); + _logger.LogInformation("移箱-箱库存变更:失败->" + ResultCodes.InventoryNoSourceError.Item2 + ",参数->" + JsonConvert.SerializeObject(dtoDatas)); return Result.ReFailure(ResultCodes.InventoryNoSourceError); } @@ -253,7 +253,7 @@ namespace WMS.Web.Domain.Services //1.判断来源数据是否存在 if (dtoData == null) { - _logger.LogInformation("入库回退上下架-箱库存的变更:失败->"+ ResultCodes.InventoryNoSourceError.Item2+",参数->"+ JsonConvert.SerializeObject(dtoData)); + _logger.LogInformation("入库回退上下架-箱库存的变更:失败->" + ResultCodes.InventoryNoSourceError.Item2 + ",参数->" + JsonConvert.SerializeObject(dtoData)); return Result.ReFailure(ResultCodes.InventoryNoSourceError); } @@ -334,7 +334,7 @@ namespace WMS.Web.Domain.Services //1.判断来源数据是否存在 if (dtoDatas == null || dtoDatas.Count == 0) { - _logger.LogInformation("盘点单-箱库存的变更:失败->"+ ResultCodes.InventoryNoSourceError.Item2 +",参数->"+ JsonConvert.SerializeObject(dtoDatas)); + _logger.LogInformation("盘点单-箱库存的变更:失败->" + ResultCodes.InventoryNoSourceError.Item2 + ",参数->" + JsonConvert.SerializeObject(dtoDatas)); return Result.ReFailure(ResultCodes.InventoryNoSourceError); } @@ -453,7 +453,7 @@ namespace WMS.Web.Domain.Services //1.判断来源数据是否存在 if (dtoData == null) { - _logger.LogInformation("入库单-箱库存的变更:失败->"+ ResultCodes.InventoryNoSourceError.Item2+",参数->" + JsonConvert.SerializeObject(dtoData)); + _logger.LogInformation("入库单-箱库存的变更:失败->" + ResultCodes.InventoryNoSourceError.Item2 + ",参数->" + JsonConvert.SerializeObject(dtoData)); return Result.ReFailure(ResultCodes.InventoryNoSourceError); } @@ -535,7 +535,7 @@ namespace WMS.Web.Domain.Services //1.判断来源数据是否存在 if (dtoData == null) { - _logger.LogInformation("出库单-箱库存的变更:失败->" + ResultCodes.InventoryNoSourceError.Item2+",参数->"+ JsonConvert.SerializeObject(dtoData)); + _logger.LogInformation("出库单-箱库存的变更:失败->" + ResultCodes.InventoryNoSourceError.Item2 + ",参数->" + JsonConvert.SerializeObject(dtoData)); return Result.ReFailure(ResultCodes.InventoryNoSourceError); } @@ -640,7 +640,7 @@ namespace WMS.Web.Domain.Services } } _logger.LogInformation("出库单-箱库存的变更:成功,参数->" + JsonConvert.SerializeObject(dtoData)); - var lastBoxInventList= await _boxInventoryRepositories.GetList(boxIds); + var lastBoxInventList = await _boxInventoryRepositories.GetList(boxIds); _logger.LogInformation("出库单-箱库存的变更:成功,处理后的箱是否存在的箱->" + JsonConvert.SerializeObject(lastBoxInventList)); return Result.ReSuccess(); } @@ -1324,8 +1324,22 @@ namespace WMS.Web.Domain.Services { //3.1入库的时候:盘点-箱一定是存在于库存 var boxInvent = boxInventorys.Where(x => x.BoxId == dto.BoxId).FirstOrDefault(); + //if (boxInvent == null) + // return Result.ReFailure(ResultCodes.BoxInventoryHaveInventoryError); + //v1.0.6版本 如果没有箱库存就添加 if (boxInvent == null) - return Result.ReFailure(ResultCodes.BoxInventoryHaveInventoryError); + { + BoxInventory box_add = new BoxInventory() + { + BoxId = dto.BoxId, + OrgCode = dto.OrgCode, + StockCode = dto.StockCode, + SubStockCode = dto.SubStockCode + }; + boxInvent = await _boxInventoryRepositories.Add(box_add); + if (boxInvent == null) return Result.ReFailure(ResultCodes.DateWriteError); + boxInventorys.Add(boxInvent); + } //3.2组装要新增的箱库存信息:箱和明细和序列号 var updateEntity = boxInvent; diff --git a/src/WMS.Web.Repositories/BoxInventoryRepositories.cs b/src/WMS.Web.Repositories/BoxInventoryRepositories.cs index f9e00df7..1526dc57 100644 --- a/src/WMS.Web.Repositories/BoxInventoryRepositories.cs +++ b/src/WMS.Web.Repositories/BoxInventoryRepositories.cs @@ -193,6 +193,34 @@ namespace WMS.Web.Repositories { return await _context.BoxInventory.Include(x => x.Details).Where(x => x.BoxId == id).FirstOrDefaultAsync(); } + /// + /// 添加及时库存 + /// + /// + /// + /// + /// + public async Task Add(BoxInventory entity, bool isTransaction = true) + { + IDbContextTransaction _transaction = null; + if (isTransaction) + _transaction = _context.Database.BeginTransaction(); + try + { + await _context.BoxInventory.AddAsync(entity); + await _context.SaveChangesAsync(); + + if (_transaction != null) + _transaction.Commit(); + return entity; + } + catch (Exception ex) + { + if (_transaction != null) + _transaction.Rollback(); + return null; + } + } /// /// 批量添加