From b25c814b1626bb00aa940ef6be2ffbf5e8a8b3f4 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Tue, 31 Oct 2023 10:04:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=80=81ops=E7=AE=B1=E4=BB=93=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 225182 -> 225182 bytes src/WMS.Web.Domain/Entitys/Box.cs | 3 +- .../Infrastructure/IBoxRepositories.cs | 16 +++++++ src/WMS.Web.Repositories/BoxRepositories.cs | 43 ++++++++++++++++++ .../AppBuilderExtensions.cs | 1 + 5 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs create mode 100644 src/WMS.Web.Repositories/BoxRepositories.cs diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index e77cba8f0d2d1a09ff486469a5d53f82a181dd5f..ae18403fa37e5ce10d24b808b0b2c8a13598c943 100644 GIT binary patch delta 5739 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 RkE&WXY}lY}%9C>g{{}Enh9&?2 delta 4826 zcmb_edvF`Y8NXfW$FV{Tyat(U&G}^UE@W|1CEbzX7EV>1EB-W~9{WI3p~m0-{<2!6jT3qH3fMk9j2^M02c@dqOkuSDHGpGT0QQ8B3SQa}!P z4x(luB~ORF9M5@pcX(2sPK768Qc_K+(KNSnbT0=}+&(1|7USZ~(PK(76_&J+ z(^*{@a`Ma!dDZ@T4LRy34oO_7)S4##2Fr*e)( z)3H=^oHiY&bB@D#hgCaws8fR;&d<37#+L7`bdsPoxOXf*qfUkM)6I06?h+SDC3Y(5 z5jClRs>{RiRMqSomXTpLYv<4PIKUEj7?j0SBCez*PzJ*;kA9;cw_{S~#JwG@gR&|O z9X@#sEE9^h`_aZ0KD^8dO#2e~!AGb^`vt1e+{lFn$g6F*+a7}8 zsQ0SDTxN%qBMNgpsU60=1$g9%PtfI+#|8^^O^nIUTfKARnPbw$^wFb`RA*-B86P<)#;24m>XAJP)Pr1PaZ-wDFAh`TZHkzLf-9&}erIu* z3SSwYOsmp#af(W;gJEXTSzctXm|7xsi6f|{So~5mJ;fnhTk4^e0$y7xw`(qKMwBT| z(vZ4~!&JB+^XZVfO2sCRreGM2O%*4psY_(`iqpz68E6~vE#@p0-m9dRziz21(#hf8 z|8#$FE8id2EOW8Yc!i}-7?xhR>lw!$@tB$%SKzZDrj@NqDmE408=F;_gJ#y@ChESg z50{hq5me)sQi-H`1AJ%_M@Q7z#EgAWtiWkSBVL8f+9wi_~y^>Gj1By2gbt#HJ8gPqzMDU0KiI=@z*%kFEqBkgbT=2+~ zT#DQ8^?KbwIiNke|4ZaqC*G=s4-Dy@<+!z6=bX5?OjkSbQ%E0QiyudN)n%AP`ucU) zj`VOhejcM8Li^t{|HehO3Oistd$%A4t!Po>Yz;kYURficuUzEBS-^3k#O4qHjIdOU!} zN&PfrtYbCaOir!FN6@Gix_Oku8t_K6AIKq6M^HDpq7iREyR`F<3}_#mzl^-m2v2Uj z25&`PE%c)vGQS4<(RLsQNVOdg(GZ5AEO=gWiJpL0lzp&NMQ}-OFTAV;#mxr;ve&Of zL{an#aMO7OKhH((u}Q_pU}4OY@Mj<3@HJdR(-`p4Vx2@A@dWKy{c+ev08j%R9^ z+^-J0SsTN|0V*H?xDk*9qyTBa9N-Y(FyIK_DBu|2Ccw>rCb01p=x+gJ0P}$30BY|9 z;8wtGfRljR0bjK-8RiZkz6SU@;7-6@fNub(gS!Fu08Rl;1I_?6KwI9?H-V%Je7bO}jDNHD~p=&tTCuJU{=vJm=wU43lL}WKkApEygR>4;u~M zat56>UbT)dK$9&qE>P+MrCy`dYe12gPGXLI3xgmTxDB^V{N1{B0e;5oR@yCO@q+P& zb;0z(u)xG!wj4?~pbryTZ z0+Uw2b0F|*!1I9L09cr_0m=a7fEQryw}9UPeh+vNPyzFmfGR*Wpa!rCPz$I7)B{!n z8UT%eHGsc@o*nv^p}&C7V5E^ykENgd>sH*mE?YigrfVTv1=)45xdF{z`65YPJdJw; zz}^Duyw7m5S3#Pa%(mHVTgm3uI?Pwkg7KC)%$Ll9@t!$+*GlHTY#FKUW~rF~-S%m6zSrW= zdv3@7v^KS~+sw5qF zjM2yL02uu&wAo5yJ!@Rf8Uw7c0gS;s#~OpI!L!-bhKmiso;X<`41u;F?q;*qhKDu0 zAPp0>*}7~!i2CSu%+EhTPuv>7^l0gk^RXYU*3aLM8>`7ZUdvzfdmh6V+0KoH6mMdU zjl~oLNwc+)B^UjctI0J{yj}PI5MLpq8gA?ZIsnF>G)KQ-r8(A HarM6e--uOD diff --git a/src/WMS.Web.Domain/Entitys/Box.cs b/src/WMS.Web.Domain/Entitys/Box.cs index bd54a38c..d3c0512e 100644 --- a/src/WMS.Web.Domain/Entitys/Box.cs +++ b/src/WMS.Web.Domain/Entitys/Box.cs @@ -31,12 +31,11 @@ namespace WMS.Web.Domain.Entitys /// /// 创建时间(对应老OPS的创建时间) /// - public DateTime CreateTime { get; set; } + public DateTime CreateTime { get; set; } = DateTime.Now; /// /// 明细 /// - [NotMapped] public List Details = new List(); } } diff --git a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs new file mode 100644 index 00000000..7e040c84 --- /dev/null +++ b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Domain.Entitys; + +namespace WMS.Web.Domain.Infrastructure +{ + /// + /// 老ops箱信息 + /// + public interface IBoxRepositories + { + Task Get(string BoxBillNo); + } +} diff --git a/src/WMS.Web.Repositories/BoxRepositories.cs b/src/WMS.Web.Repositories/BoxRepositories.cs new file mode 100644 index 00000000..42234617 --- /dev/null +++ b/src/WMS.Web.Repositories/BoxRepositories.cs @@ -0,0 +1,43 @@ +using AutoMapper; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Domain.Entitys; +using WMS.Web.Domain.Infrastructure; +using WMS.Web.Domain.IService.Public; +using WMS.Web.Repositories.Configuration; + +namespace WMS.Web.Repositories +{ + /// + /// 老ops箱信息 + /// + public class BoxRepositories : IBoxRepositories + { + private readonly IMapper _mapper; + private readonly IServiceProvider _serviceProvider; + private readonly RepositoryDbContext _context; + private readonly ISingleDataService _singleDataService; + private readonly ILoginRepositories _loginRepositories; + private readonly IBasicsRepositories _basicsRepositories; + + public BoxRepositories(RepositoryDbContext context, IMapper mapper, IServiceProvider serviceProvider, + ISingleDataService singleDataService, ILoginRepositories loginRepositories, IBasicsRepositories basicsRepositories) + { + _context = context; + _mapper = mapper; + _serviceProvider = serviceProvider; + _singleDataService = singleDataService; + _loginRepositories = loginRepositories; + _basicsRepositories = basicsRepositories; + } + public async Task Get(string BoxBillNo) + { + return await _context.Box.Include(x=>x.Details) + .FirstOrDefaultAsync(f => f.BoxBillNo.Equals(BoxBillNo)); + } + } +} diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs index 3fc1d8ad..598a9565 100644 --- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs +++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs @@ -33,6 +33,7 @@ namespace Microsoft.Extensions.DependencyInjection services.AddHttpContextAccessor(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.AddTransient(); From c3fe21ffa84e9cd21f3efcc1fceb7524c02f073d Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Tue, 31 Oct 2023 10:25:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AE=B1=E5=8F=B7=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/SysConfigController.cs | 24 ++++++++- src/WMS.Web.Core/Dto/BoxDetailResponse.cs | 49 +++++++++++++++++++ .../Infrastructure/IBoxRepositories.cs | 3 ++ src/WMS.Web.Repositories/BoxRepositories.cs | 30 +++++++++++- 4 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 src/WMS.Web.Core/Dto/BoxDetailResponse.cs diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index def21d15..4ea68d47 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -23,10 +23,13 @@ namespace WMS.Web.Api.Controllers { private readonly ILoginService _loginService; private readonly IBasicsRepositories _basicsRepositories; - public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories) + private readonly IBoxRepositories _boxRepositories; + public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories, + IBoxRepositories boxRepositories) { _loginService = loginService; _basicsRepositories = basicsRepositories; + _boxRepositories = boxRepositories; } /// @@ -95,5 +98,24 @@ namespace WMS.Web.Api.Controllers var r = await _basicsRepositories.GetSubUcStockAsync(id, name); return Result>.ReSuccess(r); } + + /// + /// 根据箱号获取箱信息 + /// + /// 必填 + /// + [HttpGet] + [Route("GetBoxDetails")] + public async Task> GetBoxDetails([FromQuery] string billNo) + { + var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); + if (loginInfo == null || loginInfo.UserInfo == null) + return ResultList.ReFailure(ResultCodes.Token_Invalid_Error); + if(string.IsNullOrEmpty(billNo)) + return ResultList.ReSuccess(new List()); + + var r = await _boxRepositories.GetDetails(billNo); + return ResultList.ReSuccess(r); + } } } diff --git a/src/WMS.Web.Core/Dto/BoxDetailResponse.cs b/src/WMS.Web.Core/Dto/BoxDetailResponse.cs new file mode 100644 index 00000000..0e50d697 --- /dev/null +++ b/src/WMS.Web.Core/Dto/BoxDetailResponse.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto +{ + /// + /// 根据箱号获取物料信息 + /// + public class BoxDetailResponse + { + /// + /// 单据头ID + /// + public int Fid { get; set; } + /// + /// 箱Id + /// + public int BoxId { get; set; } + /// + /// 物料ID + /// + public int MaterialId { get; set; } + /// + /// 物料名称 + /// + public string MaterialName { get; set; } + /// + /// 物料编码 + /// + public string MaterialNumber { get; set; } + /// + /// 物料规格型号 + /// + public string Specifications { get; set; } + /// + /// 供应商ID + /// + public int SupplierId { get; set; } + /// + /// 数量(装箱数量) + /// + public decimal Qty { get; set; } + /// + /// 序列号集 + /// + public string SerialNumbers { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs index 7e040c84..70bcfc01 100644 --- a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Text; using System.Threading.Tasks; +using WMS.Web.Core.Dto; using WMS.Web.Domain.Entitys; namespace WMS.Web.Domain.Infrastructure @@ -12,5 +13,7 @@ namespace WMS.Web.Domain.Infrastructure public interface IBoxRepositories { Task Get(string BoxBillNo); + //根据箱号查询物料信息 + Task> GetDetails(string BoxBillNo); } } diff --git a/src/WMS.Web.Repositories/BoxRepositories.cs b/src/WMS.Web.Repositories/BoxRepositories.cs index 42234617..51b195e0 100644 --- a/src/WMS.Web.Repositories/BoxRepositories.cs +++ b/src/WMS.Web.Repositories/BoxRepositories.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using WMS.Web.Core.Dto; using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.IService.Public; @@ -36,8 +37,33 @@ namespace WMS.Web.Repositories } public async Task Get(string BoxBillNo) { - return await _context.Box.Include(x=>x.Details) - .FirstOrDefaultAsync(f => f.BoxBillNo.Equals(BoxBillNo)); + return await _context.Box.Include(x => x.Details) + .FirstOrDefaultAsync(f => f.BoxBillNo.Equals(BoxBillNo)); + } + /// + /// 根据箱号查询物料信息 + /// + /// + /// + public async Task> GetDetails(string BoxBillNo) + { + return await _context.BoxDetails + .GroupJoin(_context.Box, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders }) + .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order }) + .Where(w => w.order.BoxBillNo.Equals(BoxBillNo)) + .Select(s => new BoxDetailResponse() + { + Fid = s.detail.Fid, + BoxId = s.order.OpsBoxId, + MaterialId = s.detail.MaterialId, + MaterialName = "", + MaterialNumber = "", + Specifications = "", + SerialNumbers = s.detail.SerialNumbers, + SupplierId = s.detail.SupplierId, + Qty = s.detail.Qty + }) + .ToListAsync(); } } }