打印接口统一

optimize
wanghaomei 2 years ago
parent b643225e65
commit 8cde73e112

@ -1662,9 +1662,10 @@ namespace Myshipping.Application
/// <param name="bookingId">订舱Id</param>
/// <param name="templateId">打印模板ID</param>
/// <param name="type">类型1pdf、2xlsx、3docx</param>
/// <param name="printType">打印类型10FastReport、20Excel模板</param>
/// <returns></returns>
[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);
if (printTemplate == null)
@ -1672,38 +1673,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<TempFileOptions>().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<TempFileOptions>().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)
{
@ -1720,7 +1729,6 @@ namespace Myshipping.Application
await _repUserConfig.UpdateAsync(usrCfg);
}
return fileName;
}

Loading…
Cancel
Save