using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Mvc;
|
using System.Reflection;
|
using WIDESEA_Core;
|
using WIDESEA_IStockService;
|
using WIDESEA_StockService;
|
|
namespace WIDESEA_WMSServer.Controllers.Stock
|
{
|
[Route("api/MaterielnfoStatistics")]
|
[Authorize,ApiController]
|
public class MaterielnfoStatisticsController : Controller
|
{
|
private readonly IMaterielnfoStatisticsService _materielnfoStatisticsService;
|
|
public MaterielnfoStatisticsController (IMaterielnfoStatisticsService materielnfoStatisticsService)
|
{
|
_materielnfoStatisticsService = materielnfoStatisticsService;
|
}
|
[HttpPost,Route("GetPageData")]
|
public object GetPageData([FromBody] PageDataOptions options)
|
{
|
return _materielnfoStatisticsService.GetPageGridData(options);
|
}
|
|
/// <summary>
|
/// 导出数据
|
/// </summary>
|
/// <param name="loadData"></param>
|
/// <returns></returns>
|
[HttpPost, Route("Export")]
|
public virtual ActionResult Export([FromBody] PageDataOptions loadData)
|
{
|
WebResponseContent result = InvokeService("Export", new object[] { loadData }) as WebResponseContent;
|
if (result.Status)
|
return File(
|
System.IO.File.ReadAllBytes(result.Data.ToString()),
|
System.Net.Mime.MediaTypeNames.Application.Octet,
|
Path.GetFileName(result.Data.ToString())
|
);
|
return Json(result);
|
}
|
private object InvokeService(string methodName, object[] parameters)
|
{
|
Type t = _materielnfoStatisticsService.GetType();
|
List<Type> types = new List<Type>();
|
foreach (var param in parameters)
|
{
|
types.Add(param.GetType());
|
}
|
MethodInfo method = t.GetMethod(methodName, types.ToArray());
|
return method.Invoke(_materielnfoStatisticsService, parameters);
|
}
|
}
|
}
|