package com.xzzn.ems.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xzzn.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.xzzn.common.annotation.Excel;

/**
 * 站点电每日数据对象 ems_daily_energy_data
 *
 * @author xzzn
 * @date 2025-10-09
 */
public class EmsDailyEnergyData extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 站点id */
    @Excel(name = "站点id")
    private String siteId;

    /** 数据日期:yyyy-MM-dd */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "数据日期:yyyy-MM-dd", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dataDate;

    /** 数据小时(0-23) */
    @Excel(name = "数据小时(0-23)")
    private Integer dataHour;

    /** 尖峰时段充电差值 */
    @Excel(name = "尖峰时段充电差值")
    private BigDecimal peakChargeDiff;

    /** 尖峰时段放电差值 */
    @Excel(name = "尖峰时段放电差值")
    private BigDecimal peakDischargeDiff;

    /** 峰时时段充电差值 */
    @Excel(name = "峰时时段充电差值")
    private BigDecimal highChargeDiff;

    /** 峰时时段放电差值 */
    @Excel(name = "峰时时段放电差值")
    private BigDecimal highDischargeDiff;

    /** 平时时段充电差值 */
    @Excel(name = "平时时段充电差值")
    private BigDecimal flatChargeDiff;

    /** 平时时段放电差值 */
    @Excel(name = "平时时段放电差值")
    private BigDecimal flatDischargeDiff;

    /** 谷时时段充电差值 */
    @Excel(name = "谷时时段充电差值")
    private BigDecimal valleyChargeDiff;

    /** 谷时时段放电差值 */
    @Excel(name = "谷时时段放电差值")
    private BigDecimal valleyDischargeDiff;

    /** 差值计算时间（如2025-10-10 23:59:00） */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "差值计算时间", readConverterExp = "如=2025-10-10,2=3:59:00")
    private Date calcTime;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setSiteId(String siteId)
    {
        this.siteId = siteId;
    }

    public String getSiteId()
    {
        return siteId;
    }

    public void setDataDate(Date dataDate)
    {
        this.dataDate = dataDate;
    }

    public Date getDataDate()
    {
        return dataDate;
    }

    public void setDataHour(Integer dataHour)
    {
        this.dataHour = dataHour;
    }

    public Integer getDataHour()
    {
        return dataHour;
    }

    public void setPeakChargeDiff(BigDecimal peakChargeDiff)
    {
        this.peakChargeDiff = peakChargeDiff;
    }

    public BigDecimal getPeakChargeDiff()
    {
        return peakChargeDiff;
    }

    public void setPeakDischargeDiff(BigDecimal peakDischargeDiff)
    {
        this.peakDischargeDiff = peakDischargeDiff;
    }

    public BigDecimal getPeakDischargeDiff()
    {
        return peakDischargeDiff;
    }

    public void setHighChargeDiff(BigDecimal highChargeDiff)
    {
        this.highChargeDiff = highChargeDiff;
    }

    public BigDecimal getHighChargeDiff()
    {
        return highChargeDiff;
    }

    public void setHighDischargeDiff(BigDecimal highDischargeDiff)
    {
        this.highDischargeDiff = highDischargeDiff;
    }

    public BigDecimal getHighDischargeDiff()
    {
        return highDischargeDiff;
    }

    public void setFlatChargeDiff(BigDecimal flatChargeDiff)
    {
        this.flatChargeDiff = flatChargeDiff;
    }

    public BigDecimal getFlatChargeDiff()
    {
        return flatChargeDiff;
    }

    public void setFlatDischargeDiff(BigDecimal flatDischargeDiff)
    {
        this.flatDischargeDiff = flatDischargeDiff;
    }

    public BigDecimal getFlatDischargeDiff()
    {
        return flatDischargeDiff;
    }

    public void setValleyChargeDiff(BigDecimal valleyChargeDiff)
    {
        this.valleyChargeDiff = valleyChargeDiff;
    }

    public BigDecimal getValleyChargeDiff()
    {
        return valleyChargeDiff;
    }

    public void setValleyDischargeDiff(BigDecimal valleyDischargeDiff)
    {
        this.valleyDischargeDiff = valleyDischargeDiff;
    }

    public BigDecimal getValleyDischargeDiff()
    {
        return valleyDischargeDiff;
    }

    public void setCalcTime(Date calcTime)
    {
        this.calcTime = calcTime;
    }

    public Date getCalcTime()
    {
        return calcTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("siteId", getSiteId())
                .append("dataDate", getDataDate())
                .append("dataHour", getDataHour())
                .append("peakChargeDiff", getPeakChargeDiff())
                .append("peakDischargeDiff", getPeakDischargeDiff())
                .append("highChargeDiff", getHighChargeDiff())
                .append("highDischargeDiff", getHighDischargeDiff())
                .append("flatChargeDiff", getFlatChargeDiff())
                .append("flatDischargeDiff", getFlatDischargeDiff())
                .append("valleyChargeDiff", getValleyChargeDiff())
                .append("valleyDischargeDiff", getValleyDischargeDiff())
                .append("calcTime", getCalcTime())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
