XiaomiMESHttp_MaterialVerify.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Security.Policy;
  6. using System.Text;
  7. namespace MainForm.ClassFile.XiaomiAPI_MES
  8. {
  9. /// <summary>
  10. /// 小米MES - 进站接⼝
  11. /// 接口地址:
  12. /// 接口方法:UnitConfirmDataSetIn
  13. /// </summary>
  14. public class XiaomiMESHttp_MaterialVerify : XiaomiMESHttp_X5
  15. {
  16. #region 变量
  17. /// <summary>
  18. /// 接口地址
  19. /// </summary>
  20. //protected new static string MESUrl { set; get; } = GlobalContext.StationInMESUrl;
  21. /// <summary>
  22. /// 接口方法
  23. /// </summary>
  24. protected new static string Method { set; get; } = "ConsumableMaterialVerify";
  25. #endregion 变量
  26. /// <summary>
  27. /// 小米MES - 进站
  28. /// </summary>
  29. /// <param name="requestBody"></param>
  30. /// <returns></returns>
  31. public static XmMES_MaterialVerifyResponse MaterialVerifyPostMES(XmMES_MaterialVerifyRequest_Body body)
  32. {
  33. XmMES_MaterialVerifyResponse MaterialVerifyResponse = new XmMES_MaterialVerifyResponse();
  34. string bodyJson = JsonConvert.SerializeObject(body);
  35. XiaomiMES_X5RequestHeader header = new XiaomiMES_X5RequestHeader();
  36. header.appid = GlobalContext.MESAppId; // 系统分配的应⽤ID
  37. header.method = Method; // API接⼝名称
  38. header.sign = GetSign_Up(GlobalContext.MESAppId, bodyJson, GlobalContext.MESAppKey); // md5签名
  39. header.url = GlobalContext.StationInMESUrl; // 接⼝地址
  40. //转base64
  41. dynamic requestData = new { header = header, body = bodyJson };
  42. var serializedBody = JsonConvert.SerializeObject(requestData);
  43. var base64EncodedBody = Convert.ToBase64String(Encoding.UTF8.GetBytes(serializedBody));
  44. XiaomiMES_X5Response response = Post(GlobalContext.StationInMESUrl, base64EncodedBody);
  45. // ZS保存日志
  46. MaterialVerifyResponse.header = response.header;
  47. string responseBody = response.body;
  48. MaterialVerifyResponse.body = JsonConvert.DeserializeObject<XmMESMaterialVerify_Body>(responseBody);
  49. return MaterialVerifyResponse;
  50. }
  51. #region 入参
  52. /// <summary>
  53. /// 进站接⼝ - 入参
  54. /// </summary>
  55. public class XmMES_MaterialVerifyRequest
  56. {
  57. /// <summary>
  58. /// 进站接⼝ - 入参 - header
  59. /// </summary>
  60. public XiaomiMES_X5RequestHeader header { get; set; } = new XiaomiMES_X5RequestHeader();
  61. /// <summary>
  62. /// 进站接⼝ - 入参 - body
  63. /// </summary>
  64. public XmMES_MaterialVerifyRequest_Body body { get; set; } = new XmMES_MaterialVerifyRequest_Body();
  65. }
  66. /// <summary>
  67. /// 进站接⼝ - 入参 - Body 实体
  68. /// </summary>
  69. public class XmMES_MaterialVerifyRequest_Body
  70. {
  71. /// <summary>
  72. /// ⼯位ID(可配置)
  73. /// </summary>
  74. public string stationId { get; set; } = string.Empty;
  75. /// <summary>
  76. /// 客⼾端本机MAC地址(格式:4C-52-62-39-CC-F0)
  77. /// </summary>
  78. public string clientMac { get; set; } = string.Empty;
  79. /// <summary>
  80. /// 客⼾端请求时间(格式:yyyy-MM-dd HH:mm:ss)
  81. /// </summary>
  82. public string clientTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  83. /// <summary>
  84. /// 物料sn
  85. /// </summary>
  86. public string sn { get; set; } = string.Empty;
  87. /// <summary>
  88. /// ⼯⼚id:1
  89. /// </summary>
  90. public long factoryId { get; set; } = 1;
  91. /// <summary>
  92. /// 操作⼈
  93. /// </summary>
  94. public string userId { get; set; } = string.Empty;
  95. }
  96. #endregion 入参
  97. #region 出参
  98. /// <summary>
  99. /// 进站接⼝ - 出参
  100. /// </summary>
  101. public class XmMES_MaterialVerifyResponse
  102. {
  103. /// <summary>
  104. /// header字段描述
  105. /// </summary>
  106. public XiaomiMES_X5ResponseHeader header { get; set; } = new XiaomiMES_X5ResponseHeader();
  107. /// <summary>
  108. /// body字段描述
  109. /// </summary>
  110. public XmMESMaterialVerify_Body body { get; set; } = new XmMESMaterialVerify_Body();
  111. }
  112. /// <summary>
  113. /// 进站接⼝ - 出参 - Body
  114. /// </summary>
  115. public class XmMESMaterialVerify_Body
  116. {
  117. /// <summary>
  118. /// 响应时间戳
  119. /// </summary>
  120. public string serverTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
  121. /// <summary>
  122. /// 剩余寿命(次/克)
  123. /// </summary>
  124. public string remainLife { get; set; } = "";
  125. }
  126. #endregion
  127. }
  128. }