using DS.Module.Core; using DS.Module.ExcelModule; using DS.Module.ExcelModule.Model; using DS.Module.PrintModule; using DS.WMS.Core.Code.Interface; using LanguageExt.Common; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace DS.WMS.MainApi.Controllers { /// /// 打印服务 模块 /// public class PrintController : ApiController { private readonly IPrintService _invokeService; /// /// 构造函数 /// /// public PrintController(IPrintService invokeService) { _invokeService = invokeService; } /// /// 获取打印模块列表 /// /// [HttpGet] [Route("GetOpenPrintModuleList")] public DataResult GetOpenPrintModuleList() { return _invokeService.GetOpenPrintModuleList(); } /// /// 获取打印模板列表 /// /// [HttpGet] [Route("GetOpenPrintTemplateList")] public DataResult GetOpenPrintTemplateList([FromQuery] string id) { return _invokeService.GetOpenPrintTemplateList(id); } /// /// 获取Json打印信息 /// /// /// [HttpPost] [Route("GetOpenJsonPrintInfo")] public DataResult GetOpenJsonPrintInfo([FromBody] OpenJsonPrintReq req) { var res =_invokeService.GetOpenJsonPrintStream(req); return res; //if (res.Succeeded) //{ // var printData = res.Data.PrintData; // HttpContext.Response.Headers.Add("Content-Length", printData.Length.ToString()); // HttpContext.Response.Headers.Add("Content-Type", "charset=UTF-8"); // Byte[] info = Convert.FromBase64String(printData); // if (res.Data.PrintType =="1") // { // return File(info, "application/octet-stream;charset=UTF-8", Guid.NewGuid() + ".pdf"); // } // else if (res.Data.PrintType == "2") // { // return File(info, "application/octet-stream;charset=UTF-8", Guid.NewGuid() + ".xlsx"); // } // else // { // return File(info, "application/octet-stream;charset=UTF-8", Guid.NewGuid() + ".doc"); // } //} //else //{ // throw new Exception(res.Message); //} } /// /// 获取Json打印信息Stream /// /// /// [HttpPost] [Route("GetOpenJsonPrintStream")] public IActionResult GetOpenJsonPrintStream([FromBody] OpenJsonPrintReq req) { var res = _invokeService.GetOpenJsonPrintStream(req); if (res.Succeeded) { var printData = res.Data.PrintData; //HttpContext.Response.Headers.Add("Content-Length", printData.Length.ToString()); HttpContext.Response.Headers.Add("Content-Type", "charset=UTF-8"); Byte[] info = Convert.FromBase64String(printData); if (res.Data.PrintType == "1") { return File(info, "application/octet-stream;charset=UTF-8", "test.pdf"); } else if (res.Data.PrintType == "2") { return File(info, "application/octet-stream;charset=UTF-8", Guid.NewGuid() + ".xlsx"); } else { return File(info, "application/octet-stream;charset=UTF-8", Guid.NewGuid() + ".doc"); } } else { throw new Exception(res.Message); } } } }