Parameter.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. using Cksoft.Data;
  2. using Cksoft.Data.Repository;
  3. using Cksoft.Unity.Log4NetConfig;
  4. using DllEapEntity;
  5. using DllEapEntity.OFILM;
  6. using Microsoft.Extensions.Configuration;
  7. using Microsoft.Extensions.Logging;
  8. using Newtonsoft.Json;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Net;
  13. using System.Net.Http;
  14. using System.Text;
  15. using System.Threading.Tasks;
  16. namespace DllEapDal.OFILM
  17. {
  18. public class Parameter
  19. {
  20. public IConfiguration Configuration { get; set; }
  21. private ILogger<SamplePara> myloger = null;
  22. public async Task<object> GetParams(MacInfo m)
  23. {
  24. try
  25. {
  26. string url = "http://192.168.124.93:8606/eap/api/equipment/getOriginEquipmentParams";
  27. HttpClient client = new HttpClient(new HttpClientHandler
  28. {
  29. AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
  30. });
  31. client.DefaultRequestHeaders.Add("Method", "POST");
  32. client.DefaultRequestHeaders.Add("ContentType", "multipart/form-data; charset=utf-8");
  33. var content = new MultipartFormDataContent();
  34. var uri = new Uri(url);
  35. var equipmentId = new ByteArrayContent(Encoding.UTF8.GetBytes(m.EquipmentID));
  36. content.Add(equipmentId, "EquipmentID");
  37. for (int i = 0; i < m.parameters.Count(); i++)
  38. {
  39. var temp = new ByteArrayContent(Encoding.UTF8.GetBytes(m.parameters.ElementAt(i)));
  40. content.Add(temp, $"ParamsList[{i}]");
  41. }
  42. client.Timeout = new TimeSpan(0, 0, 600);
  43. var result = await client.PostAsync(uri, content);
  44. if (result != null && result.IsSuccessStatusCode)
  45. {
  46. var bytes = result.Content.ReadAsByteArrayAsync().Result;
  47. return Deal(Encoding.UTF8.GetString(bytes), m);
  48. }
  49. return "请求超时";
  50. }
  51. catch (Exception ex)
  52. {
  53. return "请求超时" + ex;
  54. }
  55. }
  56. private object Deal(string str, MacInfo m)
  57. {
  58. SampleRes s = JsonConvert.DeserializeObject<SampleRes>(str);
  59. LogHelper<Parameter>.LogInfo(JsonConvert.SerializeObject(s), null, null);
  60. if (s.code=="ok")
  61. {
  62. switch (m.Pcode)
  63. {
  64. case "AA":
  65. return AASetdata(s, m);
  66. case "LHA":
  67. return LHASetdata(s, m);
  68. default:
  69. break;
  70. }
  71. }
  72. return "采集失败";
  73. }
  74. private object LHASetdata(SampleRes s, MacInfo m)
  75. {
  76. LHAParameters LHA = new LHAParameters()
  77. {
  78. MacId = m.MacId,
  79. RecTime=DateTime.Now,
  80. RecCode="自动采集"
  81. };
  82. foreach (var item in s.data.parameters)
  83. {
  84. switch (item.paramName)
  85. {
  86. case "19":
  87. LHA.Type = item.paramValue;
  88. break;
  89. case "1071":
  90. LHA.EW1_DspPressure = item.paramValue;
  91. break;
  92. case "1101":
  93. LHA.EW2_DspPressure = item.paramValue;
  94. break;
  95. case "1090":
  96. LHA.AEW1_DspPressure = item.paramValue;
  97. break;
  98. case "1060":
  99. LHA.AEW2_DspPressure = item.paramValue;
  100. break;
  101. default:
  102. break;
  103. }
  104. }
  105. using(IDatabase db = DbFactory.Base("eap"))
  106. {
  107. return db.InsertFor<LHAParameters>(LHA, "自动采集");
  108. }
  109. }
  110. private object AASetdata(SampleRes s, MacInfo m)
  111. {
  112. AAParameters AA = new AAParameters()
  113. {
  114. MacId = m.MacId,
  115. RecTime = DateTime.Now,
  116. RecCode = "自动采集"
  117. };
  118. foreach (var item in s.data.parameters)
  119. {
  120. switch (item.paramName)
  121. {
  122. case "19":
  123. AA.Type = item.paramValue;
  124. break;
  125. case "4002":
  126. AA.EW1_DspPressure = item.paramValue;
  127. break;
  128. case "4102":
  129. AA.EW2_DspPressure = item.paramValue;
  130. break;
  131. case "4202":
  132. AA.EW3_DspPressure = item.paramValue;
  133. break;
  134. case "4302":
  135. AA.EW4_DspPressure = item.paramValue;
  136. break;
  137. default:
  138. break;
  139. }
  140. }
  141. using (IDatabase db = DbFactory.Base("eap"))
  142. {
  143. return db.InsertFor<AAParameters>(AA, "自动采集");
  144. }
  145. }
  146. }
  147. }