using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using WCS.Data.Models; namespace WCS.Data { public enum LogLevelEnum { OFF = 0, FATAL = 1, ERROR = 2, WARN = 3, INFO = 4, DEBUG = 5, ALL = 6 } public class CommonData { public static List QueryErrorToList(string where) { string sql = string.Format("select * from WCS_EquipmentAlarms where 1=1 {0}", where); var alarmsSet = SugarBase.DB.Ado.SqlQuery(sql); return alarmsSet; } public static void AddLedAlarmsMsg(SqlSugarClient db, string equipmentNo, string alaram,int task_no, int writeCount = 500) { //获取数据库当前时间 DateTime currentdt = SugarBase.DB.GetDate(); var alarmsmsgSet = db.Queryable().Where(v => v.LED_CONVYORNO == equipmentNo).ToList(); if (alarmsmsgSet.Count() < writeCount) { var alarams = alarmsmsgSet.OrderByDescending(v => v.LED_UPDATETIME).ToList(); if (alarams.Count > 0) { var alra = alarams[0]; if (alra.LED_ALARMSMSG == alaram) { //alra.LED_UPDATETIME.AddSeconds(5) > currentdt //alra.LED_UPDATETIME = DateTime.Now; //db.Updateable(alra).UpdateColumns(v => new { v.LED_UPDATETIME }).ExecuteCommand(); return; } } //添加 var alarmsmsg = new WCS_LEDALARMSMSG(); alarmsmsg.LED_ID = Guid.NewGuid().ToString(); alarmsmsg.LED_ADDRESS = string.Empty; alarmsmsg.LED_CONVYORNO = equipmentNo; alarmsmsg.LED_NO = "1"; alarmsmsg.LED_WCSTASK_NO = task_no; alarmsmsg.LED_ALARMSMSG = alaram; alarmsmsg.LED_DEFAULTMESSAGE = "欢迎光临大地海洋龙升控股有限公司"; alarmsmsg.LED_UPDATETIME = currentdt;// DateTime.Now; alarmsmsg.LED_NOTES = string.Empty; db.Insertable(alarmsmsg).ExecuteCommand(); } else { var alaitem = alarmsmsgSet.OrderByDescending(v => v.LED_UPDATETIME).ToList()[0]; if (alaitem.LED_ALARMSMSG != alaram) { //修改 var alaramsmsgitem = alarmsmsgSet.OrderBy(v => v.LED_UPDATETIME).ToList()[0]; if (alaramsmsgitem.LED_ALARMSMSG != alaram) { alaramsmsgitem.LED_ALARMSMSG = alaram; alaramsmsgitem.LED_UPDATETIME = currentdt;// DateTime.Now; db.Updateable(alaramsmsgitem).UpdateColumns(v => new { v.LED_ALARMSMSG, v.LED_UPDATETIME }).ExecuteCommand(); } } //var alaitem = alarmsmsgSet.OrderByDescending(v => v.LED_UPDATETIME).ToList()[0]; //if (alaitem.LED_ALARMSMSG != alaram && // alaitem.LED_UPDATETIME.AddSeconds(5) > currentdt) //{ // //修改 // var alaramsmsgitem = alarmsmsgSet.OrderBy(v => v.LED_UPDATETIME).ToList()[0]; // if (alaramsmsgitem.LED_ALARMSMSG != alaram && // alaramsmsgitem.LED_UPDATETIME.AddSeconds(5) > currentdt) // { // alaramsmsgitem.LED_ALARMSMSG = alaram; // alaramsmsgitem.LED_UPDATETIME = currentdt;// DateTime.Now; // db.Updateable(alaramsmsgitem).UpdateColumns(v => new { v.LED_ALARMSMSG, v.LED_UPDATETIME }).ExecuteCommand(); // } //} } } public static void AddLedErrorMsg(SqlSugarClient db, string equipmentNo, string alaram, int wcs_task_no, int wms_task_no, int alaramCount = 10) { //获取数据库当前时间OrderBy(v => v.LED_UPDATETIME, OrderByType.Desc) DateTime currentdt = SugarBase.DB.GetDate(); var alarmsmsgSet = db.Queryable().Where(v => v.LED_CONVYORNO == equipmentNo).OrderBy(v => v.LED_UPDATETIME).ToList(); if (alarmsmsgSet.Count < alaramCount) { //添加 var alarmsmsg = new WCS_LEDALARMSMSG(); alarmsmsg.LED_ID = Guid.NewGuid().ToString(); alarmsmsg.LED_ADDRESS = string.Empty; alarmsmsg.LED_CONVYORNO = equipmentNo; alarmsmsg.LED_NO = "1"; alarmsmsg.LED_WCSTASK_NO = wcs_task_no; alarmsmsg.LED_WMSTASK_NO = wms_task_no; alarmsmsg.LED_ALARMSMSG = alaram; alarmsmsg.LED_DEFAULTMESSAGE = "欢迎光临永冠科技有限公司"; alarmsmsg.LED_UPDATETIME = currentdt;// DateTime.Now; alarmsmsg.LED_NOTES = string.Empty; db.Insertable(alarmsmsg).ExecuteCommand(); } else { var alarmLast = alarmsmsgSet.Last(); var alarmFirst = alarmsmsgSet.First(); if (alarmLast.LED_DEFAULTMESSAGE == alaram && alarmLast.LED_WCSTASK_NO == wcs_task_no) { if (alarmLast.LED_UPDATETIME.AddMinutes(3) < currentdt) { //超过3分钟更新提示信息 alarmFirst.LED_UPDATETIME = currentdt; alarmFirst.LED_ISUPLOADWMSFINISH = false; db.Updateable(alarmFirst).UpdateColumns(v => new { v.LED_ISUPLOADWMSFINISH, v.LED_UPDATETIME }).ExecuteCommand(); } } else { //修改 alarmFirst.LED_UPDATETIME = currentdt; alarmFirst.LED_ALARMSMSG = alaram; alarmFirst.LED_WCSTASK_NO = wcs_task_no; alarmFirst.LED_WMSTASK_NO = wms_task_no; alarmFirst.LED_ISUPLOADWMSFINISH = false; db.Updateable(alarmFirst).UpdateColumns(v => new { v.LED_ALARMSMSG, v.LED_WCSTASK_NO, v.LED_WMSTASK_NO, v.LED_ISUPLOADWMSFINISH, v.LED_UPDATETIME }).ExecuteCommand(); } } } public static void AddWCS_TASK_DTL(SqlSugarClient db, int task_id, int task_no, string posIdCur, string posIdNext, string msg) { var task_dtl = new WCS_TASK_DTL(); task_dtl.ID = Guid.NewGuid().ToString(); task_dtl.PARENTID = task_id; task_dtl.TASKNO = task_no; task_dtl.POSIDCUR = posIdCur; task_dtl.POSIDNEXT = posIdNext; task_dtl.DESCRIPTION = msg; task_dtl.EXECUTEDATE = DateTime.Now; db.Insertable(task_dtl).ExecuteCommand(); } public static void WriteErrorFormat(string text, string text_dtl) { WriteFormat(LogLevelEnum.ERROR, text, text_dtl); } public static void WriteInfoFormat(string text, string text_dtl) { WriteFormat(LogLevelEnum.INFO, text, text_dtl); } public static void WriteDebugFormat(string text, string text_dtl) { WriteFormat(LogLevelEnum.DEBUG, text, text_dtl); } private static void WriteFormat(LogLevelEnum level, string text, string text_dtl) { SqlSugarClient db = null; try { db = SugarBase.GetIntance(); var log = new WCS_LOG(); log.LOG_LEVEL = level.ToString(); //log.LOG_FUNC = user.Func; //log.LOG_IPADDERSS = user.IPAdderss; log.LOG_INFO = text; log.LOG_INFODTL = text_dtl; log.LOG_ADDUSERNO = "WCS"; log.LOG_ADDUSERNAME = "WCS"; log.LOG_ADDDATETIME = db.GetDate(); log.LOG_EDITUSERNO = "WCS"; log.LOG_EDITUSERNAME = "WCS"; log.LOG_EDITDATETIME = db.GetDate(); db.Insertable(log).ExecuteCommand(); } catch (Exception ex) { Log4netHelper.Logger_Error.ErrorFormat(ex.ToString()); } finally { if (db != null) ((IDisposable)db).Dispose(); } } } }