package com.ruoyi.ems.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.huashe.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 用电统计视图对象
 */
@ApiModel("用电统计响应模型")
public class ElecConsumptionVO {

    @ApiModelProperty("区域代码")
    private String areaCode;

    @ApiModelProperty("区域名称")
    private String areaName;

    @ApiModelProperty("对象代码")
    private String objCode;

    @ApiModelProperty("对象名称")
    @Excel(name = "对象名称")
    private String objName;

    @ApiModelProperty("对象类型 1-区域 2-设施")
    private Integer objType;

    @ApiModelProperty("统计日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "统计日期", dateFormat = "yyyy-MM-dd")
    private Date statisticDate;

    @ApiModelProperty("统计年份")
    @Excel(name = "统计年份")
    private String statisticYear;

    @ApiModelProperty("统计月份")
    @Excel(name = "统计月份")
    private String statisticMonth;

    @ApiModelProperty("统计时间维度 DAY-日 MONTH-月 YEAR-年")
    private String timeDimension;

    // 峰谷电统计字段
    @ApiModelProperty("总用电量(kWh)")
    @Excel(name = "总用电量(kWh)")
    private BigDecimal totalElecQuantity;

    @ApiModelProperty("尖峰电量(kWh)")
    @Excel(name = "尖峰电量(kWh)")
    private BigDecimal sharpPeakQuantity;

    @ApiModelProperty("峰段电量(kWh)")
    @Excel(name = "峰段电量(kWh)")
    private BigDecimal peakQuantity;

    @ApiModelProperty("平段电量(kWh)")
    @Excel(name = "平段电量(kWh)")
    private BigDecimal normalQuantity;

    @ApiModelProperty("谷段电量(kWh)")
    @Excel(name = "谷段电量(kWh)")
    private BigDecimal valleyQuantity;

    @ApiModelProperty("深谷电量(kWh)")
    @Excel(name = "深谷电量(kWh)")
    private BigDecimal deepValleyQuantity;

    @ApiModelProperty("总用电费用(元)")
    @Excel(name = "总用电费用(元)")
    private BigDecimal totalElecCost;

    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    // 构造方法
    public ElecConsumptionVO() {}

    // Getters and Setters
    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    public String getAreaName() {
        return areaName;
    }

    public void setAreaName(String areaName) {
        this.areaName = areaName;
    }

    public String getObjCode() {
        return objCode;
    }

    public void setObjCode(String objCode) {
        this.objCode = objCode;
    }

    public String getObjName() {
        return objName;
    }

    public void setObjName(String objName) {
        this.objName = objName;
    }

    public Integer getObjType() {
        return objType;
    }

    public void setObjType(Integer objType) {
        this.objType = objType;
    }

    public Date getStatisticDate() {
        return statisticDate;
    }

    public void setStatisticDate(Date statisticDate) {
        this.statisticDate = statisticDate;
    }

    public String getStatisticYear() {
        return statisticYear;
    }

    public void setStatisticYear(String statisticYear) {
        this.statisticYear = statisticYear;
    }

    public String getStatisticMonth() {
        return statisticMonth;
    }

    public void setStatisticMonth(String statisticMonth) {
        this.statisticMonth = statisticMonth;
    }

    public String getTimeDimension() {
        return timeDimension;
    }

    public void setTimeDimension(String timeDimension) {
        this.timeDimension = timeDimension;
    }

    public BigDecimal getTotalElecQuantity() {
        return totalElecQuantity;
    }

    public void setTotalElecQuantity(BigDecimal totalElecQuantity) {
        this.totalElecQuantity = totalElecQuantity;
    }

    public BigDecimal getSharpPeakQuantity() {
        return sharpPeakQuantity;
    }

    public void setSharpPeakQuantity(BigDecimal sharpPeakQuantity) {
        this.sharpPeakQuantity = sharpPeakQuantity;
    }

    public BigDecimal getPeakQuantity() {
        return peakQuantity;
    }

    public void setPeakQuantity(BigDecimal peakQuantity) {
        this.peakQuantity = peakQuantity;
    }

    public BigDecimal getNormalQuantity() {
        return normalQuantity;
    }

    public void setNormalQuantity(BigDecimal normalQuantity) {
        this.normalQuantity = normalQuantity;
    }

    public BigDecimal getValleyQuantity() {
        return valleyQuantity;
    }

    public void setValleyQuantity(BigDecimal valleyQuantity) {
        this.valleyQuantity = valleyQuantity;
    }

    public BigDecimal getDeepValleyQuantity() {
        return deepValleyQuantity;
    }

    public void setDeepValleyQuantity(BigDecimal deepValleyQuantity) {
        this.deepValleyQuantity = deepValleyQuantity;
    }

    public BigDecimal getTotalElecCost() {
        return totalElecCost;
    }

    public void setTotalElecCost(BigDecimal totalElecCost) {
        this.totalElecCost = totalElecCost;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return "ElecConsumptionVO{" +
            "areaCode='" + areaCode + '\'' +
            ", areaName='" + areaName + '\'' +
            ", objCode='" + objCode + '\'' +
            ", objName='" + objName + '\'' +
            ", objType=" + objType +
            ", statisticDate=" + statisticDate +
            ", statisticYear='" + statisticYear + '\'' +
            ", statisticMonth='" + statisticMonth + '\'' +
            ", timeDimension='" + timeDimension + '\'' +
            ", totalElecQuantity=" + totalElecQuantity +
            ", sharpPeakQuantity=" + sharpPeakQuantity +
            ", peakQuantity=" + peakQuantity +
            ", normalQuantity=" + normalQuantity +
            ", valleyQuantity=" + valleyQuantity +
            ", deepValleyQuantity=" + deepValleyQuantity +
            ", totalElecCost=" + totalElecCost +
            ", createTime=" + createTime +
            '}';
    }
}