using DocumentFormat.OpenXml.Office2010.Excel; using Infrastructure; using Infrastructure.Helpers; using Infrastructure.Helpers.Excel; using Infrastructure.Helpers.Excel.Model; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; //using OpenAuth.App.CodeTable; //using OpenAuth.App.CodeTable.Response; using OpenAuth.App.Import; using OpenAuth.App.Import.Response; using OpenAuth.Repository.Domain; using System.Data; using System.Linq; namespace OpenAuth.WebApi.Controllers { /// /// 日 期: 2024-06-18 /// 描 述: excel导入接口 /// [Route("api/[controller]/[action]")] [ApiController] public class ImportController : ControllerBase { private readonly ImportApp _app; public ImportController(ImportApp app) { _app = app; } /// /// 获取导入的分页数据 /// /// 查询关键字 /// 菜单id /// /// /// [HttpGet] public async Task>>> LoadExcelImportPage(string keyWord, string moduleId, int page, int limit) { return await _app.LoadExcelImportPage(keyWord, moduleId, page, limit); } /// /// 获取表单数据 /// /// 主键 /// [HttpGet] public async Task> GetForms(string id) { var result = new Response(); try { result.Result = new ExcelImportDto(); result.Result.Entity = await _app.GetEntity(id); result.Result.List = await _app.GetFieldList(id); } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } /// /// 获取导入配置列表根据模块ID /// /// 功能模块主键 /// [HttpGet] public async Task>> GetModuleList(string moduleId) { var result = new Response>(); try { result.Result = await _app.GetModuleList(moduleId); } catch (Exception ex) { result.Code = 500; result.Message = ex.Message; } return result; } /// /// 删除数据 /// /// 主键 /// [HttpPost] public async Task> Delete(string id) { var result = new Response(); try { result = await _app.DeleteEntity(id); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 新增 /// ///数据 /// [HttpPost] public async Task> AddExcelImport(ExcelImportDto dto) { var result = new Response(); try { result = await _app.SaveEntity(string.Empty, dto.Entity, dto.List); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 更新数据 /// ///数据 /// [HttpPost] public async Task> UpdateExcelImport(string id, ExcelImportDto dto) { var result = new Response(); try { result = await _app.SaveEntity(id, dto.Entity, dto.List); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } //#region 扩展方法 ///// ///// 下载文件 ///// ///// 文件id ///// //[HttpGet] //public async Task DownSchemeFile(string id) //{ // var templateInfo = await _app.GetEntity(id); // var fileds = await _app.GetFieldList(id); // //设置导出格式 // ExcelConfig excelconfig = new ExcelConfig(); // excelconfig.FileName = templateInfo.Name + ".xls"; // excelconfig.IsAllSizeColumn = true; // excelconfig.ColumnEntity = new List(); // //表头 // DataTable dt = new DataTable(); // foreach (var col in fileds) // { // if (col.RelationType != 1 && col.RelationType != 4 && col.RelationType != 5 && col.RelationType != 6 && col.RelationType != 7) // { // excelconfig.ColumnEntity.Add(new ColumnModel() // { // Column = col.Name, // ExcelColumn = col.ColName, // Alignment = "center", // }); // dt.Columns.Add(col.Name, typeof(string)); // } // } // return File(ExcelHelper.ExportMemoryStream(dt, excelconfig), "application/ms-excel", excelconfig.FileName); //} ///// ///// excel文件导入(通用) ///// ///// 模板Id ///// 文件主键 ///// 分片数 ///// 文件扩展名 ///// //[HttpPost] //public async Task> ExecuteImportExcel(string templateId, string path) //{ // var result = new Response(); // try // { // // 获取excel文件数据(暂时只支持但sheet导入,后续升级) // DataTable dt = ExcelHelper.ExcelImport(path); // var res2 = await _app.ImportTable(templateId, dt); // var data = new // { // Success = res2.snum, // Fail = res2.fnum, // data = res2.elist // }; // result.Result = true; // return result; // } // catch (Exception ex) { } // { // result.Result = false; // result.Message = "导入数据失败!"; // return result; // } //} //#endregion } }