OneCheckData.cs 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. using Newtonsoft.Json;
  2. using NPOI.SS.Formula.Functions;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace MainForm
  9. {
  10. /// <summary>
  11. /// 设备点检数据
  12. /// </summary>
  13. public class OneCheckData // 设备点检数据
  14. {
  15. /// <summary>
  16. /// 主键
  17. /// </summary>
  18. public string ID { get; set; }
  19. /// <summary>
  20. /// 产线编号
  21. /// </summary>
  22. public string Line_code { get; set; } = string.Empty;
  23. /// <summary>
  24. /// 产线名称
  25. /// </summary>
  26. public string Line_name { get; set; } = string.Empty;
  27. /// <summary>
  28. /// 设备编号
  29. /// </summary>
  30. public string Equipment_code { get; set; } = string.Empty;
  31. /// <summary>
  32. /// 设备名称
  33. /// </summary>
  34. public string Equipment_name { get; set; } = string.Empty;
  35. /// <summary>
  36. /// 车间订单号
  37. /// </summary>
  38. public string Workorder_code { get; set; } = string.Empty;
  39. /// <summary>
  40. /// 工序编号
  41. /// </summary>
  42. public string Procedure_code { get; set; } = string.Empty;
  43. /// <summary>
  44. /// 工序名称
  45. /// </summary>
  46. public string Procedure_name { get; set; } = string.Empty;
  47. /// <summary>
  48. /// 点检数据
  49. /// </summary>
  50. public List<OneCheckItem> Oneckeck_values = new List<OneCheckItem>();
  51. /// <summary>
  52. /// 员工ID
  53. /// </summary>
  54. public string Onecheck_empcode { get; set; } = string.Empty;
  55. /// <summary>
  56. /// 员工姓名
  57. /// </summary>
  58. public string Onecheck_empname { get; set; } = string.Empty;
  59. /// <summary>
  60. /// 点检时间
  61. /// </summary>
  62. public string Onecheck_time { get; set; } = string.Empty;
  63. #region 方法
  64. /// <summary>
  65. /// 插入数据的语句
  66. /// </summary>
  67. /// <param name="upload">是否上传</param>
  68. /// <returns></returns>
  69. public string ToStringInsert(int upload)
  70. {
  71. string values = JsonConvert.SerializeObject(Oneckeck_values);
  72. ID = Guid.NewGuid().ToString();
  73. return string.Format("insert into " +
  74. "OneCheckData(" +
  75. "ID," +
  76. "Line_code," +
  77. "Line_name," +
  78. "Equipment_code," +
  79. "Equipment_name," +
  80. "Workorder_code," +
  81. "Procedure_code," +
  82. "Procedure_name," +
  83. "Oneckeck_values," +
  84. "Onecheck_empcode," +
  85. "Onecheck_empname," +
  86. "Onecheck_time," +
  87. "Upload" +
  88. ") values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}')",
  89. ID,
  90. Line_code,
  91. Line_name,
  92. Equipment_code,
  93. Equipment_name,
  94. Workorder_code,
  95. Procedure_code,
  96. Procedure_name,
  97. values,
  98. Onecheck_empcode,
  99. Onecheck_empname,
  100. Onecheck_time,
  101. upload);
  102. }
  103. /// <summary>
  104. /// 更新上传状态
  105. /// </summary>
  106. /// <param name="upload">上传状态</param>
  107. /// <param name="id">Id</param>
  108. /// <returns></returns>
  109. public static string ToStringUpdateStatusByID(int upload, string id)
  110. {
  111. return string.Format(
  112. "update OneCheckData " +
  113. " set " +
  114. " Upload = '{0}' " +
  115. " where ID = '{1}'",
  116. upload, id);
  117. }
  118. /// <summary>
  119. /// 更新上传状态 - 批量
  120. /// </summary>
  121. /// <param name="upload">上传状态</param>
  122. /// <param name="id">Id</param>
  123. /// <returns></returns>
  124. public static string ToStringUpdateStatusByIDs(int upload, List<string> ids)
  125. {
  126. return string.Format(
  127. "update OneCheckData " +
  128. " set " +
  129. " Upload = '{0}' " +
  130. " where ID in ('{1}')",
  131. upload, string.Join("','", ids));
  132. }
  133. /// <summary>
  134. /// 查询数据
  135. /// </summary>
  136. /// <param name="startDate">开始时间</param>
  137. /// <param name="endDate">结束时间</param>
  138. /// <param name="sendStatus"></param>
  139. /// <returns></returns>
  140. public string ToStringQuery(string startDate, string endDate, string sendStatus)
  141. {
  142. switch (sendStatus)
  143. {
  144. case "All":
  145. sendStatus = "All";
  146. break;
  147. case "已上传":
  148. sendStatus = "1";
  149. break;
  150. case "未上传":
  151. sendStatus = "0";
  152. break;
  153. }
  154. StringBuilder strSQL = new StringBuilder();
  155. strSQL.AppendFormat("select " +
  156. "ID as 主键, " +
  157. "Line_code 产线编号," +
  158. "Line_name 产线名称," +
  159. "Equipment_code 设备编号, " +
  160. "Equipment_name 设备名称, " +
  161. "Workorder_code 车间订单号, " +
  162. "Procedure_code 工序编号, " +
  163. "Procedure_name 工序名称," +
  164. "Onecheck_empcode 员工ID," +
  165. "Onecheck_empname 员工姓名," +
  166. "Onecheck_time 点检时间, " +
  167. "case when Upload = 1 then '已上传' else '未上传' end 上传状态, " +
  168. "Oneckeck_values 点检数据 " +
  169. "from onecheckdata " +
  170. "where convert(datetime,Onecheck_time,120) " +
  171. "between convert(datetime, '{0}', 120) " +
  172. "and convert(datetime, '{1}', 120) ",
  173. startDate,
  174. endDate
  175. );
  176. if (Equipment_code != "All")
  177. {
  178. strSQL.AppendFormat("and Equipment_code='{0}' ", Equipment_code);
  179. }
  180. if (sendStatus != "All")
  181. {
  182. strSQL.AppendFormat("and upload='{0}' ", sendStatus);
  183. }
  184. if (Procedure_name != "All")
  185. {
  186. strSQL.AppendFormat("and Procedure_name='{0}' ", Procedure_name);
  187. }
  188. strSQL.Append(" Order By Onecheck_time desc");
  189. return strSQL.ToString();
  190. }
  191. /// <summary>
  192. /// 查询今天的还未上传的点检数据 的语句
  193. /// </summary>
  194. /// <param name="procedure_code">工序编号</param>
  195. /// <param name="plcOrder">车间订单号</param>
  196. /// <returns></returns>
  197. public string ToQuerySQL_Today(string procedure_code,string plcOrder)
  198. {
  199. string dtNow = DateTime.Now.ToString("yyyy/MM/dd");
  200. string startDate = dtNow + " 00:00:00";
  201. string endDate = dtNow + " 23:59:59";
  202. StringBuilder strSQL = new StringBuilder();
  203. strSQL.AppendFormat("select " +
  204. "ID, " +
  205. "Line_code, " +
  206. "Line_name, " +
  207. "Equipment_code, " +
  208. "Equipment_name, " +
  209. "Workorder_code, " +
  210. "Procedure_code, " +
  211. "Procedure_name, " +
  212. "Onecheck_empcode, " +
  213. "Onecheck_empname, " +
  214. "Onecheck_time, " +
  215. "Oneckeck_values " +
  216. "from onecheckdata " +
  217. "where convert(datetime,Onecheck_time,120) " +
  218. "between convert(datetime, '{0}', 120) " +
  219. "and convert(datetime, '{1}', 120) " +
  220. "and Upload = '0' ",
  221. startDate,
  222. endDate
  223. );
  224. if (!string.IsNullOrEmpty(procedure_code)) // 工序编号
  225. {
  226. strSQL.AppendFormat("and Procedure_code='{0}' ", procedure_code);
  227. }
  228. if (!string.IsNullOrEmpty(plcOrder)) // 车间订单号
  229. {
  230. strSQL.AppendFormat("and Workorder_code='{0}' ", plcOrder);
  231. }
  232. strSQL.Append(" Order By Onecheck_time desc");
  233. return strSQL.ToString();
  234. }
  235. /// <summary>
  236. /// 清空 点检数据 By 工序号、订单号
  237. /// </summary>
  238. /// <param name="procedure_code">工序编号</param>
  239. /// <param name="plcOrder">车间订单号</param>
  240. /// <returns></returns>
  241. public static string ToDeteleByProcedurecodeAndPlcOrder(string procedure_code, string plcOrder)
  242. {
  243. string dtNow = DateTime.Now.ToString("yyyy/MM/dd");
  244. string startDate = dtNow + " 00:00:00";
  245. string endDate = dtNow + " 23:59:59";
  246. StringBuilder strSQL = new StringBuilder();
  247. strSQL.AppendFormat("Delete " +
  248. "from onecheckdata " +
  249. "where convert(datetime,Onecheck_time,120) " +
  250. "between convert(datetime, '{0}', 120) " +
  251. "and convert(datetime, '{1}', 120) " +
  252. "and Upload = '0' " +
  253. "and Procedure_code='{2}' " +
  254. "and Workorder_code='{3}' ",
  255. startDate,
  256. endDate,
  257. procedure_code,
  258. plcOrder
  259. );
  260. return strSQL.ToString();
  261. }
  262. #endregion
  263. }
  264. /// <summary>
  265. /// 点检明细数据
  266. /// </summary>
  267. public class OneCheckItem
  268. {
  269. public string Onecheck_name { get; set; } = string.Empty;
  270. public string Onecheck_content { get; set; } = string.Empty;
  271. public string Onecheck_result { get; set; } = string.Empty;
  272. }
  273. }