Make_Humiture.cs 10 KB

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