-
-
Save ShilGen/60f593b79fafe84ad8dd25419cb5bcca to your computer and use it in GitHub Desktop.
Отчет по диагностике сбора данных
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Наименование ТУ | |
Серийный | |
Тип | |
Показания за последние сутки | |
Дата показаний | |
Время записи показаний в БД | |
Ошибка | |
Дата ошибки | |
Область видимости | |
Тип маршрута | |
Время счетчика | |
Время сервера | |
*/ | |
var worksheet = WorkbookNonExcel.Worksheets.FirstOrDefault(); | |
var col=CollectorService.OnlyInstance; | |
var mps=new HashSet<MeterPoint>(); | |
if(ReportParams.cls.Any()) | |
{ | |
foreach(var cl in ReportParams.cls) | |
{ | |
var meters=cl.GetAllChildrenOfClass(MeterPoint.GetClassInfo()).OfType<MeterPoint>().ToArray(); | |
foreach(var meter in meters) | |
{ | |
mps.Add(meter); | |
} | |
} | |
} | |
else | |
{ | |
mps=MeterPoint.GetInstances().ToHashSet(); | |
} | |
var par=new Parameter[1]; | |
par[0]=TariffZoneBasedParameter.Instances.EnergyActiveForwardTotalFixDay; | |
int g=7; | |
var dInterval=new DayIntervalData{StartDt=DateTime.Now.AddDays(-g),EndDt=DateTime.Now}; | |
var i=0; | |
using (PreloadManager.Current.RegisterCache(() => new MeterPointGetEnergyValueCache(mps,par,dInterval))) | |
{ | |
foreach(var mp in mps) | |
{ | |
i++; | |
worksheet.Cells[i,0].Value=mp.Caption; | |
var el=mp.AttributeElectricityMeter; | |
if(el!=null) | |
{ | |
worksheet.Cells[i,1].Value=el.AttributeSerialNumber; | |
worksheet.Cells[i,2].Value=el.Class.Caption; | |
var data=mp.GetMeterPointFinalData(par[0],dInterval).ToArray(); | |
if(data.Any()) | |
{ | |
var ld=data.OrderBy(x=>x.ValueDt).LastOrDefault(); | |
worksheet.Cells[i,3].Value=ld.Value; | |
worksheet.Cells[i,4].Value=ld.ValueDt; | |
worksheet.Cells[i,5].Value=ld.RegisterDt; | |
} | |
var rts=el.AttributeRoutes.GetValues().ToArray(); | |
if(rts.Any()) | |
{ | |
var r=rts.FirstOrDefault(); | |
var dr=r as DirectRoute; | |
if(dr!=null) worksheet.Cells[i,9].Value="Прямой маршрут"; | |
else | |
{ | |
var ndr=r as NonDirectRoute; | |
if(ndr!=null) | |
{ | |
worksheet.Cells[i,9].Value="УСПД"; | |
if(ndr.AttributeChannelizingEquipment!=null) worksheet.Cells[i,9].Value=ndr.AttributeChannelizingEquipment.Class.Caption; | |
} | |
} | |
var d=rts.FirstOrDefault().DiagnosticGetState(DiagnosticStateData.LoggedEntityLastError,null); | |
var d1=d.FirstOrDefault(); | |
if(d1!=null) | |
{ | |
worksheet.Cells[i,6].Value=d1.Value.AsString; | |
worksheet.Cells[i,7].Value=d1.Dt; | |
} | |
} | |
var ils=el.AttributeIsolationLevels.LastOrDefault(); | |
if(ils!=null) worksheet.Cells[i,8].Value=ils.AttributeCaption; | |
var gts=el.GetTimeStatus(); | |
if(gts!=null) | |
{ | |
var lsr=gts.LastSucceedReadInfo; | |
if(lsr!=null) | |
{ | |
worksheet.Cells[i,10].SetValue(lsr.ServerDt.AddSeconds(lsr.DeltaValueSec)); | |
worksheet.Cells[i,10].Style.NumberFormat="dd.mm.yyyy hh:mm"; | |
worksheet.Cells[i,11].SetValue(lsr.ServerDt); | |
worksheet.Cells[i,11].Style.NumberFormat="dd.mm.yyyy hh:mm"; | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment