XiaomiMESHttp_StationInbound.cs 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  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_StationInbound : 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; } = "UnitConfirmDataSetIn";
  25. #endregion 变量
  26. /// <summary>
  27. /// 小米MES - 进站
  28. /// </summary>
  29. /// <param name="requestBody"></param>
  30. /// <returns></returns>
  31. public static XmMES_StationInResponse StationIn(XmMES_StationInRequest_Body body)
  32. {
  33. XmMES_StationInResponse stationInResponse = new XmMES_StationInResponse();
  34. string bodyJson = JsonConvert.SerializeObject(body);
  35. XiaomiMES_X5RequestHeader header = new XiaomiMES_X5RequestHeader();
  36. header.appid = Appid; // 系统分配的应⽤ID
  37. header.method = Method; // API接⼝名称
  38. header.sign = GetSign_Up(Appid, bodyJson, Appkey); // md5签名
  39. header.url = MESUrl; // 接⼝地址
  40. //XmMES_StationInRequest request = new XmMES_StationInRequest();
  41. //request.header = header;
  42. //request.body = body;
  43. //string data = JsonConvert.SerializeObject(request);
  44. //转base64
  45. dynamic requestData = new { header = header, body = bodyJson };
  46. var serializedBody = JsonConvert.SerializeObject(requestData);
  47. var base64EncodedBody = Convert.ToBase64String(Encoding.UTF8.GetBytes(serializedBody));
  48. XiaomiMES_X5Response response = Post(MESUrl, base64EncodedBody);
  49. // ZS保存日志
  50. stationInResponse.header = response.header;
  51. string responseBody = response.body;
  52. stationInResponse.body = JsonConvert.DeserializeObject<XmMESStationIn_Body>(responseBody);
  53. return stationInResponse;
  54. }
  55. #region 入参
  56. /// <summary>
  57. /// 进站接⼝ - 入参
  58. /// </summary>
  59. public class XmMES_StationInRequest
  60. {
  61. /// <summary>
  62. /// 进站接⼝ - 入参 - header
  63. /// </summary>
  64. public XiaomiMES_X5RequestHeader header { get; set; } = new XiaomiMES_X5RequestHeader();
  65. /// <summary>
  66. /// 进站接⼝ - 入参 - body
  67. /// </summary>
  68. public XmMES_StationInRequest_Body body { get; set; } = new XmMES_StationInRequest_Body();
  69. }
  70. /// <summary>
  71. /// 进站接⼝ - 入参 - Body 实体
  72. /// </summary>
  73. public class XmMES_StationInRequest_Body
  74. {
  75. /// <summary>
  76. /// 装备id(可配置)
  77. /// </summary>
  78. public string machineId { get; set; } = string.Empty;
  79. /// <summary>
  80. /// ⼯位ID(可配置)
  81. /// </summary>
  82. public string stationId { get; set; } = string.Empty;
  83. /// <summary>
  84. /// 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX
  85. /// </summary>
  86. public string clientMac { get; set; } = string.Empty;
  87. /// <summary>
  88. /// 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff
  89. /// </summary>
  90. public string clientTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
  91. /// <summary>
  92. /// 产品SN
  93. /// </summary>
  94. public string unitSn { get; set; } = string.Empty;
  95. /// <summary>
  96. /// ⽤⼾ID,如果接⼊了MES⽤⼾才需要传⼊;非必填
  97. /// </summary>
  98. public string userId { get; set; } = string.Empty;
  99. /// <summary>
  100. /// ⼯⼚id;非必填
  101. /// </summary>
  102. public string factoryId { get; set; } = string.Empty;
  103. }
  104. #endregion 入参
  105. #region 出参
  106. /// <summary>
  107. /// 进站接⼝ - 出参
  108. /// </summary>
  109. public class XmMES_StationInResponse
  110. {
  111. /// <summary>
  112. /// header字段描述
  113. /// </summary>
  114. public XiaomiMES_X5ResponseHeader header { get; set; } = new XiaomiMES_X5ResponseHeader();
  115. /// <summary>
  116. /// body字段描述
  117. /// </summary>
  118. public XmMESStationIn_Body body { get; set; } = new XmMESStationIn_Body();
  119. }
  120. /// <summary>
  121. /// 进站接⼝ - 出参 - Body
  122. /// </summary>
  123. public class XmMESStationIn_Body
  124. {
  125. /// <summary>
  126. /// 响应时间戳
  127. /// </summary>
  128. public string serverTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
  129. /// <summary>
  130. /// 关键参数列表
  131. /// </summary>
  132. public List<XmMESStationIn_KeyParam> keyParamList { get; set; } = new List<XmMESStationIn_KeyParam>();
  133. /// <summary>
  134. /// 过站回溯结果
  135. /// </summary>
  136. public XmMESStationIn_BackResult backResult { get; set; } = new XmMESStationIn_BackResult();
  137. //public string requestTime { get; set; } = "0";
  138. //public string processTime { get; set; } = "0";
  139. }
  140. /// <summary>
  141. /// 进站接⼝ - 出参 - Body - 关键参数
  142. /// </summary>
  143. public class XmMESStationIn_KeyParam
  144. {
  145. /// <summary>
  146. /// 关键参数代码
  147. /// </summary>
  148. public string paramCode { get; set; } = string.Empty;
  149. /// <summary>
  150. /// 关键参数Name【mitool读取】
  151. /// </summary>
  152. public string key { get; set; } = string.Empty;
  153. /// <summary>
  154. /// 关键参数值,如果是⽂件,这⾥是下载⽂件的url
  155. /// </summary>
  156. public string paramValue { get; set; } = string.Empty;
  157. }
  158. /// <summary>
  159. /// 进站接⼝ - 出参- Body - 过站回溯结果
  160. /// </summary>
  161. public class XmMESStationIn_BackResult
  162. {
  163. /// <summary>
  164. /// 回溯结果
  165. /// PASS/FAIL
  166. /// </summary>
  167. public string result { get; set; } = string.Empty;
  168. /// <summary>
  169. /// 不良点位信息说明
  170. /// </summary>
  171. public List<XmMESStationIn_InspPointData> inspectionPointDataList { get; set; } = new List<XmMESStationIn_InspPointData>();
  172. }
  173. /// <summary>
  174. /// 进站接⼝ - 出参- Body - 过站回溯结果 - 不良点位信息说明
  175. /// </summary>
  176. public class XmMESStationIn_InspPointData
  177. {
  178. /// <summary>
  179. /// 测试顺序号
  180. /// </summary>
  181. public string no { get; set; } = string.Empty;
  182. /// <summary>
  183. /// 回溯结果
  184. /// PASS/FAIL
  185. /// </summary>
  186. public string result { get; set; } = string.Empty;
  187. /// <summary>
  188. /// 不良项
  189. /// </summary>
  190. public string defectCode { get; set; } = string.Empty;
  191. /// <summary>
  192. /// 不良说明
  193. /// </summary>
  194. public string defectDesc { get; set; } = string.Empty;
  195. /// <summary>
  196. /// 不良位置
  197. /// </summary>
  198. public string location { get; set; } = string.Empty;
  199. /// <summary>
  200. /// ⼩板序号
  201. /// </summary>
  202. public string panelNo { get; set; } = string.Empty;
  203. }
  204. #endregion 出参
  205. }
  206. }