using gdbg.Models;
|
using gdbg.Services;
|
using Microsoft.AspNetCore.Mvc;
|
using Oracle.ManagedDataAccess.Client;
|
using System;
|
using System.Collections.Generic;
|
using System.Threading.Tasks;
|
|
namespace gdbg.Controllers
|
{
|
[ApiController]
|
[Route("api/[controller]")]
|
public class LogPrintEventController : ControllerBase
|
{
|
private readonly OracleDbService _oracleDbService;
|
|
// 依赖注入 OracleDbService
|
public LogPrintEventController(OracleDbService oracleDbService)
|
{
|
_oracleDbService = oracleDbService;
|
}
|
|
/// <summary>
|
/// 记录打印事件(打印前/打印后 + 打印/补打)
|
/// </summary>
|
[HttpPost("logEvent")]
|
public async Task<IActionResult> LogPrintEvent([FromBody] PrintLogRequest request)
|
{
|
try
|
{
|
// 校验参数是否为空
|
if (string.IsNullOrEmpty(request.Barcode) ||
|
string.IsNullOrEmpty(request.Worker) ||
|
string.IsNullOrEmpty(request.EventType) ||
|
string.IsNullOrEmpty(request.PrintType) ||
|
string.IsNullOrEmpty(request.OrderNo) ||
|
string.IsNullOrEmpty(request.Line))
|
{
|
return BadRequest(new { message = "缺少必要参数" });
|
}
|
|
// 调用存储过程
|
string procedureCall = "BEGIN LogPrintEvent(:p_barcode, :p_worker, :p_eventType, :p_printType, :p_orderNo, :p_line,:p_version); END;";
|
|
var parameters = new List<OracleParameter>
|
{
|
new OracleParameter("p_barcode", request.Barcode),
|
new OracleParameter("p_worker", request.Worker),
|
new OracleParameter("p_eventType", request.EventType),
|
new OracleParameter("p_printType", request.PrintType),
|
new OracleParameter("p_orderNo", request.OrderNo),
|
new OracleParameter("p_line", request.Line),
|
new OracleParameter("p_version", request.Version)
|
};
|
|
await _oracleDbService.ExecuteProcedureAsync(procedureCall, parameters);
|
|
return Ok(new { message = "打印事件记录成功。" });
|
}
|
catch (OracleException ex)
|
{
|
return StatusCode(500, new { message = "数据库错误:" + ex.Message });
|
}
|
catch (Exception ex)
|
{
|
return StatusCode(500, new { message = "服务器内部错误", error = ex.Message });
|
}
|
}
|
}
|
|
|
}
|