using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Reflection;
using WIDESEA_Core;
using WIDESEA_DTO.Stock;
using WIDESEA_IStockService;
namespace WIDESEA_WMSServer.Controllers.Stock
{
///
/// 库存视图
///
[Route("api/ProStockView")]
[Authorize, ApiController]
public class ProStockViewController : Controller
{
private readonly IProStockViewService _stockViewService;
public ProStockViewController(IProStockViewService stockViewService)
{
_stockViewService = stockViewService;
}
[HttpPost, Route("GetPageData")]
public PageGridData GetPageData([FromBody] PageDataOptions options)
{
return _stockViewService.GetPageData(options);
}
[HttpPost, Route("GetDetailPage")]
public object GetDetailPage([FromBody] PageDataOptions pageData)
{
return _stockViewService.GetDetailPage(pageData);
}
///
/// 导出数据
///
///
///
[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);
}
///
/// 获取平库库存
///
[HttpPost, Route("GetProPKSelectStocks"),AllowAnonymous]
public List GetProPKSelectStocks(int orderId)
{
return _stockViewService.GetProPKSelectStocks(orderId);
}
private object InvokeService(string methodName, object[] parameters)
{
Type t = _stockViewService.GetType();
List types = new List();
foreach (var param in parameters)
{
types.Add(param.GetType());
}
MethodInfo method = t.GetMethod(methodName, types.ToArray());
return method.Invoke(_stockViewService, parameters);
}
}
}