diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs index 323f1191..bcacf6c3 100644 --- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs +++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs @@ -1666,9 +1666,10 @@ namespace Myshipping.Application /// 订舱Id /// 打印模板ID /// 类型,1:pdf、2:xlsx、3:docx + /// 打印类型,10:FastReport、20:Excel模板 /// [HttpGet("/BookingOrder/PrintFastReport")] - public async Task PrintFastReport(long bookingId, long templateId, int type = 1) + public async Task PrintFastReport(long bookingId, long templateId, int type = 1, BookingPrintTemplateType printType = BookingPrintTemplateType.FastReport) { var printTemplate = await _repPrintTemplate.AsQueryable().Filter(null, true).FirstAsync(x => x.Id == templateId); if (printTemplate == null) @@ -1676,38 +1677,46 @@ namespace Myshipping.Application throw Oops.Bah(BookingErrorCode.BOOK115); } - var bs = await GenPrintFile(bookingId, printTemplate, type); - var fileType = ""; - if (type == 1) - { - fileType = ".pdf"; - } - else if (type == 2) - { - fileType = ".xlsx"; - } - else if (type == 3) - { - fileType = ".docx"; - } - else + var fileName = string.Empty; + if (printType == BookingPrintTemplateType.FastReport) { - throw Oops.Bah("类型参数不正确"); - } + var bs = await GenPrintFile(bookingId, printTemplate, type); + var fileType = ""; + if (type == 1) + { + fileType = ".pdf"; + } + else if (type == 2) + { + fileType = ".xlsx"; + } + else if (type == 3) + { + fileType = ".docx"; + } + else + { + throw Oops.Bah("类型参数不正确"); + } - var fileName = HttpUtility.UrlEncode($"{bookingId}_{DateTime.Now.Ticks}{fileType}", Encoding.GetEncoding("UTF-8"));//名称 - var opt = App.GetOptions().Path; - var serverpath = Path.Combine(App.WebHostEnvironment.WebRootPath, opt);//服务器路径 - if (!Directory.Exists(serverpath)) + fileName = HttpUtility.UrlEncode($"{bookingId}_{DateTime.Now.Ticks}{fileType}", Encoding.GetEncoding("UTF-8"));//名称 + var opt = App.GetOptions().Path; + var serverpath = Path.Combine(App.WebHostEnvironment.WebRootPath, opt);//服务器路径 + if (!Directory.Exists(serverpath)) + { + Directory.CreateDirectory(serverpath); + } + + var fullPath = Path.Combine(serverpath, fileName); + await File.WriteAllBytesAsync(fullPath, bs); + } + else if (printType == BookingPrintTemplateType.ExcelTemplate) { - Directory.CreateDirectory(serverpath); + //todo:excel模板打印功能 } - var fullPath = Path.Combine(serverpath, fileName); - await File.WriteAllBytesAsync(fullPath, bs); - //记录打印次数和时间,用于前端动态展示常用的打印类型 - var printRecentListKey = $"{PrintRecentListTypeKey}_{printTemplate.CateCode}_{BookingPrintTemplateType.FastReport}"; + var printRecentListKey = $"{PrintRecentListTypeKey}_{printTemplate.CateCode}_{printType}"; var usrCfg = _repUserConfig.AsQueryable().First(x => x.CreatedUserId == UserManager.UserId && x.Type == printRecentListKey); if (usrCfg == null) { @@ -1724,7 +1733,6 @@ namespace Myshipping.Application await _repUserConfig.UpdateAsync(usrCfg); } - return fileName; }