打印接口统一

optimize
wanghaomei 2 years ago
parent b643225e65
commit 8cde73e112

@ -1662,9 +1662,10 @@ namespace Myshipping.Application
/// <param name="bookingId">订舱Id</param> /// <param name="bookingId">订舱Id</param>
/// <param name="templateId">打印模板ID</param> /// <param name="templateId">打印模板ID</param>
/// <param name="type">类型1pdf、2xlsx、3docx</param> /// <param name="type">类型1pdf、2xlsx、3docx</param>
/// <param name="printType">打印类型10FastReport、20Excel模板</param>
/// <returns></returns> /// <returns></returns>
[HttpGet("/BookingOrder/PrintFastReport")] [HttpGet("/BookingOrder/PrintFastReport")]
public async Task<string> PrintFastReport(long bookingId, long templateId, int type = 1) public async Task<string> 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); var printTemplate = await _repPrintTemplate.AsQueryable().Filter(null, true).FirstAsync(x => x.Id == templateId);
if (printTemplate == null) if (printTemplate == null)
@ -1672,38 +1673,46 @@ namespace Myshipping.Application
throw Oops.Bah(BookingErrorCode.BOOK115); throw Oops.Bah(BookingErrorCode.BOOK115);
} }
var bs = await GenPrintFile(bookingId, printTemplate, type); var fileName = string.Empty;
var fileType = ""; if (printType == BookingPrintTemplateType.FastReport)
if (type == 1)
{
fileType = ".pdf";
}
else if (type == 2)
{
fileType = ".xlsx";
}
else if (type == 3)
{
fileType = ".docx";
}
else
{ {
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"));//名称 fileName = HttpUtility.UrlEncode($"{bookingId}_{DateTime.Now.Ticks}{fileType}", Encoding.GetEncoding("UTF-8"));//名称
var opt = App.GetOptions<TempFileOptions>().Path; var opt = App.GetOptions<TempFileOptions>().Path;
var serverpath = Path.Combine(App.WebHostEnvironment.WebRootPath, opt);//服务器路径 var serverpath = Path.Combine(App.WebHostEnvironment.WebRootPath, opt);//服务器路径
if (!Directory.Exists(serverpath)) 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); var usrCfg = _repUserConfig.AsQueryable().First(x => x.CreatedUserId == UserManager.UserId && x.Type == printRecentListKey);
if (usrCfg == null) if (usrCfg == null)
{ {
@ -1720,7 +1729,6 @@ namespace Myshipping.Application
await _repUserConfig.UpdateAsync(usrCfg); await _repUserConfig.UpdateAsync(usrCfg);
} }
return fileName; return fileName;
} }

Loading…
Cancel
Save