package com.goldenwater.slgc.domain;

import com.goldenwater.common.annotation.Excel;
import com.goldenwater.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

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

@Schema(description = "水库信息实体")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AttResBase extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @Schema(description = "水库编码")
    @Excel(name = "水库代码", sort = 1, width = 20)
    private String resCode;
    @Schema(description = "采集日期")
    private Date collDate;
    @Schema(description = "水库名称")
    @Excel(name = "水库名称", sort = 2, width = 20)
    private String resName;
    @Schema(description = "左下经度")
    @Excel(name = "左下角经度", sort = 3, cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal lowLeftLong;
    @Schema(description = "左下纬度")
    @Excel(name = "左下角纬度", sort = 4, cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal lowLeftLat;
    @Schema(description = "右上经度")
    @Excel(name = "右上角经度", sort = 5, cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal upRightLong;
    @Schema(description = "右上纬度")
    @Excel(name = "右上角纬度", sort = 6, cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal upRightLat;
    @Schema(description = "水库位置")
    @Excel(name = "水库所在位置", sort = 7, width = 30)
    private String resLoc;
    @Schema(description = "水库类型")
    @Excel(name = "水库类型", sort = 8, readConverterExp = "1=山丘水库,2=平原水库,3=地下水库", combo = {"山丘水库","平原水库","地下水库"})
    private String resType;
    @Schema(description = "工程等级")
    @Excel(name = "工程等别", sort = 9, readConverterExp = "1=Ⅰ等,2=Ⅱ等,3=Ⅲ等,4=Ⅳ等,5=Ⅴ等", combo = {"Ⅰ等","Ⅱ等","Ⅲ等","Ⅳ等","Ⅴ等"})
    private String engGrad;
    @Schema(description = "工程规模")
    @Excel(name = "工程规模", sort = 10, readConverterExp = "1=大（1）型,2=大（2）型,3=中型,4=小（1）型,5=小（2）型", combo = {"大（1）型","大（2）型","中型","小（1）型","小（2）型"})
    private String engScal;
    @Schema(description = "流域面积")
    @Excel(name = "坝址控制流域面积", sort = 11, suffix = " km²")
    private BigDecimal watShedArea;
    @Schema(description = "多年平均径流量")
    @Excel(name = "坝址多年平均径流量", sort = 12)
    private BigDecimal daadMulAverRuof;
    @Schema(description = "上游防洪库容")
    @Excel(name = "防洪高水位", sort = 13)
    private BigDecimal uppLevFlco;
    @Schema(description = "正常蓄水位")
    @Excel(name = "正常蓄水位", sort = 14, suffix = " m")
    private BigDecimal normWatLev;
    @Schema(description = "正常库区面积")
    @Excel(name = "正常蓄水位相应水面面积", sort = 15)
    private BigDecimal normPoolStagArea;
    @Schema(description = "正常库容")
    @Excel(name = "正常蓄水位相应库容", sort = 16)
    private BigDecimal normPoolStagCap;
    @Schema(description = "防洪限制水位")
    @Excel(name = "主汛期防洪限制水位", sort = 17)
    private BigDecimal flLowLimLev;
    @Schema(description = "防洪限制库容")
    @Excel(name = "防洪限制水位库容", sort = 18)
    private BigDecimal flLowLimLevCap;
    @Schema(description = "死水位")
    @Excel(name = "死水位", sort = 19, suffix = " m")
    private BigDecimal deadLev;
    @Schema(description = "总库容")
    @Excel(name = "总库容", sort = 20, suffix = " 10⁴m³")
    private BigDecimal totCap;
    @Schema(description = "调洪库容")
    @Excel(name = "调洪库容", sort = 21, suffix = " 10⁴m³")
    private BigDecimal storFlCap;
    @Schema(description = "防洪库容")
    @Excel(name = "防洪库容", sort = 22, suffix = " 10⁴m³")
    private BigDecimal flcoCap;
    @Schema(description = "兴利库容")
    @Excel(name = "兴利库容", sort = 23, suffix = " 10⁴m³")
    private BigDecimal benResCap;
    @Schema(description = "死库容")
    @Excel(name = "死库容", sort = 24, suffix = " 10⁴m³")
    private BigDecimal deadCap;
    @Schema(description = "工程状态")
    @Excel(name = "工程建设情况", sort = 25, readConverterExp = "1=已建,2=在建,3=规划", combo = {"已建","在建","规划"})
    private String engStat;
    @Schema(description = "运行状态")
    private String runStat;
    @Schema(description = "开工日期")
    @Excel(name = "开工时间", sort = 26, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;
    @Schema(description = "竣工日期")
    @Excel(name = "建成时间", sort = 27, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date compDate;
    @Schema(description = "管理单位")
    @Excel(name = "归口管理部门", sort = 28, width = 20)
    private String admDep;
    @Schema(description = "备注")
    @Excel(name = "备注", sort = 29, width = 20)
    private String note;
    @Schema(description = "更新日期")
    private Date updDate;
    @Schema(description = "类型")
    private String type;
    @Schema(description = "关键字")
    private String key;
    @Schema(description = "经度")
    private BigDecimal lgtd;
    @Schema(description = "纬度")
    private BigDecimal lttd;
    @Schema(description = "行政区划名称")
    private String adnm;
    @Schema(description = "公里桩编码")
    private String kmCode;
    @Schema(description = "公里桩名称")
    private String kmName;
    @Schema(description = "设计流量")
    private BigDecimal desFlow;
}
