/**
 * EMS报表数据模块类型定义
 */

/**
 * DNB点位报表VO
 */
export interface ReportPointDnbVO {
  objId: string | number;
  monitorId?: string | number;
  monitorCode?: string;
  monitorName?: string;
  instrumentValue?: number;
  expend?: number;
  voltage?: number;
  current?: number;
  power?: number;
  powerFactor?: number;
  totalPower?: number;
  recordTime?: string;
  beginTime?: string;
  endTime?: string;
  reportDate?: string;
  reportType?: string;
  updateFlag?: string;
  createBy?: string;
  createTime?: string;
  updateBy?: string;
  updateTime?: string;
}

export interface ReportPointDnbForm {
  objId?: string | number;
  monitorId?: string | number;
  monitorCode?: string;
  monitorName?: string;
  instrumentValue?: number;
  expend?: number;
  recordTime?: string;
  beginTime?: string;
  endTime?: string;
  reportDate?: string;
  reportType?: string;
  updateFlag?: string;
}

export interface ReportPointDnbQuery extends PageQuery {
  monitorId?: string | number;
  monitorCode?: string;
  instrumentValue?: number;
  expend?: number;
  recordTime?: string;
  beginTime?: string;
  endTime?: string;
  reportDate?: string;
  reportType?: string;
  updateFlag?: string;
  startDate?: string;
  endDate?: string;
  params?: any;
}

/**
 * IOT点位报表VO
 */
export interface ReportPointIOTVO {
  objId: string | number;
  monitorId?: string | number;
  monitorName?: string;
  avgTemperature?: number;
  maxTemperature?: number;
  minTemperature?: number;
  avgHumidity?: number;
  maxHumidity?: number;
  minHumidity?: number;
  reportDate?: string;
  reportType?: string;
  createTime?: string;
}

export interface ReportPointIOTForm {
  objId?: string | number;
  monitorId?: string | number;
  reportDate?: string;
  reportType?: string;
}

export interface ReportPointIOTQuery extends PageQuery {
  monitorId?: string | number;
  reportDate?: string;
  reportType?: string;
  startDate?: string;
  endDate?: string;
}

/**
 * 蒸汽点位报表VO
 */
export interface ReportPointSteamVO {
  objId: string | number;
  monitorId?: string | number;
  monitorName?: string;
  totalFlow?: number;
  avgFlow?: number;
  maxFlow?: number;
  minFlow?: number;
  avgPressure?: number;
  avgTemperature?: number;
  reportDate?: string;
  reportType?: string;
  createTime?: string;
}

export interface ReportPointSteamForm {
  objId?: string | number;
  monitorId?: string | number;
  reportDate?: string;
  reportType?: string;
}

export interface ReportPointSteamQuery extends PageQuery {
  monitorId?: string | number;
  reportDate?: string;
  reportType?: string;
  startDate?: string;
  endDate?: string;
}

/**
 * 水点位报表VO
 */
export interface ReportPointWaterVO {
  objId: string | number;
  monitorId?: string | number;
  monitorCode?: string;
  monitorName?: string;
  instrumentValue?: number;
  expend?: number;
  voltage?: number;
  current?: number;
  power?: number;
  powerFactor?: number;
  totalPower?: number;
  recordTime?: string;
  beginTime?: string;
  endTime?: string;
  reportDate?: string;
  reportType?: string;
  updateFlag?: string;
  createBy?: string;
  createTime?: string;
  updateBy?: string;
  updateTime?: string;
}

export interface ReportPointWaterForm {
  objId?: string | number;
  monitorId?: string | number;
  monitorCode?: string;
  monitorName?: string;
  instrumentValue?: number;
  expend?: number;
  recordTime?: string;
  beginTime?: string;
  endTime?: string;
  reportDate?: string;
  reportType?: string;
  updateFlag?: string;
}

export interface ReportPointWaterQuery extends PageQuery {
  monitorId?: string | number;
  monitorCode?: string;
  instrumentValue?: number;
  expend?: number;
  recordTime?: string;
  beginTime?: string;
  endTime?: string;
  reportDate?: string;
  reportType?: string;
  updateFlag?: string;
  startDate?: string;
  endDate?: string;
  params?: any;
}

/**
 * 端口报表VO
 */
export interface ReportPortVO {
  objId: string | number;
  portId?: string | number;
  portName?: string;
  totalCount?: number;
  successCount?: number;
  failCount?: number;
  avgResponseTime?: number;
  reportDate?: string;
  reportType?: string;
  createTime?: string;
}

export interface ReportPortForm {
  objId?: string | number;
  portId?: string | number;
  reportDate?: string;
  reportType?: string;
}

export interface ReportPortQuery extends PageQuery {
  portId?: string | number;
  reportDate?: string;
  reportType?: string;
  startDate?: string;
  endDate?: string;
}

/**
 * 温湿度监控VO
 */
export interface TemperatureHumidityVO {
  objId: string | number;
  monitorId?: string | number;
  monitorName?: string;
  temperature?: number;
  humidity?: number;
  alarmStatus?: number;
  recordTime?: string;
  createTime?: string;
}

export interface TemperatureHumidityForm {
  objId?: string | number;
  monitorId?: string | number;
  temperature?: number;
  humidity?: number;
  recordTime?: string;
}

export interface TemperatureHumidityQuery extends PageQuery {
  monitorId?: string | number;
  alarmStatus?: number;
  startTime?: string;
  endTime?: string;
}
