using System.Dynamic;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using MES.Service.service.Warehouse;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
namespace MESApplication.Controllers.Warehouse;
[ApiController]
[Route("api/[controller]")]
public class MesInvItemStocksController : ControllerBase
{
private readonly MesInvItemStocksManager m = new();
///
/// 获取可退货物料库存(旧版本,保留兼容)
///
///
[HttpPost("GetReturnableStocks")]
public ResponseResult GetReturnableStocks()
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.GetReturnableStocks();
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 获取可退货物料库存(带分页和搜索)
///
/// 搜索请求参数
///
[HttpPost("GetReturnableStocksWithPaging")]
public ResponseResult GetReturnableStocksWithPaging([FromBody] ReturnableStockSearchDto searchDto)
{
try
{
var result = m.GetReturnableStocks(searchDto);
return new ResponseResult
{
status = 0,
message = "查询成功",
data = result
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 生成退料请求单
///
/// 退料请求参数
///
[HttpPost("CreateReturnMaterialRequest")]
public ResponseResult CreateReturnMaterialRequest([FromBody] ItemStockQueryDto dto)
{
try
{
var result = m.CreateReturnMaterialRequest(dto);
if (result)
{
return new ResponseResult
{
status = 0,
message = "退料请求单生成成功",
data = null
};
}
else
{
return new ResponseResult
{
status = 1,
message = "退料请求单生成失败",
data = null
};
}
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 导出可退货物料库存为Excel
///
/// 搜索请求参数
/// Excel文件
[HttpPost("ExportReturnableStocks")]
public IActionResult ExportReturnableStocks([FromBody] ReturnableStockSearchDto searchDto)
{
try
{
var fileBytes = m.ExportReturnableStocksToExcel(searchDto);
var fileName = $"可退货物料库存_{DateTime.Now:yyyyMMddHHmmss}.xlsx";
return File(fileBytes,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
fileName);
}
catch (Exception ex)
{
return BadRequest(new ResponseResult
{
status = 1,
message = $"导出失败: {ex.Message}",
data = null
});
}
}
}