// 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>> 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> 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 { 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); } } }