/// <summary> /// 根据顺位号查询某一节车厢[上一节,下一节] /// </summary> /// <param name="TrainID"></param> /// <param name="TrainComeDate"></param> /// <param name="OrderNum"></param> /// <returns></returns> public View_TrainDetail GetCar(string TrainID, DateTime TrainComeDate, int OrderNum) { try { using (sartas3 db = new sartas3()) { //首先根据时间找到指定的分表 string TableName = "traindetail"; if (TrainComeDate < DateTime.Now) { for (DateTime i = TrainComeDate; i < DateTime.Now; i = i.AddMonths(1)) { TableName = "traindetail_" + i.ToString("yyyyMM"); string SQL_BeSureTableExist = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='" + Config.DB_SCHEMA + "' AND TABLE_NAME = '" + TableName + "'"; string resName = db.Database.SqlQuery <string>(SQL_BeSureTableExist).FirstOrDefault(); if (!string.IsNullOrWhiteSpace(resName)) { break; } else { TableName = "traindetail"; } } } //根据分表名称进行查询 string SQL_Query = @"SELECT * FROM " + Config.DB_SCHEMA + "." + TableName + @" td WHERE td.Train_ID = '" + TrainID + "' AND td.TrainDetail_OrderNo='" + OrderNum + "'"; traindetail td = db.Database.SqlQuery <traindetail>(SQL_Query).SingleOrDefault(); if (td != null) { View_TrainDetail dtd = new View_TrainDetail(); dtd.Train_ID = td.Train_ID; dtd.TrainDetail_ID = td.TrainDetail_ID; dtd.TrainDetail_No = td.TrainDetail_No; dtd.TrainDetail_OrderNo = td.TrainDetail_OrderNo; dtd.vehicletype = td.vehicletype; dtd.AlarmLevel = td.AlarmLevel; string SQL_QueryTrain = @"SELECT * FROM " + Config.DB_SCHEMA + ".train t WHERE t.Train_ID = '" + TrainID + "';"; train t = db.Database.SqlQuery <train>(SQL_QueryTrain).SingleOrDefault(); if (t != null) { dtd.TrainComeDate = Convert.ToDateTime(t.Train_ComeDate); dtd.TrainNo = t.Train_No; dtd.LineID = Convert.ToInt16(t.Line_ID); } return(dtd); } else { return(null); } } } catch (Exception ex) { return(null); } }
/// <summary> /// 更新车厢报警等级 /// </summary> /// <param name="TrainDetailID"></param> public void Update_CarAlarmLevel(string TrainDetailID) { try { using (sartas3 db = new sartas3()) { var q = db.alarmdetail.Where(n => n.TrainDetail_ID == TrainDetailID && n.AlarmLevel != 0 && n.AlarmLevel != null).Min(n => n.AlarmLevel); Guid g = new Guid(TrainDetailID); traindetail oldtd = db.traindetail.Where(n => n.TrainDetail_ID == g).FirstOrDefault(); if (oldtd != null) { oldtd.AlarmLevel = q.ToString(); } db.SaveChanges(); } } catch (Exception ex) { throw ex; } }
/// <summary> /// 保存问题(修改和新增) /// 【WebService 使用】【不根据id进行判别】 /// </summary> /// <returns></returns> public bool SaveAlarms(List <alarmdetail> list_ad, int LineID, DateTime TrainComeDate, string TelexCode, int TrainDetailOrderNum) { try { //由于入库导致的 Thread.Sleep(new TimeSpan(0, Config.DelayTime4Save, 0)); if (list_ad != null && list_ad.Count > 0) { using (sartas3 db = new sartas3()) { train t = db.train.SingleOrDefault(n => n.Train_ComeDate == TrainComeDate && n.Line_ID == LineID && n.TelexCode == TelexCode); if (t != null) { //首先根据时间找到指定的分表 string TableName = "traindetail"; if (TrainComeDate.Month < DateTime.Now.Month) { for (DateTime i = TrainComeDate; i.Month < DateTime.Now.Month; i = i.AddMonths(1)) { TableName = "traindetail_" + i.ToString("MM"); string SQL_BeSureTableExist = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='" + Config.DB_SCHEMA + "' AND TABLE_NAME = 'traindetail_" + i.ToString("yyyyMM") + "'"; string resName = db.Database.SqlQuery <string>(SQL_BeSureTableExist).FirstOrDefault(); if (!string.IsNullOrWhiteSpace(resName)) { break; } else { TableName = "traindetail"; } } } //根据分表名称进行查询 string SQL_Query = @"SELECT * FROM " + Config.DB_SCHEMA + "." + TableName + @" td WHERE td.Train_ID = '" + t.Train_ID + "' AND td.TrainDetail_OrderNo='" + TrainDetailOrderNum + "' ORDER BY td.TrainDetail_OrderNo"; traindetail td = db.Database.SqlQuery <traindetail>(SQL_Query).SingleOrDefault(); if (td != null) { foreach (alarmdetail ad in list_ad) { if (!string.IsNullOrWhiteSpace(ad.AlarmDetail_ID)) { alarmdetail oldone = db.alarmdetail.SingleOrDefault(n => n.AlarmDetail_ID == ad.AlarmDetail_ID); if (oldone != null) { //修改 oldone.HandleResult = ad.HandleResult; oldone.OpTime = DateTime.Now; } else { //新增 ad.Train_ID = t.Train_ID.ToString(); ad.TrainDetail_ID = td.TrainDetail_ID.ToString(); ad.HandleResult = "0";//新增 ad.AlarmLevel = 1; db.alarmdetail.Add(ad); } db.SaveChanges(); } else { throw new Exception("AlarmDetailID为Null"); } } //更新车厢报警等级 new BLL_Car().Update_CarAlarmLevel(td.TrainDetail_ID.ToString()); } else { throw new Exception("未找到该车车厢"); } //更新列车报警等级 new BLL_Train().Update_TrainAlarmLevel(t.Train_ID.ToString()); } else { throw new Exception("未找到该列车"); } } return(true); } else { throw new Exception("AlarmDetail为空"); } } catch (Exception ex) { throw ex; } }