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

    @Schema(description = "水闸编码")
    @Excel(name = "水闸代码", sort = 1, width = 20)
    private String pustCode;
    @Schema(description = "采集日期")
    private Date collDate;
    @Schema(description = "水闸名称")
    @Excel(name = "水闸名称", sort = 2, width = 20)
    private String pustName;
    @Schema(description = "水闸经度")
    @Excel(name = "起点经度", sort = 3, cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal pustLong;
    @Schema(description = "水闸纬度")
    @Excel(name = "起点纬度", sort = 4, cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal pustLat;
    @Schema(description = "水闸位置")
    @Excel(name = "水闸所在位置", sort = 7, width = 30)
    private String pustLoc;
    @Schema(description = "水闸类型")
    @Excel(name = "水闸类型", sort = 8, readConverterExp = "1=分（泄）洪闸,2=节制闸,3=排（退）水闸,4=引（进）水闸,5=挡潮闸,6=船闸,9=其他", combo = {"分（泄）洪闸","节制闸","排（退）水闸","引（进）水闸","挡潮闸","船闸","其他"})
    private String pustType;
    @Schema(description = "设计流量")
    @Excel(name = "最大过闸流量", sort = 11)
    private BigDecimal insFlow;
    @Schema(description = "装机功率")
    @Excel(name = "装机功率", sort = 18)
    private BigDecimal insPow;
    @Schema(description = "水泵数量")
    @Excel(name = "闸孔数量", sort = 12)
    private BigDecimal pumpNum;
    @Schema(description = "机组台数")
    private BigDecimal pumpSetNum;
    @Schema(description = "总装机容量")
    private BigDecimal desTotInsCap;
    @Schema(description = "设计扬程")
    @Excel(name = "设计扬程", sort = 5)
    private BigDecimal desHead;
    @Schema(description = "工程任务")
    @Excel(name = "工程任务", sort = 6)
    private String engTask;
    @Schema(description = "灌溉范围")
    private String wasuRang;
    @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 = 19, readConverterExp = "1=1级,2=2级,3=3级,4=4级,5=5级", combo = {"1级","2级","3级","4级","5级"})
    private String mainBuildGrad;
    @Schema(description = "工程状态")
    @Excel(name = "工程建设情况", sort = 13, readConverterExp = "1=已建,2=在建,3=规划", combo = {"已建","在建","规划"})
    private String engStat;
    @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 = "投产日期")
    private Date startRunDate;
    @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 String source;
    @Schema(description = "工程类型")
    private String gcType;
    @Schema(description = "原编码")
    private String oldCode;
    @Schema(description = "关键字")
    private String key;
}
