using Procurement.Enums;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Threading.Tasks;
using Volo.Abp.AspNetCore.Mvc;
using Procurement.EntityFrameworkCore.SqlRepositories;
using Procurement.ViewModel;
using Procurement.Helpers;
using System.Text.Json;
using System.Data.SqlClient;
using Procurement.Core;
using Newtonsoft.Json.Linq;
namespace Procurement.Controllers
{
[Produces("application/json")]
[Route("api/[controller]")]
public class ModuleCallbackController : AbpController
{
private readonly ISqlRepository _repository;
private string logType = "ModuleCallback";
public ModuleCallbackController(ISqlRepository sqlRepository)
{
_repository = sqlRepository;
}
///
/// 接收IQC检验结果
///
///
[Route("iqcresult")]
[HttpPost]
public async Task SaveIQCResult([FromBody] JsonElement jsonElement)
{
if (jsonElement.ValueKind == JsonValueKind.Undefined || jsonElement.ValueKind == JsonValueKind.Null)
{
return BadRequest();
}
string reqMethod = HttpContext.Request.Method.ToString().ToUpper();
string traceId = DateTime.Now.ToString("yyyyMMddHHmmssfff");
string logAction = "IQCResult";
NLogHelper.Info(logType, logAction, $"收到{reqMethod}请求:RecID_{traceId}|{jsonElement.ToString()}");
ResultCode code = ResultCode.Fail, subCode = ResultCode.Fail;
string subMsg = "";
try
{
string proc = "pr_WMS_SaveIQCResult";
SqlParameter[] sqlParams = SqlHelper.CreateSqlParameters(jsonElement);
var resultData = await _repository.GetResultByProcAsync(proc, sqlParams);
subMsg = resultData.msg;
if (resultData.isSuccess)
{
code = ResultCode.Success;
subCode = ResultCode.Success;
}
}
catch (Exception ex)
{
subMsg = ex.Message;
code = ResultCode.Fail;
subCode = ResultCode.Fail;
}
ResultViewModel result = ResultHelper.CreateResult(code, null, subCode, subMsg);
NLogHelper.Info(logType, logAction, $"处理结果:RecID_{traceId}|{subMsg}");
return Ok(result);
}
}
}