ModuleCallbackController.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using Procurement.Enums;
  2. using Microsoft.AspNetCore.Mvc;
  3. using System;
  4. using System.Threading.Tasks;
  5. using Volo.Abp.AspNetCore.Mvc;
  6. using Procurement.EntityFrameworkCore.SqlRepositories;
  7. using Procurement.ViewModel;
  8. using Procurement.Helpers;
  9. using System.Text.Json;
  10. using System.Data.SqlClient;
  11. using Procurement.Core;
  12. using Newtonsoft.Json.Linq;
  13. namespace Procurement.Controllers
  14. {
  15. [Produces("application/json")]
  16. [Route("api/[controller]")]
  17. public class ModuleCallbackController : AbpController
  18. {
  19. private readonly ISqlRepository _repository;
  20. private string logType = "ModuleCallback";
  21. public ModuleCallbackController(ISqlRepository sqlRepository)
  22. {
  23. _repository = sqlRepository;
  24. }
  25. /// <summary>
  26. /// 接收IQC检验结果
  27. /// </summary>
  28. /// <returns></returns>
  29. [Route("iqcresult")]
  30. [HttpPost]
  31. public async Task<IActionResult> SaveIQCResult([FromBody] JsonElement jsonElement)
  32. {
  33. if (jsonElement.ValueKind == JsonValueKind.Undefined || jsonElement.ValueKind == JsonValueKind.Null)
  34. {
  35. return BadRequest();
  36. }
  37. string reqMethod = HttpContext.Request.Method.ToString().ToUpper();
  38. string traceId = DateTime.Now.ToString("yyyyMMddHHmmssfff");
  39. string logAction = "IQCResult";
  40. NLogHelper.Info(logType, logAction, $"收到{reqMethod}请求:RecID_{traceId}|{jsonElement.ToString()}");
  41. ResultCode code = ResultCode.Fail, subCode = ResultCode.Fail;
  42. string subMsg = "";
  43. try
  44. {
  45. string proc = "pr_WMS_SaveIQCResult";
  46. SqlParameter[] sqlParams = SqlHelper.CreateSqlParameters(jsonElement);
  47. var resultData = await _repository.GetResultByProcAsync(proc, sqlParams);
  48. subMsg = resultData.msg;
  49. if (resultData.isSuccess)
  50. {
  51. code = ResultCode.Success;
  52. subCode = ResultCode.Success;
  53. }
  54. }
  55. catch (Exception ex)
  56. {
  57. subMsg = ex.Message;
  58. code = ResultCode.Fail;
  59. subCode = ResultCode.Fail;
  60. }
  61. ResultViewModel result = ResultHelper.CreateResult(code, null, subCode, subMsg);
  62. NLogHelper.Info(logType, logAction, $"处理结果:RecID_{traceId}|{subMsg}");
  63. return Ok(result);
  64. }
  65. }
  66. }