// Controllers/LinesController.cs
|
using Microsoft.AspNetCore.Mvc;
|
using System.Collections.Generic;
|
using System.Threading.Tasks;
|
using gdbg.Models; // 引用模型命名空间
|
using gdbg.Services;
|
using Oracle.ManagedDataAccess.Client; // 引用服务命名空间
|
|
namespace gdbg.Controllers
|
{
|
[ApiController]
|
[Route("api/[controller]")]
|
public class LinesController : ControllerBase
|
{
|
private readonly OracleDbService _oracleDbService;
|
|
public LinesController(OracleDbService oracleDbService)
|
{
|
_oracleDbService = oracleDbService;
|
}
|
|
[HttpGet]
|
public async Task<ActionResult<IEnumerable<Line>>> GetLines()
|
{
|
// 定义获取线体数据的 SQL 查询
|
var query = "SELECT LINE_NO, LINE_NAME FROM MES_LINE where DEPARTMENTCODE='BM000010' order by LINE_NO";
|
|
// 使用封装的 GetAsync 方法获取线体数据
|
var lines = await _oracleDbService.GetAsync(query, reader => new Line
|
{
|
LineNo = reader.GetString(0),
|
LineName = reader.GetString(1)
|
});
|
|
return Ok(lines); // 返回结果
|
}
|
|
[HttpGet("{lineCode}")]
|
public async Task<ActionResult<Line>> GetLineByCode(string lineCode)
|
{
|
var query = "SELECT LINE_NO, LINE_NAME FROM MES_LINE WHERE LINE_NO = :LineNo and DEPARTMENTCODE='BM000010' order by LINE_NO";
|
|
// 使用 OracleParameter 来传递参数
|
var parameters = new List<OracleParameter>
|
{
|
new OracleParameter(":LineNo", lineCode)
|
};
|
|
// 使用现有的 GetAsync 方法查询数据
|
var lines = await _oracleDbService.GetAsync(query, reader => new Line
|
{
|
LineNo = reader.GetString(0),
|
LineName = reader.GetString(1)
|
}, parameters);
|
|
// 确保只返回单条记录
|
var line = lines.FirstOrDefault();
|
|
if (line == null)
|
{
|
return NotFound(new { Message = "Line not found" });
|
}
|
|
return Ok(line);
|
}
|
|
}
|
}
|