using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Threading.Tasks; using VueWebCoreApi.DLL.BLL; using VueWebCoreApi.Models; using VueWebCoreApi.Models.SystemSetting; using VueWebCoreApi.Tools; namespace VueWebCoreApi.Controllers { [ApiExplorerSettings(GroupName = "Excel导入")] [ApiController] [Route("api/[controller]")] //[ChannelActionFilter] public class ImportExcelController : Controller { #region[Excel导入模板列表] /// /// Excel导入模板列表 /// /// [Route(template: "ExcelModelData")] [HttpGet] public JsonResult ExcelModelData() { ToMessage mes = new ToMessage(); List list = ExcelList.ExcelData(); mes.code = "200"; mes.data = list; return Json(mes); } #endregion #region [Excel导入模板下载] /// /// Excel导入模板下载 /// /// /// [Route(template: "DownLoadExcel")] [HttpGet] public JsonResult DownLoadExcel(string FileCode = null) { ToMessage mes = new ToMessage(); List list = ExcelList.ExcelData(); list = list.Where(s => s.FileCode == FileCode).ToList(); var filename = list[0].FileName + ".xls"; string fileip = AppSetting.GetAppSetting("FileIP"); var msg = fileip + "/Excel/" + filename; mes.code = "200"; mes.data = msg; return Json(mes); } #endregion #region [Excel导入数据提交、模板验证、数据导入] /// /// Excel导入数据提交、模板验证、数据导入 /// /// 提交数据 /// [Route(template: "ExcelModelCheck")] [HttpPost] public JsonResult ExcelModelCheck([FromBody] ExceImport myModel) { string FileCode = myModel.FileCode; List dataTable = myModel.TableData; ExcelModelCheck list = new ExcelModelCheck(); list.json1 = ExcelCheck(dataTable, FileCode); //模板验证 if (list.json1.code == "301") { list.json1 = list.json1; return Json(list); } list.json2 = ExcelCheckData(myModel); //数据验证 if (list.json2.code == "301") { list.json2 = list.json2; return Json(list); } list.json3 = ExcelImportSubmit(dataTable, FileCode); //数据导入 if (list.json3.code == "300") { list.json3 = list.json3; return Json(list); } return Json(list); } #endregion #region [Excel导入模板验证] /// /// Excel导入模板验证 /// /// 提交数据 /// 文件编码 /// [Route(template: "ExcelCheckUpload")] [HttpGet] [ApiExplorerSettings(IgnoreApi = true)] public ToMessage ExcelCheck(List dataTable, string FileCode = null) { ToMessage mes = new ToMessage(); try { mes = ExcelCheckBLL.ExcelCheck(FileCode, dataTable); if (mes.code == "301") //上传模板不是指定模板 { return mes; } return mes; } catch (Exception e) { mes.code = "300"; mes.Message = e.Message; } return mes; } #endregion #region [Excel导入数据验证] /// /// Excel导入数据验证 /// /// 提交数据 /// [Route(template: "ExcelCheckData")] [HttpPost] [ApiExplorerSettings(IgnoreApi = true)] public ToMessage ExcelCheckData([FromBody] ExceImport myModel) { ToMessage mes = new ToMessage(); string message = ""; string StuCode = ""; int count = 0; List list = new List(); string FileCode = myModel.FileCode; List dataTable = myModel.TableData; list = ExcelCheckBLL.ExcelCheckData(FileCode, dataTable, out StuCode, out message, out count); mes.code = StuCode; mes.Message = message; mes.count = count; mes.data = list; return mes; } #endregion #region[Excel导入数据] /// /// Excel导入数据 /// /// 提交数据 /// 文件编码 /// [Route(template: "ExcelImportSubmit")] [HttpPost] [ApiExplorerSettings(IgnoreApi = true)] public ToMessage ExcelImportSubmit(List dataTable, string FileCode = null) { ToMessage mes = new ToMessage(); try { var token = HttpContext.Request.Headers["Token"].ToString(); User us = JwtTools.Denocode(token.ToString()); mes = ExcelCheckBLL.ExcelImportSubmit(FileCode, dataTable, us); if (mes.code == "300") { return mes; } return mes; } catch (Exception e) { mes.code = "300"; mes.Message = e.Message; } return mes; } #endregion } }