// Controllers/MaterialController.cs
|
using Microsoft.AspNetCore.Mvc;
|
using System.Collections.Generic;
|
using System.Threading.Tasks;
|
using gdbg.Models; // 引用模型命名空间
|
using gdbg.Services; // 引用服务命名空间
|
using Oracle.ManagedDataAccess.Client; // Oracle 参数命名空间
|
|
namespace gdbg.Controllers
|
{
|
[ApiController]
|
[Route("api/[controller]")]
|
public class MaterialController : ControllerBase
|
{
|
private readonly OracleDbService _oracleDbService;
|
|
public MaterialController(OracleDbService oracleDbService)
|
{
|
_oracleDbService = oracleDbService;
|
}
|
|
[HttpGet]
|
public async Task<ActionResult<MaterialInfo>> GetMaterialInfo([FromQuery] string orderNo)
|
{
|
if (string.IsNullOrEmpty(orderNo))
|
{
|
return BadRequest("OrderNo is required.");
|
}
|
|
// SQL 查询获取物料编码、名称、规格型号、订单数量、已生产数
|
var query = @"
|
select s.ITEM_NO,s.ITEM_NAME,s.ITEM_MODEL,a.daa008,a.daa011 from womdaa a left join mes_items s on a.daa002=s.id
|
WHERE a.daa001 = :orderNo";
|
|
var parameters = new List<OracleParameter>
|
{
|
new OracleParameter(":orderNo", orderNo)
|
};
|
|
var materialInfoList = await _oracleDbService.GetAsync(query, reader => new MaterialInfo
|
{
|
ItemCode = reader.GetString(0), // 物料编码
|
ItemName = reader.GetString(1), // 物料名称
|
ItemSpec = reader.GetString(2), // 规格型号
|
OrderQuantity = reader.GetInt32(3), // 订单数量
|
ProducedQuantity = reader.GetInt32(4) // 已生产数
|
}, parameters);
|
|
if (materialInfoList.Count == 0)
|
return NotFound("Order not found.");
|
|
return Ok(materialInfoList.First());
|
}
|
}
|
}
|