package com.jsowell.pile.domain;

import com.jsowell.common.annotation.Excel;
import com.jsowell.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;

/**
 * 订单详情对象 order_detail
 *
 * @author jsowell
 * @date 2022-09-30
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class OrderDetail extends BaseEntity {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	private Integer id;

	/**
	 * 订单编号
	 */
	@Excel(name = "订单编号")
	private String orderCode;

	/**
	 * 总用电量
	 */
	@Excel(name = "总用电量")
	private BigDecimal totalUsedElectricity;

	/**
	 * 订单总金额（电费总额+服务费总额）
	 */
	@Excel(name = "订单总金额", readConverterExp = "电=费总额+服务费总额")
	private BigDecimal totalOrderAmount;

	/**
	 * 电费总金额（各时段消耗电费总金额）
	 */
	@Excel(name = "电费总金额", readConverterExp = "各=时段消耗电费总金额")
	private BigDecimal totalElectricityAmount;

	/**
	 * 服务费总金额（各时段服务费总金额）
	 */
	@Excel(name = "服务费总金额", readConverterExp = "各=时段服务费总金额")
	private BigDecimal totalServiceAmount;

	/**
	 * 尖单价
	 */
	@Excel(name = "尖单价")
	private BigDecimal sharpPrice;

	/**
	 * 尖时段用电量
	 */
	@Excel(name = "尖时段用电量")
	private BigDecimal sharpUsedElectricity;

	/**
	 * 尖时段电费单价
	 */
	@Excel(name = "尖时段电费单价")
	private BigDecimal sharpElectricityPrice;

	/**
	 * 尖时段服务费单价
	 */
	@Excel(name = "尖时段服务费单价")
	private BigDecimal sharpServicePrice;

	/**
	 * 尖金额
	 */
	@Excel(name = "尖金额")
	private BigDecimal sharpAmount;

	/**
	 * 峰单价
	 */
	@Excel(name = "峰单价")
	private BigDecimal peakPrice;

	/**
	 * 峰时段用电量
	 */
	@Excel(name = "峰时段用电量")
	private BigDecimal peakUsedElectricity;

	/**
	 * 峰时段电费单价
	 */
	@Excel(name = "峰时段电费单价")
	private BigDecimal peakElectricityPrice;

	/**
	 * 峰时段服务费单价
	 */
	@Excel(name = "峰时段服务费单价")
	private BigDecimal peakServicePrice;

	/**
	 * 峰金额
	 */
	@Excel(name = "峰金额")
	private BigDecimal peakAmount;

	/***
	 * 平单价
	 */
	@Excel(name = "平单价")
	private BigDecimal flatPrice;

	/**
	 * 平时段用电量
	 */
	@Excel(name = "平时段用电量")
	private BigDecimal flatUsedElectricity;

	/**
	 * 平时段电费单价
	 */
	@Excel(name = "平时段电费单价")
	private BigDecimal flatElectricityPrice;

	/**
	 * 平时段服务费单价
	 */
	@Excel(name = "平时段服务费单价")
	private BigDecimal flatServicePrice;

	/**
	 * 平金额
	 */
	@Excel(name = "平金额")
	private BigDecimal flatAmount;

	/**
	 * 谷单价
	 */
	@Excel(name = "谷单价")
	private BigDecimal valleyPrice;

	/**
	 * 谷时段用电量
	 */
	@Excel(name = "谷时段用电量")
	private BigDecimal valleyUsedElectricity;

	/**
	 * 谷时段电费单价
	 */
	@Excel(name = "谷时段电费单价")
	private BigDecimal valleyElectricityPrice;

	/**
	 * 谷时段服务费单价
	 */
	@Excel(name = "谷时段服务费单价")
	private BigDecimal valleyServicePrice;

	/**
	 * 谷金额
	 */
	@Excel(name = "谷金额")
	private BigDecimal valleyAmount;

	/**
	 * 删除标识（0-正常；1-删除）
	 */
	private String delFlag;

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

	public Integer getId() {
		return id;
	}

	public void setOrderCode(String orderCode) {
		this.orderCode = orderCode;
	}

	public String getOrderCode() {
		return orderCode;
	}

	public void setTotalUsedElectricity(BigDecimal totalUsedElectricity) {
		this.totalUsedElectricity = totalUsedElectricity;
	}

	public BigDecimal getTotalUsedElectricity() {
		return totalUsedElectricity;
	}

	public void setTotalOrderAmount(BigDecimal totalOrderAmount) {
		this.totalOrderAmount = totalOrderAmount;
	}

	public BigDecimal getTotalOrderAmount() {
		return totalOrderAmount;
	}

	public void setTotalElectricityAmount(BigDecimal totalElectricityAmount) {
		this.totalElectricityAmount = totalElectricityAmount;
	}

	public BigDecimal getTotalElectricityAmount() {
		return totalElectricityAmount;
	}

	public void setTotalServiceAmount(BigDecimal totalServiceAmount) {
		this.totalServiceAmount = totalServiceAmount;
	}

	public BigDecimal getTotalServiceAmount() {
		return totalServiceAmount;
	}

	public void setSharpUsedElectricity(BigDecimal sharpUsedElectricity) {
		this.sharpUsedElectricity = sharpUsedElectricity;
	}

	public BigDecimal getSharpUsedElectricity() {
		return sharpUsedElectricity;
	}

	public void setSharpElectricityPrice(BigDecimal sharpElectricityPrice) {
		this.sharpElectricityPrice = sharpElectricityPrice;
	}

	public BigDecimal getSharpElectricityPrice() {
		return sharpElectricityPrice;
	}

	public void setSharpServicePrice(BigDecimal sharpServicePrice) {
		this.sharpServicePrice = sharpServicePrice;
	}

	public BigDecimal getSharpServicePrice() {
		return sharpServicePrice;
	}

	public void setPeakUsedElectricity(BigDecimal peakUsedElectricity) {
		this.peakUsedElectricity = peakUsedElectricity;
	}

	public BigDecimal getPeakUsedElectricity() {
		return peakUsedElectricity;
	}

	public void setPeakElectricityPrice(BigDecimal peakElectricityPrice) {
		this.peakElectricityPrice = peakElectricityPrice;
	}

	public BigDecimal getPeakElectricityPrice() {
		return peakElectricityPrice;
	}

	public void setPeakServicePrice(BigDecimal peakServicePrice) {
		this.peakServicePrice = peakServicePrice;
	}

	public BigDecimal getPeakServicePrice() {
		return peakServicePrice;
	}

	public void setFlatUsedElectricity(BigDecimal flatUsedElectricity) {
		this.flatUsedElectricity = flatUsedElectricity;
	}

	public BigDecimal getFlatUsedElectricity() {
		return flatUsedElectricity;
	}

	public void setFlatElectricityPrice(BigDecimal flatElectricityPrice) {
		this.flatElectricityPrice = flatElectricityPrice;
	}

	public BigDecimal getFlatElectricityPrice() {
		return flatElectricityPrice;
	}

	public void setFlatServicePrice(BigDecimal flatServicePrice) {
		this.flatServicePrice = flatServicePrice;
	}

	public BigDecimal getFlatServicePrice() {
		return flatServicePrice;
	}

	public void setValleyUsedElectricity(BigDecimal valleyUsedElectricity) {
		this.valleyUsedElectricity = valleyUsedElectricity;
	}

	public BigDecimal getValleyUsedElectricity() {
		return valleyUsedElectricity;
	}

	public void setValleyElectricityPrice(BigDecimal valleyElectricityPrice) {
		this.valleyElectricityPrice = valleyElectricityPrice;
	}

	public BigDecimal getValleyElectricityPrice() {
		return valleyElectricityPrice;
	}

	public void setValleyServicePrice(BigDecimal valleyServicePrice) {
		this.valleyServicePrice = valleyServicePrice;
	}

	public BigDecimal getValleyServicePrice() {
		return valleyServicePrice;
	}

	public void setDelFlag(String delFlag) {
		this.delFlag = delFlag;
	}

	public String getDelFlag() {
		return delFlag;
	}

	@Override
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
				.append("id", getId())
				.append("orderCode", getOrderCode())
				.append("totalUsedElectricity", getTotalUsedElectricity())
				.append("totalOrderAmount", getTotalOrderAmount())
				.append("totalElectricityAmount", getTotalElectricityAmount())
				.append("totalServiceAnount", getTotalServiceAmount())
				.append("sharpUsedElectricity", getSharpUsedElectricity())
				.append("sharpElectricityPrice", getSharpElectricityPrice())
				.append("sharpServicePrice", getSharpServicePrice())
				.append("peakUsedElectricity", getPeakUsedElectricity())
				.append("peakElectricityPrice", getPeakElectricityPrice())
				.append("peakServicePrice", getPeakServicePrice())
				.append("flatUsedElectricity", getFlatUsedElectricity())
				.append("flatElectricityPrice", getFlatElectricityPrice())
				.append("flatServicePrice", getFlatServicePrice())
				.append("valleyUsedElectricity", getValleyUsedElectricity())
				.append("valleyElectricityPrice", getValleyElectricityPrice())
				.append("valleyServicePrice", getValleyServicePrice())
				.append("createBy", getCreateBy())
				.append("createTime", getCreateTime())
				.append("updateBy", getUpdateBy())
				.append("updateTime", getUpdateTime())
				.append("delFlag", getDelFlag())
				.toString();
	}
}
