package com.zksy.info.domain;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Data;

/**
 * 企业用电信息表
 * @TableName e_enterprise_power_info
 */
@TableName(value ="e_enterprise_power_info")
@Data
@ApiModel(value="EEnterprisePowerInfo对象", description="企业用电相关信息")
public class EEnterprisePowerInfo implements Serializable {
    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value = "用电信息唯一标识", position = 1)
    @ExcelIgnore
    private String id;

    /**
     * 企业名称
     */
    @ExcelProperty(value = "企业名称",index = 0)
    @ApiModelProperty(value = "用电企业全称", position = 2)
    private String enterpriseName;

    /**
     * 统一社会信用代码
     */
    @ExcelProperty(value = "统一社会信用代码",index = 1)
    @ApiModelProperty(value = "企业信用代码", position = 3, example = "913101156312345678")
    private String unifiedSocialCreditCode;

    /**
     * 电网户号
     */
    @ExcelProperty(value = "电网户号",index = 2)
    @ApiModelProperty(value = "供电系统中的用户编号", position = 4, example = "310000123456")
    private String powerGridAccountNumber;

    /**
     * 用户地址
     */
    @ExcelProperty(value = "用户地址",index = 3)
    @ApiModelProperty(value = "用电地址", position = 5)
    private String userAddress;

    /**
     * 运行容量
     */
    @ExcelProperty(value = "运行容量",index = 4)
    @ApiModelProperty(value = "当前运行的设备容量（单位：kW）", position = 6, example = "1250.00")
    private BigDecimal operatingCapacity;

    /**
     * 合同容量
     */
    @ExcelProperty(value = "合同容量",index = 5)
    @ApiModelProperty(value = "与供电部门签订的用电容量（单位：kW）", position = 7, example = "1600.00")
    private BigDecimal contractCapacity;

    /**
     * 首次供电时间
     */
    @ExcelProperty(value = "首次供电时间",index = 6)
    @ApiModelProperty(value = "首次通电日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDate firstPowerSupplyDate;

    /**
     * 用电账户状态
     */
    @ExcelProperty(value = "用电账户状态",index = 7)
    @ApiModelProperty(value = "账户状态（正常/暂停/注销等）", position = 9, example = "正常")
    private String powerAccountStatus;

    /**
     * 欠费金额
     */
    @ExcelProperty(value = "欠费金额",index = 8)
    @ApiModelProperty(value = "当前欠费金额（单位：元）", position = 10, example = "0.00")
    private BigDecimal arrearsAmount;

    /**
     * 近两年违约次数
     */
    @ExcelProperty(value = "近两年违约次数",index = 9)
    @ApiModelProperty(value = "近24个月内违约记录次数", position = 11, example = "0")
    private Integer defaultTimesInRecentTwoYears;

    /**
     * 用电类型
     */
    @ExcelProperty(value = "用电类型",index = 10)
    @ApiModelProperty(value = "用电分类（如大工业/一般工商业等）", position = 12, example = "大工业")
    private String powerConsumptionType;

    /**
     * 地区地方名（省级）
     */
    @ExcelProperty(value = "地区地方名（省级）",index = 11)
    @ApiModelProperty(value = "企业所在省级行政区", position = 13, example = "上海市")
    private String provinceName;

    /**
     * 地区地方名（市级）
     */
    @ExcelProperty(value = "地区地方名（市级）",index = 12)
    @ApiModelProperty(value = "企业所在市级行政区", position = 14, example = "上海市")
    private String cityName;

    /**
     * 近3月月均用电金额
     */
    @ExcelProperty(value = "近3月月均用电金额",index = 13)
    @ApiModelProperty(value = "最近3个月平均电费（单位：元）", position = 15, example = "52680.35")
    private BigDecimal averageMonthlyPowerCostRecentThreeMonths;

    /**
     * 近6月月均用电金额
     */
    @ExcelProperty(value = "近6月月均用电金额",index = 14)
    @ApiModelProperty(value = "最近6个月平均电费（单位：元）", position = 16, example = "53210.78")
    private BigDecimal averageMonthlyPowerCostRecentSixMonths;

    /**
     * 近一年月均用电金额
     */
    @ExcelProperty(value = "近一年月均用电金额",index = 15)
    @ApiModelProperty(value = "最近12个月平均电费（单位：元）", position = 17, example = "51890.23")
    private BigDecimal averageMonthlyPowerCostRecentTwelveMonths;

    /**
     * 当前是否欠费
     */
    @ExcelProperty(value = "当前是否欠费",index = 16)
    @ApiModelProperty(value = "当前是否欠费", position = 18, example = "0")
    private String isCurrentlyInArrears;

    /**
     * 统计时间
     */
    @ExcelProperty(value = "统计时间",index = 17)
    @DateTimeFormat("yyyy-MM-dd")
    @ApiModelProperty(value = "数据统计日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate statisticsTime;

    /**
     * 统计基准日期
     */
    @ExcelProperty(value = "统计基准日期",index = 18)
    @DateTimeFormat("yyyy-MM-dd")
    @ApiModelProperty(value = "统计数据的截止日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate statisticsBaseDate;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注",index = 19)
    @ApiModelProperty(value = "特殊说明信息", position = 21)
    private String remarks;

    /**
     * 行政区域编码
     */
    @ExcelProperty(value = "行政区域编码",index = 20)
    @ApiModelProperty(value = "行政区划代码", position = 22, example = "310115")
    private String administrativeRegionCode;

    /**
     * 创建时间
     */
    @ExcelIgnore
    @ApiModelProperty(value = "记录创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 创建人
     */
    @ExcelIgnore
    @ApiModelProperty(value = "创建记录的用户", position = 24)
    private String createBy;

    /**
     * 修改时间
     */
    @ExcelIgnore
    @ApiModelProperty(value = "记录最后修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 修改人
     */
    @ExcelIgnore
    @ApiModelProperty(value = "最后修改记录的用户", position = 26)
    private String updateBy;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}