// Controllers/OrdersController.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 OrdersController : ControllerBase { private readonly OracleDbService _oracleDbService; public OrdersController(OracleDbService oracleDbService) { _oracleDbService = oracleDbService; } [HttpGet] public async Task>> GetOrders([FromQuery] string lineNo) { if (string.IsNullOrEmpty(lineNo)) { return BadRequest("LineNo is required."); } // 定义获取工单数据的 SQL 查询 var query = "SELECT daa001, nvl(b.qty, 0) 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 womcaa c on c.caa001=a.daa014 WHERE SJ_XTNO = :lineNo and ( daa018 = '待开工' or daa018='暂停'or daa018='已开工') and c.JA_BS<>1 and A.FSTATUS=1 order by a.BC_TIME "; // 定义 SQL 查询的参数 var parameters = new List { new OracleParameter(":lineNo", lineNo) }; // 使用封装的 GetAsync 方法获取工单数据 var orders = await _oracleDbService.GetAsync(query, reader => new Order { OrderNo = reader.GetString(0), // 假设 daa001 是工单编号 mrbgs=reader.GetString(1) //OrderName = "工单 " + reader.GetString(0) // 如果没有其他信息,将工单编号作为名称 }, parameters); return Ok(orders); // 返回结果 } //20250410 修改为调用存储过程 } }