XiaomiMESHttp_StationInbound.cs 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  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 = 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. //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(GlobalContext.StationInMESUrl, 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. /// 过站明细唯⼀标识UUID
  97. /// </summary>
  98. public string uuidInspection { get; set; } = string.Empty;
  99. /// <summary>
  100. /// 过站条件,取值:PASS或FAIL
  101. /// </summary>
  102. public string state { get; set; } = string.Empty;
  103. /// <summary>
  104. /// ⽤⼾ID,如果接⼊了MES⽤⼾才需要传⼊;非必填
  105. /// </summary>
  106. public string userId { get; set; } = string.Empty;
  107. /// <summary>
  108. /// ⼯⼚id;非必填
  109. /// </summary>
  110. public string factoryId { get; set; } = string.Empty;
  111. }
  112. #endregion 入参
  113. #region 出参
  114. /// <summary>
  115. /// 进站接⼝ - 出参
  116. /// </summary>
  117. public class XmMES_StationInResponse
  118. {
  119. /// <summary>
  120. /// header字段描述
  121. /// </summary>
  122. public XiaomiMES_X5ResponseHeader header { get; set; } = new XiaomiMES_X5ResponseHeader();
  123. /// <summary>
  124. /// body字段描述
  125. /// </summary>
  126. public XmMESStationIn_Body body { get; set; } = new XmMESStationIn_Body();
  127. }
  128. /// <summary>
  129. /// 进站接⼝ - 出参 - Body
  130. /// </summary>
  131. public class XmMESStationIn_Body
  132. {
  133. /// <summary>
  134. /// 响应时间戳
  135. /// </summary>
  136. public string serverTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
  137. /// <summary>
  138. /// 关键参数列表
  139. /// </summary>
  140. public List<XmMESStationIn_KeyParam> keyParamList { get; set; } = new List<XmMESStationIn_KeyParam>();
  141. /// <summary>
  142. /// 过站回溯结果
  143. /// </summary>
  144. public XmMESStationIn_BackResult backResult { get; set; } = new XmMESStationIn_BackResult();
  145. //public string requestTime { get; set; } = "0";
  146. //public string processTime { get; set; } = "0";
  147. }
  148. /// <summary>
  149. /// 进站接⼝ - 出参 - Body - 关键参数
  150. /// </summary>
  151. public class XmMESStationIn_KeyParam
  152. {
  153. /// <summary>
  154. /// 关键参数代码
  155. /// </summary>
  156. public string paramCode { get; set; } = string.Empty;
  157. /// <summary>
  158. /// 关键参数Name【mitool读取】
  159. /// </summary>
  160. public string key { get; set; } = string.Empty;
  161. /// <summary>
  162. /// 关键参数值,如果是⽂件,这⾥是下载⽂件的url
  163. /// </summary>
  164. public string paramValue { get; set; } = string.Empty;
  165. }
  166. /// <summary>
  167. /// 进站接⼝ - 出参- Body - 过站回溯结果
  168. /// </summary>
  169. public class XmMESStationIn_BackResult
  170. {
  171. /// <summary>
  172. /// 回溯结果
  173. /// PASS/FAIL
  174. /// </summary>
  175. public string result { get; set; } = string.Empty;
  176. /// <summary>
  177. /// 不良点位信息说明
  178. /// </summary>
  179. public List<XmMESStationIn_InspPointData> inspectionPointDataList { get; set; } = new List<XmMESStationIn_InspPointData>();
  180. }
  181. /// <summary>
  182. /// 进站接⼝ - 出参- Body - 过站回溯结果 - 不良点位信息说明
  183. /// </summary>
  184. public class XmMESStationIn_InspPointData
  185. {
  186. /// <summary>
  187. /// 测试顺序号
  188. /// </summary>
  189. public string no { get; set; } = string.Empty;
  190. /// <summary>
  191. /// 回溯结果
  192. /// PASS/FAIL
  193. /// </summary>
  194. public string result { get; set; } = string.Empty;
  195. /// <summary>
  196. /// 不良项
  197. /// </summary>
  198. public string defectCode { get; set; } = string.Empty;
  199. /// <summary>
  200. /// 不良说明
  201. /// </summary>
  202. public string defectDesc { get; set; } = string.Empty;
  203. /// <summary>
  204. /// 不良位置
  205. /// </summary>
  206. public string location { get; set; } = string.Empty;
  207. /// <summary>
  208. /// ⼩板序号
  209. /// </summary>
  210. public string panelNo { get; set; } = string.Empty;
  211. }
  212. #endregion 出参
  213. }
  214. }