示例#1
0
 /// <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);
     }
 }
示例#2
0
 /// <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; }
        }