using Microsoft.AspNetCore.Mvc; using System; 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 PersonsController : ControllerBase { private readonly OracleDbService _oracleDbService; public PersonsController(OracleDbService oracleDbService) { _oracleDbService = oracleDbService; } [HttpGet] public async Task>> GetPersons() { var query = "select STAFF_NO,STAFF_NAME from MES_STAFF where DEPARTMENT_NAME=115066"; var persons = await _oracleDbService.GetAsync(query, reader => new Person { PersonId = reader.GetString(0), PersonName = reader.GetString(1) }); return Ok(persons); } [HttpGet("{personnelCode}")] public async Task>> GetPersonnelByCode(string personnelCode) { var query = "select STAFF_NO,STAFF_NAME from MES_STAFF where STAFF_NO=:PersonnelCode"; // 使用 OracleParameter 来传递参数 var parameters = new List { new OracleParameter(":PersonnelCode", personnelCode) }; // 使用现有的 GetAsync 方法查询数据 var personnelList = await _oracleDbService.GetAsync(query, reader => new Personnel { PersonnelCode = reader.GetString(0), PersonnelName = reader.GetString(1) }, parameters); // 确保只返回单条记录 var personnel = personnelList.FirstOrDefault(); if (personnel == null) { return NotFound(new { Message = "Personnel not found" }); } return Ok(personnel); } } }