using DS.Module.Core; using DS.Module.Core.Extensions; using DS.Module.Core.Helpers; 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; using Newtonsoft.Json; namespace DS.WMS.MainApi.Controllers { /// /// 打印服务 模块 /// public class PrintController : ApiController { private readonly IPrintService _invokeService; /// /// 构造函数 /// /// public PrintController(IPrintService invokeService) { _invokeService = invokeService; } /// /// 获取打印模块列表 /// /// [HttpGet] [Route("GetOpenPrintModuleList")] [Obsolete] public DataResult GetOpenPrintModuleList() { return _invokeService.GetOpenPrintModuleList(); } /// /// 获取打印模板列表 /// /// [HttpGet] [Route("GetOpenPrintTemplateList")] [Obsolete] public DataResult GetOpenPrintTemplateList([FromQuery] string id) { return _invokeService.GetOpenPrintTemplateList(id); } /// /// 获取打印模板列表-异步 /// /// [HttpGet] [Obsolete] [Route("GetOpenPrintTemplateListAsync")] public async Task GetOpenPrintTemplateListAsync([FromQuery] string id) { return await _invokeService.GetOpenPrintTemplateListAsync(id); } /// /// 获取Json打印信息 /// /// /// [HttpPost] [Obsolete] [Route("GetOpenJsonPrintInfo")] public DataResult GetOpenJsonPrintInfo([FromBody] OpenJsonPrintReq req) { var res =_invokeService.GetOpenJsonPrintInfo(req); return res; } /// /// 获取Json打印信息-异步 /// /// /// [HttpPost] [Obsolete] [Route("GetOpenJsonPrintInfoAsync")] public async Task GetOpenJsonPrintInfoAsync([FromBody] OpenJsonPrintReq req) { var res = await _invokeService.GetOpenJsonPrintInfoAsync(req); return res; } ///// ///// 获取Json打印信息Stream ///// ///// ///// //[HttpPost] //[Obsolete] //[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); // } //} /// /// 获取Json本地打印信息 /// /// /// [HttpPost] [Route("GetJsonPrintInfoAsync")] public async Task> GetJsonPrintInfoAsync([FromBody] OpenJsonPrintReq req) { var url = AppSetting.Configuration["PrintService:LocalPrintUrl"]; if (url.IsNull()) return await Task.FromResult(DataResult.Failed("未配置本地打印地址")); var res = await RequestHelper.PostAsyncNoHeaders(url, req.ToJson()); var result = JsonConvert.DeserializeObject>(res); if (result.Succeeded) { return await Task.FromResult(DataResult.Success(result.Message)); } else { return await Task.FromResult(DataResult.Failed(result.Message)); } } } }