using Microsoft.AspNetCore.Mvc;
using MiniExcelLibs;
using NPOI.SS.UserModel;
using SqlSugar;
using System.Xml.Linq;
using WCS.BLL.DbModels;
using WCS.BLL.Manager;
using WCS.BLL.Services.IService;
using WCS.BLL.Services.Service;
using WCS.DAL.Db;
using WCS.Model;
using WCS.Model.ApiModel;
using WCS.Model.ApiModel.MatInventoryDetail;
using WCS.WebApi.Helper;
namespace WCS.WebApi.Controllers
{
///
/// 接口记录
///
[ApiController]
[Route("[controller]")]
public class MatInventoryDetailController : ControllerBase
{
public IMatInventoryDetailService _matInventoryDetailService { get; set; }
public MatInventoryDetailController(IMatInventoryDetailService matInventoryDetailService)
{
_matInventoryDetailService = matInventoryDetailService;
}
[Route("getMatInventoryDetail")]
[HttpPost(Name = "getMatInventoryDetail")]
public async Task getMatInventoryDetail(GetMatInventoryDetailRequest request)
{
return await _matInventoryDetailService.getMatInventoryDetail(request);
}
[HttpPost("exportMatInventoryDetail")]
public async Task exportMatInventoryDetail([FromBody] GetMatInventoryDetailRequest request)
{
var result = await _matInventoryDetailService.exportMatInventoryDetail(request);
var data = result.Data?.Lists;
var columns = new[]
{
new ExportableColumn("序号","RowNumber"),
new ExportableColumn("物料编码","MatCode"),
new ExportableColumn("物料名称","MatName"),
new ExportableColumn("规格","MatSpec"),
new ExportableColumn("批次","MatBatch"),
new ExportableColumn("数量","MatQty"),
new ExportableColumn("库位","StoreCode"),
new ExportableColumn("入库时间","InstoreTime"),
new ExportableColumn("物料SN", "MatSN"),
};
if (data == null)
{
return NotFound();
}
else
return ExportExcelHelper.Export("导出数据", columns, data);
// 导出到Excel
//using (var stream = new MemoryStream())
//{
// // 获取当前工作目录
// string currentPath = Directory.GetCurrentDirectory();
// // 创建文件路径
// string filePath = Path.Combine(currentPath, "data.xlsx");
// //MiniExcel.SaveAs(filePath, data);
// MiniExcel.SaveAs(stream, data);
// // 重置位置
// //stream.Position = 0;
// //// 通过接口下载文件
// //return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "data.xlsx");
// var isXlsx = true;
// var saveAsFileName = string.Format("{0}-{1:d}.{2}", "测试", DateTime.Now, (isXlsx ? "xlsx" : "xls")).Replace("/", "-");
// var contentType = isXlsx ? "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" : "application/vnd.ms-excel";
// return new FileContentResult(stream.ToArray(), contentType) { FileDownloadName = saveAsFileName };
//}
}
[Route("getMatInventorySummary")]
[HttpPost(Name = "getMatInventorySummary")]
public async Task getMatInventorySummary(GetMatInventorySummaryRequest request)
{
return await _matInventoryDetailService.getMatInventorySummary(request);
}
[Route("compareMatInventoryDetail")]
[HttpPost(Name = "compareMatInventoryDetail")]
public async Task compareMatInventoryDetail(CompareMatInventoryDetailRequest request)
{
return await _matInventoryDetailService.compareMatInventoryDetail(request);
}
}
}