From 91e636be9919050fa7c4f9d40d1bf7fdf232acce Mon Sep 17 00:00:00 2001 From: wet <1034391973@qq.com> Date: Fri, 18 Nov 2022 16:42:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Myshipping.Application/Entity/BookingFile.cs | 5 ++ .../Myshipping.Application.xml | 10 +++ .../BookingOrder/BookingOrderService.cs | 89 ++++++++++++++++--- .../BookingOrder/Dto/BookingOrderDto.cs | 5 ++ .../BookingOrder/Dto/BookingOrderInput.cs | 2 + .../BookingOrder/Dto/BookingOrderOutput.cs | 2 + 6 files changed, 102 insertions(+), 11 deletions(-) diff --git a/Myshipping.Application/Entity/BookingFile.cs b/Myshipping.Application/Entity/BookingFile.cs index ef75fe4a..ba8f21a0 100644 --- a/Myshipping.Application/Entity/BookingFile.cs +++ b/Myshipping.Application/Entity/BookingFile.cs @@ -35,5 +35,10 @@ namespace Myshipping.Application.Entity /// 租户 /// public string TenantName { get; set; } + + /// + /// 附件模块 + /// + public string Moudle { get; set; } } } \ No newline at end of file diff --git a/Myshipping.Application/Myshipping.Application.xml b/Myshipping.Application/Myshipping.Application.xml index 6003f51d..ce19b1bb 100644 --- a/Myshipping.Application/Myshipping.Application.xml +++ b/Myshipping.Application/Myshipping.Application.xml @@ -2280,6 +2280,11 @@ 租户 + + + 附件模块 + + 下货纸 @@ -5786,6 +5791,11 @@ 付款方 + + + 主单id + + 订舱主表输入参数 diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs index f4d77fff..a9d66ce9 100644 --- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs +++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs @@ -127,7 +127,7 @@ namespace Myshipping.Application public async Task Page([FromQuery] BookingOrderInput input) { List userlist = await DataFilterExtensions.GetDataScopeIdList(); - var entities = await _rep.AsQueryable() + var entities = await _rep.AsQueryable().Where(x => x.ParentId == 0) .WhereIF(!string.IsNullOrWhiteSpace(input.BSSTATUS), u => u.BSSTATUS == input.BSSTATUS) .WhereIF(!string.IsNullOrWhiteSpace(input.MBLNO), u => input.MBLNO.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Contains(u.MBLNO)) .WhereIF(!string.IsNullOrWhiteSpace(input.HBLNO), u => input.HBLNO.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Contains(u.HBLNO)) @@ -262,7 +262,23 @@ namespace Myshipping.Application [HttpPost("/BookingOrder/Add")] public async Task Add(AddBookingOrderInput input) { - + + if (input.ParentId == 0) + { + if (string.IsNullOrWhiteSpace(input.HBLNO)) + { + throw Oops.Bah("主单不需要填写分单号"); + } + } + else + { + if (string.IsNullOrWhiteSpace(input.MBLNO)) + { + throw Oops.Bah("请填写主提单号"); + } + } + + JsonUtil.PropToUpper(input, "ORDNO", "BSSTATUS", "YardContract", "YardContractTel", "YardContractEmail"); JsonUtil.TrimFields(input); if (input.ctnInputs != null) @@ -334,6 +350,20 @@ namespace Myshipping.Application [HttpPost("/BookingOrder/Update")] public async Task Update(UpdateBookingOrderInput input) { + if (input.ParentId == 0) + { + if (string.IsNullOrWhiteSpace(input.HBLNO)) + { + throw Oops.Bah("主单不需要填写分单号"); + } + } + else + { + if (string.IsNullOrWhiteSpace(input.MBLNO)) + { + throw Oops.Bah("请填写主提单号"); + } + } JsonUtil.PropToUpper(input, "ORDNO", "BSSTATUS", "YardContract", "YardContractTel", "YardContractEmail"); JsonUtil.TrimFields(input); if (input.ctnInputs != null) @@ -451,6 +481,27 @@ namespace Myshipping.Application }; } } + List HbList = new List(); + var _hblist = await _rep.AsQueryable().Where(x => x.ParentId == Id).ToListAsync(); + if (_hblist != null) + { + HbList = _hblist.Adapt>(); + foreach (var item in HbList) + { + var ctnlist = await _repCtn.AsQueryable().Where(x => x.BILLID == item.Id).ToListAsync(); + var ctninput = ctnlist.Adapt>(); + foreach (var it in ctninput) + { + var ctndetaillist = await _ctndetailrep.AsQueryable().Where(x => x.CTNID == it.Id).ToListAsync(); + it.ctnDetailInputs = ctndetaillist.Adapt>(); + } + + item.ctnInputs = ctninput; + } + + ordOut.HbList = HbList; + } + return ordOut; } #endregion @@ -552,7 +603,7 @@ namespace Myshipping.Application FilePath = fileRelaPath, TypeCode = dto.TypeCode, TypeName = dto.TypeName, - BookingId= dto.BookingId + BookingId = dto.BookingId }; await _bookingfile.InsertAsync(newFile); using (var stream = File.Create(fileAbsPath)) @@ -604,10 +655,26 @@ namespace Myshipping.Application [HttpGet("/BookingOrder/download")] public async Task Download(long id) { - var file = await _bookingfile.FirstOrDefaultAsync(x => x.Id == id); - var filePath = Path.Combine(App.WebHostEnvironment.WebRootPath, file.FilePath); - var fileName = HttpUtility.UrlEncode(file.FileName, Encoding.GetEncoding("UTF-8")); - var result = new FileStreamResult(new FileStream(filePath, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; + var printFile = await _bookingfile.FirstOrDefaultAsync(u => u.Id == id); + if (printFile == null) + { + throw Oops.Oh(BookingErrorCode.BOOK200); + } + var opt = App.GetOptions(); + var dirAbs = opt.basePath; + if (string.IsNullOrEmpty(dirAbs)) + { + dirAbs = App.WebHostEnvironment.WebRootPath; + } + + var fileFullPath = Path.Combine(dirAbs, printFile.FilePath); + if (!File.Exists(fileFullPath)) + { + throw Oops.Oh(BookingErrorCode.BOOK115); + } + + var fileName = HttpUtility.UrlEncode(printFile.FileName, Encoding.GetEncoding("UTF-8")); + var result = new FileStreamResult(new FileStream(fileFullPath, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; return result; } #endregion @@ -1708,12 +1775,12 @@ namespace Myshipping.Application throw Oops.Oh($"货明细的包装{cargo.KINDPKGS}的EDI代码未找到"); cargoModel.KINDPKGS_EDI_CODE = ediDetailPkgs.MapCode; - + primaryModel.CTNGOODSLIST.Add(cargoModel); } //这里临时赋值,等明确对应的扩展表字段后赋值 - #if DEBUG +#if DEBUG primaryModel.MasterBOLIndicator = "A1"; primaryModel.ConsigneeEdiCode = "CEE1"; primaryModel.ShipperEdiCode = "SHIP1"; @@ -1732,9 +1799,9 @@ namespace Myshipping.Application throw Oops.Bah(result.msg); } - - + + return result.extra.ToString(); } diff --git a/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderDto.cs b/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderDto.cs index e934217e..5caa8703 100644 --- a/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderDto.cs +++ b/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderDto.cs @@ -601,6 +601,11 @@ namespace Myshipping.Application /// public string FREIGHTPAYER { get; set; } + /// + /// 主单id + /// + public long ParentId { get; set; } + public List ctnInputs { get; set; } } diff --git a/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderInput.cs b/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderInput.cs index 94558f84..78d0a842 100644 --- a/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderInput.cs +++ b/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderInput.cs @@ -10,6 +10,8 @@ namespace Myshipping.Application /// public class BookingOrderInput : PageInputBase { + + /// /// 业务编号 /// diff --git a/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderOutput.cs b/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderOutput.cs index 8a416d36..3339ecbd 100644 --- a/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderOutput.cs +++ b/Myshipping.Application/Service/BookingOrder/Dto/BookingOrderOutput.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace Myshipping.Application { @@ -7,6 +8,7 @@ namespace Myshipping.Application /// public class BookingOrderOutput : BookingOrderDto { + public List HbList { get; set; } public BookingOrderUrlOutput Link { get; set; } }