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); } } }