using Microsoft.AspNetCore.Mvc;
|
using System.Threading.Tasks;
|
using gdbg.Services;
|
using System.Collections.Generic;
|
using Oracle.ManagedDataAccess.Client;
|
using gdbg.Models;
|
|
namespace gdbg.Controllers
|
{
|
[ApiController]
|
[Route("api/[controller]")]
|
public class InspectionController : ControllerBase
|
{
|
private readonly OracleDbService _oracleDbService;
|
|
public InspectionController(OracleDbService oracleDbService)
|
{
|
_oracleDbService = oracleDbService;
|
}
|
|
[HttpPost("firstInspection")]
|
public async Task<IActionResult> FirstInspection([FromBody] FirstInspectionRequest request)
|
{
|
try
|
{
|
string procedureCall = "BEGIN PRC_ZSSJ_TJ(:pi_user, :pi_release_no, :po_flag, :po_text); END;";
|
|
var poFlag = new OracleParameter("po_flag", OracleDbType.Int32) { Direction = System.Data.ParameterDirection.Output };
|
var poText = new OracleParameter("po_text", OracleDbType.Varchar2, 2000) { Direction = System.Data.ParameterDirection.Output };
|
|
var parameters = new List<OracleParameter>
|
{
|
new OracleParameter("pi_user", request.UserId),
|
new OracleParameter("pi_release_no", request.ReleaseNo),
|
poFlag,
|
poText
|
};
|
|
await _oracleDbService.ExecuteProcedureAsync(procedureCall, parameters);
|
|
// 安全地转换输出标志
|
int flag = Convert.ToInt32(poFlag.Value.ToString());
|
string message = poText.Value.ToString();
|
|
if (flag == 0)
|
{
|
return Ok(new { message = message });
|
}
|
else
|
{
|
return BadRequest(new { message = message });
|
}
|
}
|
catch (Exception ex)
|
{
|
return StatusCode(500, new { message = "执行首检送检时发生错误。", error = ex.Message });
|
}
|
}
|
|
|
[HttpPost("startProduction")]
|
public async Task<IActionResult> StartProduction([FromBody] StartProductionRequest request)
|
{
|
try
|
{
|
string procedureCall = "BEGIN PQC_ZSBG_GDKG(:pi_user,:pi_order_no, :po_flag, :po_text); END;";
|
|
var poFlag = new OracleParameter("po_flag", OracleDbType.Int32) { Direction = System.Data.ParameterDirection.Output };
|
var poText = new OracleParameter("po_text", OracleDbType.Varchar2, 2000) { Direction = System.Data.ParameterDirection.Output };
|
|
var parameters = new List<OracleParameter>
|
{
|
new OracleParameter("pi_user", request.UserId),
|
new OracleParameter("pi_order_no", request.OrderNo),
|
|
poFlag,
|
poText
|
};
|
|
await _oracleDbService.ExecuteProcedureAsync(procedureCall, parameters);
|
|
// 安全地转换输出标志
|
int flag = Convert.ToInt32(poFlag.Value.ToString());
|
string message = poText.Value.ToString();
|
|
if (flag == 0)
|
{
|
return Ok(new { message = message });
|
}
|
else
|
{
|
return BadRequest(new { message = message });
|
}
|
}
|
catch (Exception ex)
|
{
|
return StatusCode(500, new { message = "开工请求时发生错误。", error = ex.Message });
|
}
|
}
|
|
|
}
|
}
|