ProcessData.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Net;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace MainForm
  9. {
  10. /// <summary>
  11. /// 加工数据(上传加工数据 接口用 参数)
  12. /// </summary>
  13. public class ProcessData // 加工数据
  14. {
  15. /// <summary>
  16. /// 主键
  17. /// </summary>
  18. public string ID { get; set; }
  19. /// <summary>
  20. /// 设备编号;以工位为单位,产线名称拼音-S数字
  21. /// </summary>
  22. public string Equipment_code;
  23. /// <summary>
  24. /// 测试项目;该工位的加工任务,如:装配
  25. /// </summary>
  26. public string Testitem;
  27. /// <summary>
  28. /// 车间订单号;车间工艺提供
  29. /// </summary>
  30. public string Workorder_code;
  31. /// <summary>
  32. /// 批次号;车间工艺提供
  33. /// </summary>
  34. public string Batch_number;
  35. /// <summary>
  36. /// 产品型号
  37. /// </summary>
  38. public string Mtltmrk;
  39. /// <summary>
  40. /// 产品序列号;车间工艺提供规则
  41. /// </summary>
  42. public string Sn;
  43. /// <summary>
  44. /// 加工数据
  45. /// </summary>
  46. public List<TestItem> Parameter_values;
  47. /// <summary>
  48. /// MES 接口数据
  49. /// </summary>
  50. public string MESJson = string.Empty;
  51. /// <summary>
  52. /// Iot 接口数据
  53. /// </summary>
  54. public string IotJson = string.Empty;
  55. /// <summary>
  56. /// 员工Id;操作员工编号,如:12345
  57. /// </summary>
  58. public string Write_user="123456";
  59. /// <summary>
  60. /// 测试时间;格式:yyyy-MM-dd HH:mm:ss.fff
  61. /// </summary>
  62. public string Test_time;
  63. /// <summary>
  64. /// 生产插入的语句
  65. /// </summary>
  66. /// <param name="upload">是否上传</param>
  67. /// <returns></returns>
  68. public string ToStringInsert(int upload)
  69. {
  70. string values = JsonConvert.SerializeObject(Parameter_values);
  71. ID = Guid.NewGuid().ToString();
  72. return string.Format(
  73. "insert into ProcessData" +
  74. "(" +
  75. "ID," +
  76. "Equipment_code," +
  77. "Workorder_code," +
  78. "Batch_number," +
  79. "Sn,Testitem," +
  80. "Parameter_values," +
  81. "Write_user," +
  82. "Test_time," +
  83. "Upload" +
  84. ") " +
  85. "values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')",
  86. ID,
  87. Equipment_code,
  88. Workorder_code,
  89. Batch_number,
  90. Sn,
  91. Testitem,
  92. values,
  93. Write_user,
  94. Test_time,
  95. upload);
  96. }
  97. /// <summary>
  98. /// 更新上传状态
  99. /// </summary>
  100. /// <param name="upload">上传状态</param>
  101. /// <param name="id">Id</param>
  102. /// <returns></returns>
  103. public static string ToStringUpdateStatusByID(int upload, string id)
  104. {
  105. return string.Format(
  106. "update ProcessData" +
  107. " set " +
  108. " Upload = '{0}' " +
  109. " where ID = '{1}'",
  110. upload, id);
  111. }
  112. /// <summary>
  113. /// 更新接口数据
  114. /// </summary>
  115. /// <param name="upload">更新接口数据</param>
  116. /// <param name="id">Id</param>
  117. /// <returns></returns>
  118. public static string ToStringUpdateStationOut_body(string StationOut_body,string StationOutReturn_body, string id)
  119. {
  120. return string.Format(
  121. "update ProcessData" +
  122. " set " +
  123. " StationOut_body = '{0}', " +
  124. " StationOutReturn_body = '{1}' " +
  125. " where ID = '{2}'",
  126. StationOut_body, StationOutReturn_body, id);
  127. }
  128. /// <summary>
  129. /// 生产插入的语句
  130. /// </summary>
  131. /// <param name="upload">是否上传</param>
  132. /// <returns></returns>
  133. public string ToStringInsert(int mesUpload, int iotUpload)
  134. {
  135. string values = JsonConvert.SerializeObject(Parameter_values);
  136. ID = Guid.NewGuid().ToString();
  137. return string.Format(
  138. "insert into ProcessData" +
  139. "(" +
  140. "ID," +
  141. "Equipment_code," +
  142. "Testitem," +
  143. "Workorder_code," +
  144. "Mtltmrk," +
  145. "Sn," +
  146. "Parameter_values," +
  147. "MESJson," +
  148. "IotJson," +
  149. "Write_user," +
  150. "Test_time," +
  151. "MESUpload" +
  152. "IotUpload" +
  153. ") " +
  154. "values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}')",
  155. ID,
  156. Equipment_code,
  157. Testitem,
  158. Workorder_code,
  159. Mtltmrk,
  160. Sn,
  161. values,
  162. MESJson,
  163. IotJson,
  164. Write_user,
  165. Test_time,
  166. mesUpload,
  167. iotUpload);
  168. }
  169. /// <summary>
  170. /// 更新MES、Iot上传状态
  171. /// </summary>
  172. /// <param name="mesJson">MES上传BodyJson</param>
  173. /// <param name="mesUpload">MES上传状态</param>
  174. /// <param name="iotJson">Iot上传BodyJson</param>
  175. /// <param name="iotUpload">Iot上传状态</param>
  176. /// <param name="id">Id</param>
  177. /// <returns></returns>
  178. public static string ToStringUpdateStatusByID(string mesJson, int mesUpload, string iotJson, int iotUpload, string id)
  179. {
  180. return string.Format(
  181. "update ProcessData" +
  182. " set " +
  183. " MESJson = '{0}' " +
  184. " MESUpload = '{1}' " +
  185. " IotJson = '{2}' " +
  186. " IotUpload = '{3}' " +
  187. " where ID = '{4}'",
  188. mesJson, mesUpload,
  189. iotJson, iotUpload,
  190. id);
  191. }
  192. /// <summary>
  193. /// 更新MES、Iot上传状态
  194. /// </summary>
  195. /// <param name="mesUpload">MES上传状态</param>
  196. /// <param name="iotUpload">Iot上传状态</param>
  197. /// <param name="id">Id</param>
  198. /// <returns></returns>
  199. public static string ToStringUpdateStatusByID(int mesUpload, int iotUpload, string id)
  200. {
  201. return string.Format(
  202. "update ProcessData" +
  203. " set " +
  204. " MESUpload = '{1}' " +
  205. " IotUpload = '{3}' " +
  206. " where ID = '{4}'",
  207. mesUpload, iotUpload,
  208. id);
  209. }
  210. /// <summary>
  211. /// 更新MES上传状态
  212. /// </summary>
  213. /// <param name="mesUpload">上传状态</param>
  214. /// <param name="id">Id</param>
  215. /// <returns></returns>
  216. public static string ToStringMESUpdateStatusByID(int mesUpload, string id)
  217. {
  218. return string.Format(
  219. "update ProcessData" +
  220. " set " +
  221. " MESUpload = '{0}' " +
  222. " where ID = '{1}'",
  223. mesUpload, id);
  224. }
  225. /// <summary>
  226. /// 更新Iot上传状态
  227. /// </summary>
  228. /// <param name="upload">上传状态</param>
  229. /// <param name="id">Id</param>
  230. /// <returns></returns>
  231. public static string ToStringIotUpdateStatusByID(int iotUpload, string id)
  232. {
  233. return string.Format(
  234. "update ProcessData" +
  235. " set " +
  236. " IotUpload = '{0}' " +
  237. " where ID = '{1}'",
  238. iotUpload, id);
  239. }
  240. public string ToStringQuery(string startDate, string endDate, string sendStatus)
  241. {
  242. switch(sendStatus)
  243. {
  244. case "All":
  245. sendStatus = "All";
  246. break;
  247. case "已上传":
  248. sendStatus = "1";
  249. break;
  250. case "未上传":
  251. sendStatus = "0";
  252. break;
  253. }
  254. StringBuilder strSQL = new StringBuilder();
  255. strSQL.AppendFormat("select " +
  256. "ID as 主键, " +
  257. "Equipment_code 设备编号, " +
  258. "Testitem 测试项目, " +
  259. "Workorder_code 车间订单号, " +
  260. "Mtltmrk 产品型号," +
  261. "Sn 产品序列号," +
  262. "Write_user 员工ID," +
  263. "Test_time 测试时间, " +
  264. "case when MESUpload = 1 then '已上传' else '未上传' end MES上传状态, " +
  265. "case when IotUpload = 1 then '已上传' else '未上传' end Iot上传状态, " +
  266. "Parameter_values 加工数据 " +
  267. "MESJson MES接口数据 " +
  268. "IotJson Iot接口数据 " +
  269. "from ProcessData " +
  270. "where convert(datetime,test_time,120) " +
  271. "between convert(datetime, '{0}', 120) " +
  272. "and convert(datetime, '{1}', 120) ",
  273. startDate,
  274. endDate);
  275. if (Equipment_code != "All")
  276. {
  277. strSQL.AppendFormat("and Equipment_code='{0}' ", Equipment_code);
  278. }
  279. if (sendStatus != "All")
  280. {
  281. strSQL.AppendFormat("and upload='{0}' ", sendStatus);
  282. }
  283. if (Testitem != "All")
  284. {
  285. strSQL.AppendFormat("and Testitem='{0}' ", Testitem);
  286. }
  287. strSQL.Append(" Order By Test_time desc");
  288. return strSQL.ToString();
  289. }
  290. public string ToStringQuery2(string startDate, string endDate, string sendStatus)
  291. {
  292. switch (sendStatus)
  293. {
  294. case "All":
  295. sendStatus = "All";
  296. break;
  297. case "已上传":
  298. sendStatus = "1";
  299. break;
  300. case "未上传":
  301. sendStatus = "0";
  302. break;
  303. }
  304. StringBuilder strSQL = new StringBuilder();
  305. strSQL.AppendFormat("select " +
  306. "ID as 主键, " +
  307. "Equipment_code 设备编号, " +
  308. "Testitem 测试项目, " +
  309. "Workorder_code 车间订单号, " +
  310. "Mtltmrk 产品型号," +
  311. "Sn 产品序列号," +
  312. "Parameter_values 加工数据, " +
  313. "MESJson MES接口数据 " +
  314. "IotJson Iot接口数据 " +
  315. "Write_user 员工ID," +
  316. "Test_time 测试时间, " +
  317. "case when MESUpload = 1 then '已上传' else '未上传' end 上传状态 " +
  318. "from ProcessData " +
  319. "where convert(datetime,test_time,120) " +
  320. "between convert(datetime, '{0}', 120) " +
  321. "and convert(datetime, '{1}', 120) ",
  322. startDate,
  323. endDate);
  324. if (sendStatus != "All")
  325. {
  326. strSQL.AppendFormat("and upload='{0}' ", sendStatus);
  327. }
  328. strSQL.Append(" Order By Test_time desc");
  329. return strSQL.ToString();
  330. }
  331. public string ToStringQueryCount(string endDate, string sendStatus)
  332. {
  333. switch (sendStatus)
  334. {
  335. case "All":
  336. sendStatus = "All";
  337. break;
  338. case "已上传":
  339. sendStatus = "1";
  340. break;
  341. case "未上传":
  342. sendStatus = "0";
  343. break;
  344. }
  345. StringBuilder strSQL = new StringBuilder();
  346. strSQL.AppendFormat("SELECT COUNT(*) FROM ProcessData " +
  347. "where convert(datetime,test_time,120) < convert(datetime, '{0}', 120) ",
  348. endDate);
  349. if (sendStatus != "All")
  350. {
  351. strSQL.AppendFormat("and upload='{0}' ", sendStatus);
  352. }
  353. return strSQL.ToString();
  354. }
  355. }
  356. /// <summary>
  357. /// 加工数据 内容
  358. /// </summary>
  359. public class TestItem
  360. {
  361. /// <summary>
  362. /// 参数名称
  363. /// </summary>
  364. public string Parameter_name;
  365. /// <summary>
  366. /// 参数值
  367. /// </summary>
  368. public string Parameter_value;
  369. /// <summary>
  370. /// 参数单位
  371. /// </summary>
  372. public string Parameter_unit;
  373. }
  374. }