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 AttWagaBase extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @Schema(description = "泵站编码")
    @Excel(name = "泵站代码", sort = 1, width = 20)
    private String wagaCode;
    @Schema(description = "采集日期")
    private Date collDate;
    @Schema(description = "泵站名称")
    @Excel(name = "泵站名称", sort = 2, width = 20)
    private String wagaName;
    @Schema(description = "起点经度")
    @Excel(name = "泵站经度", sort = 3, cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal startLong;
    @Schema(description = "起点纬度")
    @Excel(name = "泵站纬度", sort = 4, cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal startLat;
    @Schema(description = "终点经度")
    @Excel(name = "终点经度", sort = 18, cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal endLong;
    @Schema(description = "终点纬度")
    @Excel(name = "终点纬度", sort = 19, cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal endLat;
    @Schema(description = "泵站位置")
    @Excel(name = "泵站所在位置", sort = 5, width = 30)
    private String wagaLoc;
    @Schema(description = "泵站类型")
    @Excel(name = "泵站类型", sort = 6, readConverterExp = "1=排水泵站,2=供水泵站,3=供排结合泵站", combo = {"排水泵站","供水泵站","供排结合泵站"})
    private String wagaType;
    @Schema(description = "泵站用途")
    @Excel(name = "水闸用途", sort = 20)
    private String wagaUse;
    @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 = "主要水工类型")
    private String wainWasoType;
    @Schema(description = "通航吨位")
    @Excel(name = "最大过闸流量", sort = 11)
    private BigDecimal lockDisc;
    @Schema(description = "泵站台数")
    @Excel(name = "闸孔数量", sort = 7)
    private BigDecimal gaorNum;
    @Schema(description = "装机功率")
    @Excel(name = "装机功率", sort = 8)
    private BigDecimal insPow;
    @Schema(description = "总装机容量")
    @Excel(name = "装机流量", sort = 12, suffix = " m³/s")
    private BigDecimal desTotInsCap;
    @Schema(description = "工程状态")
    @Excel(name = "工程建设情况", sort = 13, readConverterExp = "1=已建,2=在建,3=规划", combo = {"已建","在建","规划"})
    private String engStat;
    @Schema(description = "运行状态")
    private String runStat;
    @Schema(description = "开工日期")
    @Excel(name = "开工时间", sort = 14, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;
    @Schema(description = "竣工日期")
    @Excel(name = "建成时间", sort = 15, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date compDate;
    @Schema(description = "管理单位")
    @Excel(name = "归口管理部门", sort = 16, width = 20)
    private String admDep;
    @Schema(description = "备注")
    @Excel(name = "备注", sort = 17, width = 20)
    private String note;
    @Schema(description = "更新日期")
    private Date updDate;
    @Schema(description = "类型")
    private String type;
    @Schema(description = "泵站总净宽")
    private BigDecimal gaorTotNetWid;
    @Schema(description = "河流编码")
    private String rvCode;
    @Schema(description = "行政区划代码")
    private String adcd;
    @Schema(description = "水资源分区代码")
    private String wscd;
    @Schema(description = "拦河坝高")
    private BigDecimal rubDamHig;
    @Schema(description = "拦河坝长")
    private BigDecimal rubDamLen;
    @Schema(description = "数据来源")
    private String source;
    @Schema(description = "工程类型")
    private String gcType;
    @Schema(description = "原编码")
    private String oldCode;
    @Schema(description = "关键字")
    private String key;
}
