public Dictionary <DateTime, SvodDataRecord> ReadSvod(string groupName, double start, double stop, string IsUstGroup) { SqlConnection con = ReportOutputFile.getConnection(); string query = String.Format("Select * from svodTable where dateStart>='{0}' and dateEnd<='{1}' and {2}>={3} and {2}<={4} and {5}>0 order by dateStart", StartDate.ToString(DateFormat), EndDate.ToString(DateFormat), groupName, start.ToString().Replace(",", "."), stop.ToString().Replace(",", "."), IsUstGroup); SqlCommand com = con.CreateCommand(); com.CommandText = query; Dictionary <DateTime, SvodDataRecord> Data = new Dictionary <DateTime, SvodDataRecord>(); SqlDataReader reader = com.ExecuteReader(); while (reader.Read()) { SvodDataRecord rec = new SvodDataRecord(); rec.DateStart = reader.GetDateTime(reader.GetOrdinal("DateStart")); rec.DateEnd = reader.GetDateTime(reader.GetOrdinal("DateEnd")); rec.IsUst = reader.GetBoolean(reader.GetOrdinal("IsUst")); rec.IsUstGP = reader.GetBoolean(reader.GetOrdinal("IsUstGP")); rec.IsUstPP = reader.GetBoolean(reader.GetOrdinal("IsUstPP")); rec.IsUstGPOhl = reader.GetBoolean(reader.GetOrdinal("IsUstGPOhl")); rec.IsUstPPOhl = reader.GetBoolean(reader.GetOrdinal("IsUstPPOhl")); rec.PAvg = reader.GetDouble(reader.GetOrdinal("P_Avg")); rec.PMin = reader.GetDouble(reader.GetOrdinal("P_Min")); rec.PMax = reader.GetDouble(reader.GetOrdinal("P_Max")); rec.LN1Time = reader.GetDouble(reader.GetOrdinal("LN1_Time")); rec.LN2Time = reader.GetDouble(reader.GetOrdinal("LN2_Time")); rec.DN1Time = reader.GetDouble(reader.GetOrdinal("DN1_Time")); rec.DN2Time = reader.GetDouble(reader.GetOrdinal("DN2_Time")); rec.MNU1Time = reader.GetDouble(reader.GetOrdinal("MNU1_Time")); rec.MNU2Time = reader.GetDouble(reader.GetOrdinal("MNU2_Time")); rec.MNU3Time = reader.GetDouble(reader.GetOrdinal("MNU3_Time")); rec.LN1Pusk = reader.GetInt32(reader.GetOrdinal("LN1_Pusk")); rec.LN2Pusk = reader.GetInt32(reader.GetOrdinal("LN2_Pusk")); rec.DN1Pusk = reader.GetInt32(reader.GetOrdinal("DN1_Pusk")); rec.DN2Pusk = reader.GetInt32(reader.GetOrdinal("DN2_Pusk")); rec.MNU1Pusk = reader.GetInt32(reader.GetOrdinal("MNU1_Pusk")); rec.MNU2Pusk = reader.GetInt32(reader.GetOrdinal("MNU2_Pusk")); rec.MNU3Pusk = reader.GetInt32(reader.GetOrdinal("MNU3_Pusk")); rec.GPHot = reader.GetDouble(reader.GetOrdinal("GP_Hot")); rec.GPCold = reader.GetDouble(reader.GetOrdinal("GP_Cold")); rec.GPLevel = reader.GetDouble(reader.GetOrdinal("GP_Level")); rec.PPHot = reader.GetDouble(reader.GetOrdinal("PP_Hot")); rec.PPCold = reader.GetDouble(reader.GetOrdinal("PP_Cold")); rec.PPLevel = reader.GetDouble(reader.GetOrdinal("PP_Level")); rec.GPOhlRashod = reader.GetDouble(reader.GetOrdinal("GP_OhlRash")); rec.PPOhlRashod = reader.GetDouble(reader.GetOrdinal("PP_OhlRash")); Data.Add(rec.DateStart, rec); } return(Data); }
public SortedList <DateTime, SvodDataRecord> ReadPumpSvod(string groupName, double start, double stop) { SqlConnection con = ReportOutputFile.getConnection(); string query = String.Format( @"select format(datestart, 'dd.MM.yyyy') as dt, min(dateStart) as mindate, sum(ln1_time) as ln1Time, sum(ln2_time) as ln2Time, sum(dn1_time) as dn1Time, sum(dn2_time) as dn2Time, sum(mnu1_time) as mnu1Time, sum(mnu2_time) as mnu2Time, sum(mnu3_time) as mnu3Time, sum(ln1_pusk) as ln1Pusk, sum(ln2_pusk) as ln2Pusk, sum(dn1_pusk) as dn1Pusk, sum(dn2_pusk) as dn2Pusk, sum(mnu1_pusk) as mnu1Pusk, sum(mnu2_pusk) as mnu2Pusk, sum(mnu3_pusk) as mnu3Pusk from SvodTable where dateStart>='{0}' and dateEnd<='{1}' and {2}>={3} and {2}<={4} group by format(datestart, 'dd.MM.yyyy') order by mindate", StartDate.ToString(DateFormat), EndDate.ToString(DateFormat), groupName, start.ToString().Replace(",", "."), stop.ToString().Replace(",", ".")); SqlCommand com = con.CreateCommand(); com.CommandText = query; SortedList <DateTime, SvodDataRecord> Data = new SortedList <DateTime, SvodDataRecord>(); SqlDataReader reader = com.ExecuteReader(); while (reader.Read()) { SvodDataRecord rec = new SvodDataRecord(); rec.DateStart = reader.GetDateTime(reader.GetOrdinal("mindate")); rec.DateEnd = rec.DateStart.AddDays(1); rec.IsUst = true; rec.LN1Time = reader.GetDouble(reader.GetOrdinal("ln1Time")); rec.LN2Time = reader.GetDouble(reader.GetOrdinal("ln2Time")); rec.DN1Time = reader.GetDouble(reader.GetOrdinal("dn1Time")); rec.DN2Time = reader.GetDouble(reader.GetOrdinal("dn2Time")); rec.MNU1Time = reader.GetDouble(reader.GetOrdinal("mnu1Time")); rec.MNU2Time = reader.GetDouble(reader.GetOrdinal("mnu2Time")); rec.MNU3Time = reader.GetDouble(reader.GetOrdinal("mnu3Time")); rec.LN1Pusk = reader.GetInt32(reader.GetOrdinal("ln1Pusk")); rec.LN2Pusk = reader.GetInt32(reader.GetOrdinal("ln2Pusk")); rec.DN1Pusk = reader.GetInt32(reader.GetOrdinal("dn1Pusk")); rec.DN2Pusk = reader.GetInt32(reader.GetOrdinal("dn2Pusk")); rec.MNU1Pusk = reader.GetInt32(reader.GetOrdinal("mnu1Pusk")); rec.MNU2Pusk = reader.GetInt32(reader.GetOrdinal("mnu2Pusk")); rec.MNU3Pusk = reader.GetInt32(reader.GetOrdinal("mnu3Pusk")); Data.Add(rec.DateStart, rec); } return(Data); }
public bool ReadData() { Data = new SortedList <DateTime, SvodDataRecord>(); PumpTypeEnum type = PumpTypeEnum.Drenage; ReportOutputFile outFile = new ReportOutputFile(FileName); try { outFile.ReadData(); } catch (Exception e) { Logger.Info("Ошибка инициализации файла " + FileName); Logger.Info(e.ToString()); return(false); } for (int i = 2; i < outFile.Data.Count; i++) { try { Dictionary <int, string> fileRec = outFile.Data[i]; SvodDataRecord rec = new SvodDataRecord(); rec.DateStart = ReportOutputFile.getDate(fileRec[0]); rec.DateEnd = ReportOutputFile.getDate(fileRec[1]); rec.PMin = ReportOutputFile.getDouble(fileRec[2]); rec.PMax = ReportOutputFile.getDouble(fileRec[3]); rec.PAvg = ReportOutputFile.getDouble(fileRec[4]); rec.LN1Time = ReportOutputFile.getDouble(fileRec[5]); rec.LN2Time = ReportOutputFile.getDouble(fileRec[6]); rec.DN1Time = ReportOutputFile.getDouble(fileRec[7]); rec.DN2Time = ReportOutputFile.getDouble(fileRec[8]); rec.MNU1Time = ReportOutputFile.getDouble(fileRec[9]); rec.MNU2Time = ReportOutputFile.getDouble(fileRec[10]); rec.MNU3Time = ReportOutputFile.getDouble(fileRec[11]); rec.LN1Pusk = (int)ReportOutputFile.getDouble(fileRec[12]); rec.LN2Pusk = (int)ReportOutputFile.getDouble(fileRec[13]); rec.DN1Pusk = (int)ReportOutputFile.getDouble(fileRec[14]); rec.DN2Pusk = (int)ReportOutputFile.getDouble(fileRec[15]); rec.MNU1Pusk = (int)ReportOutputFile.getDouble(fileRec[16]); rec.MNU2Pusk = (int)ReportOutputFile.getDouble(fileRec[17]); rec.MNU3Pusk = (int)ReportOutputFile.getDouble(fileRec[18]); rec.GPHot = ReportOutputFile.getDouble(fileRec[19]); rec.GPCold = ReportOutputFile.getDouble(fileRec[20]); rec.GPLevel = ReportOutputFile.getDouble(fileRec[21]); rec.PPHot = ReportOutputFile.getDouble(fileRec[22]); rec.PPCold = ReportOutputFile.getDouble(fileRec[23]); rec.PPLevel = ReportOutputFile.getDouble(fileRec[24]); double GPLevelMin = ReportOutputFile.getDouble(fileRec[25]); double PPLevelMin = ReportOutputFile.getDouble(fileRec[26]); double GPLevelMax = ReportOutputFile.getDouble(fileRec[27]); double PPLevelMax = ReportOutputFile.getDouble(fileRec[28]); double gpHotMin = ReportOutputFile.getDouble(fileRec[29]); double gpColdMin = ReportOutputFile.getDouble(fileRec[30]); double gpHotMax = ReportOutputFile.getDouble(fileRec[31]); double gpColdMax = ReportOutputFile.getDouble(fileRec[32]); double ppHotMin = ReportOutputFile.getDouble(fileRec[33]); double ppColdMin = ReportOutputFile.getDouble(fileRec[34]); double ppHotMax = ReportOutputFile.getDouble(fileRec[35]); double ppColdMax = ReportOutputFile.getDouble(fileRec[36]); double gpOhlAvg = ReportOutputFile.getDouble(fileRec[37]); double gpOhlMin = ReportOutputFile.getDouble(fileRec[38]); double gpOhlMax = ReportOutputFile.getDouble(fileRec[39]); double ppOhlAvg1 = ReportOutputFile.getDouble(fileRec[40]); double ppOhlMin1 = ReportOutputFile.getDouble(fileRec[41]); double ppOhlMax1 = ReportOutputFile.getDouble(fileRec[42]); double ppOhlAvg2 = ReportOutputFile.getDouble(fileRec[43]); double ppOhlMin2 = ReportOutputFile.getDouble(fileRec[44]); double ppOhlMax2 = ReportOutputFile.getDouble(fileRec[45]); rec.GPOhlRashod = gpOhlAvg; rec.PPOhlRashod = ppOhlAvg1 + ppOhlAvg2; rec.IsUst = IsUst(rec.PMin, rec.PMax, rec.PAvg, 2); rec.IsUstGP = IsUst(GPLevelMin, GPLevelMax, rec.GPLevel, 3); rec.IsUstGP = rec.IsUstGP && IsUst(gpHotMin, gpHotMax, rec.GPHot, 3); rec.IsUstGP = rec.IsUstGP && IsUst(gpColdMin, gpColdMax, rec.GPCold, 3); rec.IsUstPP = IsUst(PPLevelMin, PPLevelMax, rec.PPLevel, 3); rec.IsUstPP = rec.IsUstPP && IsUst(ppHotMin, ppHotMax, rec.PPHot, 3); rec.IsUstPP = rec.IsUstPP && IsUst(ppColdMin, ppColdMax, rec.PPCold, 3); rec.IsUstGPOhl = IsUst(gpOhlMin, gpOhlMax, gpOhlAvg, 5); rec.IsUstPPOhl = IsUst(ppOhlMin1, ppOhlMax1, ppOhlAvg1, 5) && IsUst(ppOhlMin2, ppOhlMax2, ppOhlAvg2, 5); while (Data.ContainsKey(rec.DateStart)) { rec.DateStart = rec.DateStart.AddMilliseconds(1); } Data.Add(rec.DateStart, rec); } catch (Exception e) { Logger.Info("ошибка при разборе строки"); Logger.Info(e.ToString()); return(false); } } return(true); }