using Newtonsoft.Json; using NPOI.SS.Formula.Functions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MainForm { /// /// 设备点检数据 /// public class OneCheckData // 设备点检数据 { /// /// 主键 /// public string ID { get; set; } /// /// 产线编号 /// public string Line_code { get; set; } = string.Empty; /// /// 产线名称 /// public string Line_name { get; set; } = string.Empty; /// /// 设备编号 /// public string Equipment_code { get; set; } = string.Empty; /// /// 设备名称 /// public string Equipment_name { get; set; } = string.Empty; /// /// 车间订单号 /// public string Workorder_code { get; set; } = string.Empty; /// /// 工序编号 /// public string Procedure_code { get; set; } = string.Empty; /// /// 工序名称 /// public string Procedure_name { get; set; } = string.Empty; /// /// 点检数据 /// public List Oneckeck_values = new List(); /// /// 员工ID /// public string Onecheck_empcode { get; set; } = string.Empty; /// /// 员工姓名 /// public string Onecheck_empname { get; set; } = string.Empty; /// /// 点检时间 /// public string Onecheck_time { get; set; } = string.Empty; #region 方法 /// /// 插入数据的语句 /// /// 是否上传 /// public string ToStringInsert(int upload) { string values = JsonConvert.SerializeObject(Oneckeck_values); ID = Guid.NewGuid().ToString(); return string.Format("insert into " + "OneCheckData(" + "ID," + "Line_code," + "Line_name," + "Equipment_code," + "Equipment_name," + "Workorder_code," + "Procedure_code," + "Procedure_name," + "Oneckeck_values," + "Onecheck_empcode," + "Onecheck_empname," + "Onecheck_time," + "Upload" + ") values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}')", ID, Line_code, Line_name, Equipment_code, Equipment_name, Workorder_code, Procedure_code, Procedure_name, values, Onecheck_empcode, Onecheck_empname, Onecheck_time, upload); } /// /// 更新上传状态 /// /// 上传状态 /// Id /// public static string ToStringUpdateStatusByID(int upload, string id) { return string.Format( "update OneCheckData " + " set " + " Upload = '{0}' " + " where ID = '{1}'", upload, id); } /// /// 更新上传状态 - 批量 /// /// 上传状态 /// Id /// public static string ToStringUpdateStatusByIDs(int upload, List ids) { return string.Format( "update OneCheckData " + " set " + " Upload = '{0}' " + " where ID in ('{1}')", upload, string.Join("','", ids)); } /// /// 查询数据 /// /// 开始时间 /// 结束时间 /// /// public string ToStringQuery(string startDate, string endDate, string sendStatus) { switch (sendStatus) { case "All": sendStatus = "All"; break; case "已上传": sendStatus = "1"; break; case "未上传": sendStatus = "0"; break; } StringBuilder strSQL = new StringBuilder(); strSQL.AppendFormat("select " + "ID as 主键, " + "Line_code 产线编号," + "Line_name 产线名称," + "Equipment_code 设备编号, " + "Equipment_name 设备名称, " + "Workorder_code 车间订单号, " + "Procedure_code 工序编号, " + "Procedure_name 工序名称," + "Onecheck_empcode 员工ID," + "Onecheck_empname 员工姓名," + "Onecheck_time 点检时间, " + "case when Upload = 1 then '已上传' else '未上传' end 上传状态, " + "Oneckeck_values 点检数据 " + "from onecheckdata " + "where convert(datetime,Onecheck_time,120) " + "between convert(datetime, '{0}', 120) " + "and convert(datetime, '{1}', 120) ", startDate, endDate ); if (Equipment_code != "All") { strSQL.AppendFormat("and Equipment_code='{0}' ", Equipment_code); } if (sendStatus != "All") { strSQL.AppendFormat("and upload='{0}' ", sendStatus); } if (Procedure_name != "All") { strSQL.AppendFormat("and Procedure_name='{0}' ", Procedure_name); } strSQL.Append(" Order By Onecheck_time desc"); return strSQL.ToString(); } /// /// 查询今天的还未上传的点检数据 的语句 /// /// 工序编号 /// 车间订单号 /// public string ToQuerySQL_Today(string procedure_code,string plcOrder) { string dtNow = DateTime.Now.ToString("yyyy/MM/dd"); string startDate = dtNow + " 00:00:00"; string endDate = dtNow + " 23:59:59"; StringBuilder strSQL = new StringBuilder(); strSQL.AppendFormat("select " + "ID, " + "Line_code, " + "Line_name, " + "Equipment_code, " + "Equipment_name, " + "Workorder_code, " + "Procedure_code, " + "Procedure_name, " + "Onecheck_empcode, " + "Onecheck_empname, " + "Onecheck_time, " + "Oneckeck_values " + "from onecheckdata " + "where convert(datetime,Onecheck_time,120) " + "between convert(datetime, '{0}', 120) " + "and convert(datetime, '{1}', 120) " + "and Upload = '0' ", startDate, endDate ); if (!string.IsNullOrEmpty(procedure_code)) // 工序编号 { strSQL.AppendFormat("and Procedure_code='{0}' ", procedure_code); } if (!string.IsNullOrEmpty(plcOrder)) // 车间订单号 { strSQL.AppendFormat("and Workorder_code='{0}' ", plcOrder); } strSQL.Append(" Order By Onecheck_time desc"); return strSQL.ToString(); } /// /// 清空 点检数据 By 工序号、订单号 /// /// 工序编号 /// 车间订单号 /// public static string ToDeteleByProcedurecodeAndPlcOrder(string procedure_code, string plcOrder) { string dtNow = DateTime.Now.ToString("yyyy/MM/dd"); string startDate = dtNow + " 00:00:00"; string endDate = dtNow + " 23:59:59"; StringBuilder strSQL = new StringBuilder(); strSQL.AppendFormat("Delete " + "from onecheckdata " + "where convert(datetime,Onecheck_time,120) " + "between convert(datetime, '{0}', 120) " + "and convert(datetime, '{1}', 120) " + "and Upload = '0' " + "and Procedure_code='{2}' " + "and Workorder_code='{3}' ", startDate, endDate, procedure_code, plcOrder ); return strSQL.ToString(); } #endregion } /// /// 点检明细数据 /// public class OneCheckItem { public string Onecheck_name { get; set; } = string.Empty; public string Onecheck_content { get; set; } = string.Empty; public string Onecheck_result { get; set; } = string.Empty; } }