package com.zcxk.charge.api.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.zcxk.charge.api.dto.DeviceDto;
import com.zcxk.charge.api.dto.ReportAttributeDto;
import com.zcxk.charge.api.dto.ReportTitleDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
 * @author  andy
 */
@Data
@ApiModel("统计报表日报月报年报")
public class ReportVo implements Serializable {
    private static final long serialVersionUID = 4074399088580570408L;
    @ApiModelProperty("年")
    private Integer year;
    @ApiModelProperty("月")
    private Integer month;
    @ApiModelProperty("日")
    private Integer day;
    @ApiModelProperty("时")
    private Integer hour;
    @ApiModelProperty("一级场景信息")
    private Integer parentSceneId;
    /** 一级场景s */
    @JsonIgnore
    @ApiModelProperty(value = "一级场景IDS")
    private Long[] parentSceneIds;
    @ApiModelProperty("一级场景名称")
    private String parentSceneName;
    @ApiModelProperty("今日供水量or今日出水量")
    private Double yieldWaterUsage;
    @ApiModelProperty("今日取水量or今日进水量")
    private Double intakeWaterUsage;
    @ApiModelProperty("今日耗电量")
    private Double powerUsage;
    @ApiModelProperty("今日耗药量")
    private Double drugUsage;
    /** 设备s */
    @JsonIgnore
    @ApiModelProperty(value = "设备IDS")
    private List<DeviceVo> deviceIds;

    @ApiModelProperty("设备数据")
    @JsonIgnore
    List<ReportAttributeDto> dataValues;

    @ApiModelProperty("报表标题")
    List<String> dataTitle;

    @ApiModelProperty("设备数据")
    List<Map<String,Object>> dataMapValues;

    @ApiModelProperty(value = "统计时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private String collectDate;

    @ApiModelProperty("报表标题")
    List<ReportTitleDto> reportTitle;

    @ApiModelProperty("参数类型")
    private List<Integer> parmType;

    @ApiModelProperty("用户ID")
    @JsonIgnore
    private Integer userId;

    @ApiModelProperty("设备名字")
    private String deviceName;

    @ApiModelProperty(value = "开始时间")
    private String startTime;

    @ApiModelProperty(value = "结束时间")
    private String endTime;

    @ApiModelProperty("场景类型名称")
    private String sceneTypeName;

    @ApiModelProperty("场景Id")
    private Long sceneId;

}
