Make_Humiture.cs 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Net.Http;
  7. using System.Runtime.InteropServices.ComTypes;
  8. using System.Text;
  9. using System.Text.Json;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. using UAS_MES_NEW.CustomControl.RichText;
  13. using UAS_MES_NEW.DataOperate;
  14. using UAS_MES_NEW.Entity;
  15. namespace UAS_MES_NEW.Make
  16. {
  17. public partial class Make_Humiture : Form
  18. {
  19. public Make_Humiture()
  20. {
  21. InitializeComponent();
  22. }
  23. string url = "https://www.zzguorun.top/Platform/";
  24. string secret = "GR682e728acdb269da22754ec9b78d6214";
  25. List<string> clientId = new List<string>();
  26. List<string> clientName = new List<string>();
  27. DataHelper dh;
  28. private void Make_Humiture_Load(object sender, EventArgs e)
  29. {
  30. IpPortUrlVal.Text = url;
  31. dh = SystemInf.dh;
  32. }
  33. private void onStart_Click(object sender, EventArgs e)
  34. {
  35. if (string.IsNullOrEmpty(IpPortUrlVal.Text))
  36. {
  37. ShowMsg(Msg1, 0, "请输出请求地址");
  38. IpPortUrlVal.Focus();
  39. IpPortUrlVal.SelectAll();
  40. return;
  41. }
  42. if (string.IsNullOrEmpty(timeVal.Text))
  43. {
  44. ShowMsg(Msg1, 0, "请输出获取间隔时间");
  45. timeVal.Focus();
  46. timeVal.SelectAll();
  47. return;
  48. }
  49. if (onStart.Text == "获取中")
  50. {
  51. IpPortUrlVal.Enabled = true;
  52. timeVal.Enabled = true;
  53. onStart.Text = "开启获取";
  54. timer1.Stop();
  55. }
  56. else
  57. {
  58. IpPortUrlVal.Enabled = false;
  59. timeVal.Enabled = false;
  60. onStart.Text = "获取中";
  61. double time = Convert.ToDouble(timeVal.Text) * 60000;
  62. timer1.Interval = Convert.ToInt32(time);
  63. ShowMsg(Msg1, 2, $"执行间隔:{timer1.Interval}毫秒");
  64. timer1.Start();
  65. }
  66. }
  67. private async void timer1_Tick(object sender, EventArgs e)
  68. {
  69. try
  70. {
  71. if (clientId.Count == 0)
  72. {
  73. clientId.Clear();
  74. clientName.Clear();
  75. string apiUrl = IpPortUrlVal.Text.Trim() + "getAllEquipsInfo";
  76. var dataObject = new
  77. {
  78. secret = secret
  79. };
  80. string result = await HttpHelper.PostAsync(apiUrl, dataObject);
  81. JsonDocument doc = JsonDocument.Parse(result);
  82. JsonElement root = doc.RootElement;
  83. JsonElement dataArr = root.GetProperty("data");
  84. if (dataArr.ValueKind == JsonValueKind.Array)
  85. {
  86. foreach (JsonElement item in dataArr.EnumerateArray())
  87. {
  88. clientId.Add(item.GetProperty("clientid").ToString());
  89. clientName.Add(item.GetProperty("clientname").ToString());
  90. }
  91. }
  92. JsonElement nameElement = root.GetProperty("status");
  93. if (nameElement.ToString() == "200")
  94. {
  95. ShowMsg(Msg1, 1, $"获取温湿度设备成功,已获取到{dataArr.GetArrayLength()}个");
  96. }
  97. }
  98. string basrUrl = IpPortUrlVal.Text.Trim() + "getEquipDetails";
  99. for(int i = 0;i < clientId.Count;i++)
  100. {
  101. var paramsObj = new
  102. {
  103. secret = secret,
  104. clientId = clientId[i]
  105. };
  106. string result = await HttpHelper.PostAsync(basrUrl, paramsObj);
  107. JsonDocument doc = JsonDocument.Parse(result);
  108. JsonElement root = doc.RootElement;
  109. JsonElement nameElement = root.GetProperty("status");
  110. if (nameElement.ToString() == "200")
  111. {
  112. switch (i)
  113. {
  114. case 1:
  115. ShowMsg(Msg2, 1, $"温湿度设备:{clientName[i]},已获取并记录运行信息");
  116. break;
  117. case 2:
  118. ShowMsg(Msg3, 1, $"温湿度设备:{clientName[i]},已获取并记录运行信息");
  119. break;
  120. case 3:
  121. ShowMsg(Msg4, 1, $"温湿度设备:{clientName[i]},已获取并记录运行信息");
  122. break;
  123. default:
  124. ShowMsg(Msg1, 1, $"温湿度设备:{clientName[i]},已获取并记录运行信息");
  125. break;
  126. }
  127. }
  128. else
  129. {
  130. switch (i)
  131. {
  132. case 1:
  133. ShowMsg(Msg2, 0, $"温湿度设备:{clientName[i]},获取运行数据异常,请检查设备");
  134. break;
  135. case 2:
  136. ShowMsg(Msg3, 0, $"温湿度设备:{clientName[i]},获取运行数据异常,请检查设备");
  137. break;
  138. case 3:
  139. ShowMsg(Msg4, 0, $"温湿度设备:{clientName[i]},获取运行数据异常,请检查设备");
  140. break;
  141. default:
  142. ShowMsg(Msg1, 0, $"温湿度设备:{clientName[i]},获取运行数据异常,请检查设备");
  143. break;
  144. }
  145. }
  146. JsonElement chart = root.GetProperty("data").GetProperty("equip").GetProperty("chart");
  147. JsonElement checkPoint1_T = chart.GetProperty("检测点01").GetProperty("当前温度");
  148. JsonElement checkPoint1_H = chart.GetProperty("检测点01").GetProperty("当前湿度");
  149. JsonElement checkPoint2_T = chart.GetProperty("检测点02").GetProperty("当前温度");
  150. JsonElement checkPoint2_H = chart.GetProperty("检测点02").GetProperty("当前湿度");
  151. JsonElement checkPoint3_T = chart.GetProperty("检测点03").GetProperty("当前温度");
  152. JsonElement checkPoint3_H = chart.GetProperty("检测点03").GetProperty("当前湿度");
  153. JsonElement checkPoint4_T = chart.GetProperty("检测点04").GetProperty("当前温度");
  154. JsonElement checkPoint4_H = chart.GetProperty("检测点04").GetProperty("当前湿度");
  155. JsonElement checkPoint5_T = chart.GetProperty("检测点05").GetProperty("当前温度");
  156. JsonElement checkPoint5_H = chart.GetProperty("检测点05").GetProperty("当前湿度");
  157. JsonElement average = chart.GetProperty("环境平均湿度");
  158. dh.ExecuteSql($@"INSERT INTO HUMITURE (HU_ID,HU_INDATE,CHECKPOINT1_T,CHECKPOINT1_H,CHECKPOINT2_T,CHECKPOINT2_H,CHECKPOINT3_T,CHECKPOINT3_H,
  159. CHECKPOINT4_T,CHECKPOINT4_H,CHECKPOINT5_T,CHECKPOINT5_H,AVERAGE,EQUITYPE,EQUIID) VALUES
  160. (HUMITURE_SEQ.NEXTVAL,sysdate,'{checkPoint1_T.ToString()}','{checkPoint1_H.ToString()}','{checkPoint2_T.ToString()}','{checkPoint2_H.ToString()}','{checkPoint3_T.ToString()}','{checkPoint3_H.ToString()}',
  161. '{checkPoint4_T.ToString()}','{checkPoint4_H.ToString()}','{checkPoint5_T.ToString()}','{checkPoint5_H.ToString()}','{average.ToString()}','{clientName[i]}','{clientId[i]}')", "insert");
  162. }
  163. }
  164. catch(Exception ex)
  165. {
  166. ShowMsg(Msg1, 0, $"获取数据时发生错误: {ex.Message}");
  167. }
  168. }
  169. private void claerBtn_Click(object sender, EventArgs e)
  170. {
  171. Msg1.Clear();
  172. Msg2.Clear();
  173. Msg3.Clear();
  174. Msg4.Clear();
  175. }
  176. private void ShowMsg(RichTextAutoBottom msgBox, int type, string msg)
  177. {
  178. msg = msg.Replace("\r", "").Replace("\n", "");
  179. string msgTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  180. string showMsg = $"{msgTime}: {msg}\n";
  181. if (type == 0)
  182. {
  183. msgBox.AppendText(showMsg, Color.Red);
  184. msgBox.SelectionStart = msgBox.Text.Length;
  185. msgBox.ScrollToCaret();
  186. }
  187. else if (type == 1)
  188. {
  189. msgBox.AppendText(showMsg, Color.Green);
  190. msgBox.SelectionStart = msgBox.Text.Length;
  191. msgBox.ScrollToCaret();
  192. }
  193. else if (type == 2)
  194. {
  195. msgBox.AppendText(showMsg, Color.YellowGreen);
  196. msgBox.SelectionStart = msgBox.Text.Length;
  197. msgBox.ScrollToCaret();
  198. }
  199. }
  200. public static class HttpHelper
  201. {
  202. public static async Task<string> PostAsync<T>(string url, T data)
  203. {
  204. var client = new HttpClient();
  205. string json = JsonSerializer.Serialize(data);
  206. var content = new StringContent(json, Encoding.UTF8, "application/json");
  207. var response = await client.PostAsync(url, content);
  208. response.EnsureSuccessStatusCode();
  209. return await response.Content.ReadAsStringAsync();
  210. }
  211. }
  212. }
  213. }