package com.jjt.ws.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.jjt.common.annotation.Excel;
import com.jjt.common.core.domain.BaseEntity;
import com.jjt.elec.domain.ElecPrice;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 染整月统计对象 TWIN_RZ_CALC_MONTH
 *
 * @author wukai
 * @date 2025-04-23
 */
@ApiModel(value = "TwinRzCalcMonth", description = "染整月统计")
@Data
public class TwinRzCalcMonth extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 统计ID
     */
    @ApiModelProperty("统计ID")
    @TableId
    private Long calcId;

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

    /**
     * 总费用
     */
    @ApiModelProperty("总费用")
    @Excel(name = "总费用")
    private BigDecimal totalPrice;

    /**
     * 总米数
     */
    @ApiModelProperty("总米数")
    @Excel(name = "总米数")
    private BigDecimal length;

    /**
     * 平均每米价
     */
    @ApiModelProperty("平均每米价")
    @Excel(name = "平均每米价")
    private BigDecimal lengthPrice;

    /**
     * 总重量
     */
    @ApiModelProperty("总重量")
    @Excel(name = "总重量")
    private BigDecimal weight;

    /**
     * 平均每KG价
     */
    @ApiModelProperty("平均每KG价")
    @Excel(name = "平均每KG价")
    private BigDecimal weightPrice;
    /**
     * 电总用量
     */
    @ApiModelProperty("电总用量")
    @Excel(name = "电总用量")
    @JsonProperty("dUse")
    private BigDecimal dUse;
    /**
     * 电费
     */
    @ApiModelProperty("电费")
    @Excel(name = "电费")
    @JsonProperty("dPrice")
    private BigDecimal dPrice;

    /**
     * 前整用量
     */
    @ApiModelProperty("前整用量")
    @Excel(name = "前整用量")
    private BigDecimal qzUse;

    /**
     * 前整电费
     */
    @ApiModelProperty("前整电费")
    @Excel(name = "前整电费")
    private BigDecimal qzPrice;

    /**
     * 前整峰电用量
     */
    @ApiModelProperty("前整峰电用量")
    @Excel(name = "前整峰电用量")
    private BigDecimal qzFUse;

    /**
     * 前整谷电用量
     */
    @ApiModelProperty("前整谷电用量")
    @Excel(name = "前整谷电用量")
    private BigDecimal qzGUse;

    /**
     * 前整平电用量
     */
    @ApiModelProperty("前整平电用量")
    @Excel(name = "前整平电用量")
    private BigDecimal qzPUse;

    /**
     * 前整尖峰用量
     */
    @ApiModelProperty("前整尖峰用量")
    @Excel(name = "前整尖峰用量")
    private BigDecimal qzJfUse;

    /**
     * 后整用量
     */
    @ApiModelProperty("后整用量")
    @Excel(name = "后整用量")
    private BigDecimal hzUse;

    /**
     * 后整电费
     */
    @ApiModelProperty("后整电费")
    @Excel(name = "后整电费")
    private BigDecimal hzPrice;

    /**
     * 后整峰电用量
     */
    @ApiModelProperty("后整峰电用量")
    @Excel(name = "后整峰电用量")
    private BigDecimal hzFUse;

    /**
     * 后整谷电用量
     */
    @ApiModelProperty("后整谷电用量")
    @Excel(name = "后整谷电用量")
    private BigDecimal hzGUse;

    /**
     * 后整平电用量
     */
    @ApiModelProperty("后整平电用量")
    @Excel(name = "后整平电用量")
    private BigDecimal hzPUse;

    /**
     * 后整尖峰用量
     */
    @ApiModelProperty("后整尖峰用量")
    @Excel(name = "后整尖峰用量")
    private BigDecimal hzJfUse;

    /**
     * 印染用量
     */
    @ApiModelProperty("印染用量")
    @Excel(name = "印染用量")
    private BigDecimal yrUse;

    /**
     * 印染电费
     */
    @ApiModelProperty("印染电费")
    @Excel(name = "印染电费")
    private BigDecimal yrPrice;

    /**
     * 印染峰电用量
     */
    @ApiModelProperty("印染峰电用量")
    @Excel(name = "印染峰电用量")
    private BigDecimal yrFUse;

    /**
     * 印染谷电用量
     */
    @ApiModelProperty("印染谷电用量")
    @Excel(name = "印染谷电用量")
    private BigDecimal yrGUse;

    /**
     * 印染平电用量
     */
    @ApiModelProperty("印染平电用量")
    @Excel(name = "印染平电用量")
    private BigDecimal yrPUse;

    /**
     * 印染尖峰用量
     */
    @ApiModelProperty("印染尖峰用量")
    @Excel(name = "印染尖峰用量")
    private BigDecimal yrJfUse;

    /**
     * 水费
     */
    @ApiModelProperty("水费")
    @Excel(name = "水费")
    @JsonProperty("sPrice")
    private BigDecimal sPrice;

    /**
     * 水用量
     */
    @ApiModelProperty("水用量")
    @Excel(name = "水用量")
    @JsonProperty("sUse")
    private BigDecimal sUse;

    /**
     * 蒸汽费用
     */
    @ApiModelProperty("蒸汽费用")
    @Excel(name = "蒸汽费用")
    @JsonProperty("qPrice")
    private BigDecimal qPrice;

    /**
     * 低压用量
     */
    @ApiModelProperty("低压用量")
    @Excel(name = "低压用量")
    @JsonProperty("qLowUse")
    private BigDecimal qLowUse;

    /**
     * 低压费用
     */
    @ApiModelProperty("低压费用")
    @Excel(name = "低压费用")
    @JsonProperty("qLowPrice")
    private BigDecimal qLowPrice;

    /**
     * 中亚用量
     */
    @ApiModelProperty("中亚用量")
    @Excel(name = "中亚用量")
    @JsonProperty("qMidUse")
    private BigDecimal qMidUse;

    /**
     * 中亚费用
     */
    @ApiModelProperty("中亚费用")
    @Excel(name = "中亚费用")
    @JsonProperty("qMidPrice")
    private BigDecimal qMidPrice;


    @ApiModelProperty("电价")
    private ElecPrice elecPrice;

    public void setPrice() {
        this.dPrice = isNull(qzPrice).add(isNull(hzPrice)).add(isNull(yrPrice));
        this.qPrice = isNull(this.qLowPrice).add(isNull(this.qMidPrice));
        this.totalPrice = dPrice.add(qPrice).add(isNull(sPrice));
        this.dUse = isNull(qzUse).add(isNull(hzUse).add(isNull(yrUse)));
    }

    private BigDecimal isNull(BigDecimal v) {
        return v != null ? v : BigDecimal.ZERO;
    }
}

