package com.zhgd.xmgl.modules.basicdata.entity;

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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Description: 项目工程表
 * @author： pds
 * @date： 2023-02-22
 * @version： V1.0
 */
@Data
@TableName("engineering")
@ApiModel(value = "Engineering实体类", description = "Engineering")
public class Engineering implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 工程ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "工程ID(主键ID)")
    private Long id;
    /**
     * 项目sn
     */
    @Excel(name = "项目sn", width = 15)
    @ApiModelProperty(value = "项目sn")
    private String projectSn;

    /**
     * 工程sn
     */
    @Excel(name = "工程sn", width = 15)
    @ApiModelProperty(value = "工程sn")
    private String engineeringSn;

    /**
     * 项目名称
     */
    @Excel(name = "项目名称", width = 15)
    @ApiModelProperty(value = "项目名称")
    private String projectName;

    /**
     * 工程名称
     */
    @Excel(name = "工程名称", width = 15)
    @ApiModelProperty(value = "工程名称")
    private String engineeringName;
    /**
     * 工程编码
     */
    @Excel(name = "工程编码", width = 15)
    @ApiModelProperty(value = "工程编码")
    private String engineeringCode;
    /**
     * 工程类别(1:房屋建筑;2:市政公用工程;3:轨道交通工程;4:公共建设项目;5:其他)
     */
    @Excel(name = "工程类别(1:房屋建筑;2:市政公用工程;3:轨道交通工程;4:公共建设项目;5:其他)", width = 15)
    @ApiModelProperty(value = "工程类别(1:房屋建筑;2:市政公用工程;3:轨道交通工程;4:公共建设项目;5:其他)")
    private String engineeringType;

    /**
     * 工程类别名称
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "工程类别名称")
    private String engineeringTypeName;

    /**
     * 工程用途(字典数据)
     */
    @Excel(name = "工程用途(字典数据)", width = 15)
    @ApiModelProperty(value = "工程用途(字典数据)")
    private Integer engineeringUse;
    /**
     * 工程造价(万元)
     */
    @Excel(name = "工程造价(万元)", width = 15)
    @ApiModelProperty(value = "工程造价(万元)")
    private String engineeringCost;
    /**
     * 工程总面积(㎡)
     */
    @Excel(name = "工程总面积(㎡)", width = 15)
    @ApiModelProperty(value = "工程总面积(㎡)")
    private String engineeringArea;
    /**
     * 工程总长度(m)
     */
    @Excel(name = "工程总长度(m)", width = 15)
    @ApiModelProperty(value = "工程总长度(m)")
    private String engineeringLength;
    /**
     * 是否重点工程(0:不是;1:是;)
     */
    @Excel(name = "是否重点工程(0:不是;1:是;)", width = 15)
    @ApiModelProperty(value = "是否重点工程(0:不是;1:是;)")
    private Integer isImportant;
    /**
     * 经度
     */
    @Excel(name = "经度", width = 15)
    @ApiModelProperty(value = "经度")
    private String longitude;
    /**
     * 纬度
     */
    @Excel(name = "纬度", width = 15)
    @ApiModelProperty(value = "纬度")
    private String latitude;
    /**
     * 省
     */
    @Excel(name = "省", width = 15)
    @ApiModelProperty(value = "省")
    private String province;
    /**
     * 市
     */
    @Excel(name = "市", width = 15)
    @ApiModelProperty(value = "市")
    private String city;
    /**
     * 区
     */
    @Excel(name = "区", width = 15)
    @ApiModelProperty(value = "区")
    private String district;
    /**
     * 建设地址
     */
    @Excel(name = "建设地址", width = 15)
    @ApiModelProperty(value = "建设地址")
    private String address;
    /**
     * 施工许可证号
     */
    @Excel(name = "施工许可证号", width = 15)
    @ApiModelProperty(value = "施工许可证号")
    private String licenseKey;
    /**
     * 施工许可发放时间
     */
    @Excel(name = "施工许可发放时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "施工许可发放时间")
    private Date licenseCreateTime;
    /**
     * 安全监督站
     */
    @Excel(name = "安全监督站", width = 15)
    @ApiModelProperty(value = "安全监督站")
    private String safetySupervision;
    /**
     * 安全监督编号
     */
    @Excel(name = "安全监督编号", width = 15)
    @ApiModelProperty(value = "安全监督编号")
    private String safetySupervisionCode;
    /**
     * 安全监督工程状态
     */
    @Excel(name = "安全监督工程状态", width = 15)
    @ApiModelProperty(value = "安全监督工程状态")
    private Integer safetySupervisionState;
    /**
     * 安全监督工程进度
     */
    @Excel(name = "安全监督工程进度", width = 15)
    @ApiModelProperty(value = "安全监督工程进度")
    private Integer safetySupervisionPlan;
    /**
     * 质量监督站
     */
    @Excel(name = "质量监督站", width = 15)
    @ApiModelProperty(value = "质量监督站")
    private String qualitySupervision;
    /**
     * 质量监督编码
     */
    @Excel(name = "质量监督编码", width = 15)
    @ApiModelProperty(value = "质量监督编码")
    private String qualitySupervisionCode;
    /**
     * 质量监督工程状态
     */
    @Excel(name = "质量监督工程状态", width = 15)
    @ApiModelProperty(value = "质量监督工程状态")
    private Integer qualitySupervisionState;
    /**
     * 质量监督工程进度
     */
    @Excel(name = "质量监督工程进度", width = 15)
    @ApiModelProperty(value = "质量监督工程进度")
    private Integer qualitySupervisionPlan;
    /**
     * 合同开工日期
     */
    @Excel(name = "合同开工日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "合同开工日期")
    private Date startTime;
    /**
     * 合同竣工日期
     */
    @Excel(name = "合同竣工日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "合同竣工日期")
    private Date endTime;
    /**
     * 项目报监时间
     */
    @Excel(name = "项目报监时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "项目报监时间")
    private Date createTime;
    /**
     * 工程审核状态(1:待审批;2:审批驳回;3:审批通过;)
     */
    @ApiModelProperty(value = "工程审核状态(1:待审批;2:审批驳回;3:审批通过;)")
    private Integer examineState;
    /**
     * 工程状态(1:未开工;2:在建;3:在建.普通停工;4:在建.处罚停工;5:在建.完工;6:待竣工;7:竣工;8:其他)
     */
    @ApiModelProperty(value = "工程状态(1:未开工;2:在建;3:在建.普通停工;4:在建.处罚停工;5:在建.完工;6:待竣工;7:竣工;8:其他)")
    private Integer state;
    /**
     * 工程状态名称
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "工程状态名称")
    private String stateName;
    /**
     * 驳回原因
     */
    @ApiModelProperty(value = "驳回原因")
    private String rejectReason;

    /**
     * 单体工程
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "单体工程")
    private List<EngineeringSingle> engineeringSingleList;
}
