|
|
@ -27,16 +27,15 @@ namespace Myshipping.Report.Controllers
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// 生成订舱报表结果
|
|
|
|
/// 生成订舱报表结果
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="templateFile">模板文件路径</param>
|
|
|
|
|
|
|
|
/// <param name="bookingId">订舱ID</param>
|
|
|
|
/// <param name="bookingId">订舱ID</param>
|
|
|
|
/// <param name="type">类型,1:pdf、2:xlsx</param>
|
|
|
|
/// <param name="type">类型,1:pdf、2:xlsx</param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpGet]
|
|
|
|
[HttpPost]
|
|
|
|
public ActionResult BookingReport(string templateFile, long bookingId, int type = 1)
|
|
|
|
public ActionResult BookingReport(long bookingId, int type = 1)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var resp = new RespCommonData();
|
|
|
|
var resp = new RespCommonData();
|
|
|
|
|
|
|
|
|
|
|
|
if (System.IO.File.Exists(templateFile))
|
|
|
|
if (Request.Files.Count > 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var savePath = ConfigurationManager.AppSettings["ReportFileSavePath"];
|
|
|
|
var savePath = ConfigurationManager.AppSettings["ReportFileSavePath"];
|
|
|
|
if (string.IsNullOrEmpty(savePath)) //未配置保存路径时,使用当前目录
|
|
|
|
if (string.IsNullOrEmpty(savePath)) //未配置保存路径时,使用当前目录
|
|
|
@ -49,9 +48,20 @@ namespace Myshipping.Report.Controllers
|
|
|
|
Directory.CreateDirectory(savePath);
|
|
|
|
Directory.CreateDirectory(savePath);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var fileExt = Path.GetExtension(Request.Files[0].FileName).ToLower();
|
|
|
|
|
|
|
|
if (fileExt != ".frx")
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
resp.Success = false;
|
|
|
|
|
|
|
|
resp.Message = $"文件类型不正确:{fileExt}";
|
|
|
|
|
|
|
|
return Json(resp);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var tmpFile = Path.Combine(savePath, $"{Guid.NewGuid()}{fileExt}");
|
|
|
|
|
|
|
|
Request.Files[0].SaveAs(tmpFile);
|
|
|
|
|
|
|
|
|
|
|
|
//生成报表
|
|
|
|
//生成报表
|
|
|
|
FastReport.Report report = new FastReport.Report();
|
|
|
|
FastReport.Report report = new FastReport.Report();
|
|
|
|
report.Load(templateFile);
|
|
|
|
report.Load(tmpFile);
|
|
|
|
|
|
|
|
|
|
|
|
foreach (FastReport.Data.JsonConnection.JsonDataSourceConnection conn in report.Dictionary.Connections)
|
|
|
|
foreach (FastReport.Data.JsonConnection.JsonDataSourceConnection conn in report.Dictionary.Connections)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -65,21 +75,23 @@ namespace Myshipping.Report.Controllers
|
|
|
|
|
|
|
|
|
|
|
|
if (type == 1) //pdf
|
|
|
|
if (type == 1) //pdf
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var saveFile = Path.Combine(savePath, $"{bookingId}_{DateTime.Now.Ticks}.pdf");
|
|
|
|
var fileName = $"{bookingId}_{DateTime.Now.Ticks}.pdf";
|
|
|
|
|
|
|
|
var saveFile = Path.Combine(savePath, fileName);
|
|
|
|
PDFExport pdfExport = new PDFExport();
|
|
|
|
PDFExport pdfExport = new PDFExport();
|
|
|
|
pdfExport.Export(report, saveFile);
|
|
|
|
pdfExport.Export(report, saveFile);
|
|
|
|
resp.Success = true;
|
|
|
|
resp.Success = true;
|
|
|
|
resp.Message = "生成成功";
|
|
|
|
resp.Message = "生成成功";
|
|
|
|
resp.Data = saveFile;
|
|
|
|
resp.Data = fileName;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (type == 2) //
|
|
|
|
else if (type == 2) //
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var saveFile = Path.Combine(savePath, $"{bookingId}_{DateTime.Now.Ticks}.xlsx");
|
|
|
|
var fileName = $"{bookingId}_{DateTime.Now.Ticks}.xlsx";
|
|
|
|
|
|
|
|
var saveFile = Path.Combine(savePath, fileName);
|
|
|
|
Excel2007Export excelExport = new Excel2007Export();
|
|
|
|
Excel2007Export excelExport = new Excel2007Export();
|
|
|
|
excelExport.Export(report, saveFile);
|
|
|
|
excelExport.Export(report, saveFile);
|
|
|
|
resp.Success = true;
|
|
|
|
resp.Success = true;
|
|
|
|
resp.Message = "生成成功";
|
|
|
|
resp.Message = "生成成功";
|
|
|
|
resp.Data = saveFile;
|
|
|
|
resp.Data = fileName;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -87,15 +99,38 @@ namespace Myshipping.Report.Controllers
|
|
|
|
resp.Message = "类型参数不正确";
|
|
|
|
resp.Message = "类型参数不正确";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
return Json(resp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
resp.Success = false;
|
|
|
|
resp.Success = false;
|
|
|
|
resp.Message = "未找到模板文件";
|
|
|
|
resp.Message = "未上传模板文件";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return Json(resp);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 根据文件名获取文件
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="fileName"></param>
|
|
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
|
|
[HttpGet]
|
|
|
|
|
|
|
|
public ActionResult GetFile(string fileName)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var basePath = ConfigurationManager.AppSettings["ReportFileSavePath"];
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(basePath)) //未配置保存路径时,使用当前目录
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
basePath = Server.MapPath("~/ReportFiles");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var saveFile = Path.Combine(basePath, fileName);
|
|
|
|
|
|
|
|
if (System.IO.File.Exists(saveFile))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return File(saveFile, "application/octet-stream", HttpUtility.UrlEncode(fileName, Encoding.GetEncoding("UTF-8")));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
return HttpNotFound();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|