// Controllers/CapacityController.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 CapacityController : ControllerBase { private readonly OracleDbService _oracleDbService; public CapacityController(OracleDbService oracleDbService) { _oracleDbService = oracleDbService; } [HttpGet] public async Task> GetDailyCapacity([FromQuery] string lineNo) { if (string.IsNullOrEmpty(lineNo)) { return BadRequest("LineNo is required."); } // 定义获取每日产能数据的 SQL 查询 var query = "SELECT nvl(sum(qty), 0),li.IS_DJ,li.IS_WH FROM womdaa a left join (select sum(QUANTITY) qty, PBILL_NO from MES_WORK_PROD_C_DETAILS where to_char(CREATE_DATE, 'YYYY-MM-DD') = to_char(sysdate, 'YYYY-MM-DD') group by PBILL_NO) b on a.daa001 = b.PBILL_NO left join MES_LINE li on a.SJ_XTNO=li.LINE_NO WHERE SJ_XTNO = :lineNo group by li.IS_DJ, li.IS_WH"; // 根据你的数据库表修改 // 定义 SQL 查询的参数 var parameters = new List { new OracleParameter(":lineNo", lineNo) }; // 使用封装的 GetSingleAsync 方法获取每日产能数据 var capacity = await _oracleDbService.GetAsync(query, reader => new DailyCapacity { Daily = reader.GetDecimal(0), // 假设 daily_capacity 是 decimal 类型 is_DJ = reader.GetInt32(1), is_WH = reader.GetInt32(2) }, parameters); ; ; ; if (capacity == null) { return NotFound("Daily capacity not found."); } return Ok(capacity); } } }