JGLimsInterface.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. using com.hnshituo.core.webapp.vo;
  2. using Common;
  3. using Newtonsoft.Json;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Web.Script.Serialization;
  10. using System.Windows.Forms;
  11. namespace CarMeterSystem
  12. {
  13. public class JGLimsInterface
  14. {
  15. private Log lg = Log.GetInstance(); //写日志
  16. /// <summary>
  17. /// 计量车辆采样及提醒
  18. /// </summary>
  19. /// <param name="trackScale"></param>
  20. public void imsCarLims(PreTrackScale trackScale) {
  21. string limsResult = "";
  22. try
  23. {
  24. PreTrackScale scale = new PreTrackScale();
  25. limsResult = SendPostToLims(scale).Replace("msg", "data");
  26. JavaScriptSerializer js = new JavaScriptSerializer(); //实例化一个能够序列化数据的类
  27. if (limsResult.Contains("-1,"))
  28. {
  29. RESTfulResult<string> list = js.Deserialize<RESTfulResult<string>>(limsResult); //将json数据转化为对象类型并赋值给list
  30. if (list != null)
  31. {
  32. PbCache.ResultMessage += "检化验接口异常,请点【语音求助】联系计量员处理!" + list.Data;
  33. lg.WriteLog(24, "检化验接口异常:" + limsResult);
  34. }
  35. }
  36. else
  37. {
  38. RESTfulResult<JGLimsMsg> list = js.Deserialize<RESTfulResult<JGLimsMsg>>(limsResult); //将json数据转化为对象类型并赋值给list
  39. if (list != null)
  40. {
  41. if (list.Status.ToString().Equals("1"))
  42. {
  43. RESTfulResult<JGLimsMsg> listMsg = js.Deserialize<RESTfulResult<JGLimsMsg>>(limsResult);
  44. if (listMsg.Data.place!=null && listMsg.Data.place!=null)
  45. {
  46. PbCache.ResultMessage += "车辆需要采样,卸货点为:" + listMsg.Data.placecode;
  47. lg.WriteLog(24, "车辆需要采样,卸货点为:" + listMsg.Data.placecode + limsResult);
  48. }
  49. else
  50. {
  51. PbCache.ResultMessage += "车辆不需要采样";
  52. lg.WriteLog(24, "车辆不需要采样,卸货点为:" + listMsg.Data.placecode + limsResult);
  53. }
  54. }
  55. }
  56. }
  57. }
  58. catch (Exception)
  59. {
  60. PbCache.ResultMessage += "检化验接口异常,请点【语音求助】联系计量员处理!";
  61. }
  62. }
  63. /// <summary>
  64. /// 向检化验接口传参
  65. /// </summary>
  66. /// <param name="trackScale"></param>
  67. /// <returns></returns>
  68. public string SendPostToLims(PreTrackScale trackScale)
  69. {
  70. int iCarOrder = carOrder(trackScale);
  71. HttpHelper http = new HttpHelper();
  72. var item = new HttpItem()
  73. {
  74. URL = "http://192.168.127.1/external/login",
  75. Method = "POST",
  76. ContentType = "application/json",
  77. PostEncoding = Encoding.UTF8,
  78. };
  79. item.Header.Add("Accept-Encoding", "gzip, deflate");
  80. item.Header.Add("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6");
  81. dynamic backObj = new
  82. {
  83. user = "admin",
  84. password = "xxzxjg009118"
  85. };
  86. var pr = JsonConvert.SerializeObject(backObj);
  87. item.Postdata = pr;
  88. var result = http.GetHtml(item);
  89. string html = result.Html;
  90. item = new HttpItem()
  91. {
  92. URL = "http://192.168.127.1/external/mes/getisspot",
  93. Method = "POST",
  94. ContentType = "application/json",
  95. PostEncoding = Encoding.UTF8,
  96. };
  97. item.Header.Add("Authorization", $"Bearer {html}");
  98. item.Header.Add("Accept-Encoding", "gzip, deflate");
  99. item.Header.Add("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6");
  100. dynamic Obj = new
  101. {
  102. HODEDOCKSEQ = trackScale.holddockSeq,//"h201908230003", //压港序号=卸货计划号(MES)
  103. ORDER = iCarOrder + "", //同一压港序号下的第几车
  104. CONTRACTNO = trackScale.contractNo , //合同号
  105. CAR_NO = trackScale.carNo , //车号
  106. SHIP_NO = trackScale.shipNo , //船号
  107. MAT_NAME = trackScale.matterName ,//物料名
  108. MAT_CODE = trackScale.matterNo ,//物料编号
  109. SDR_NAME = trackScale.forwardingUnitName ,//发货单位名称
  110. SDR_CODE = trackScale.forwardingUnitNo ,//发货单位编号
  111. REC_NAME = trackScale.receivingUintName ,//收货单位名称
  112. REC_CODE = trackScale.receivingUintNo ,//收货单位编码
  113. SCALE_NAME = PbCache.sportInfo.baseSpotName,//汽车衡名称
  114. SCALE_CODE = PbCache.sportInfo.baseSpotNo,//汽车衡编码
  115. };
  116. var cc = JsonConvert.SerializeObject(Obj);
  117. item.Postdata = cc;
  118. result = http.GetHtml(item);
  119. html = result.Html; //
  120. return html;
  121. }
  122. /// <summary>
  123. /// 查询当前是第几车
  124. /// </summary>
  125. /// <returns></returns>
  126. public int carOrder(PreTrackScale trackScale)
  127. {
  128. int i = 1;
  129. return i;
  130. }
  131. }
  132. }