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
}
}