package com.ruoyi.gysl.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 com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.gysl.entity.baseModel.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 基本信息(BasicInformation)表实体类
 *
 * @author makejava
 * @since 2025-02-24 09:25:55
 */
@Data
@ApiModel("基本信息")
@TableName(value = "basic_information")
public class BasicInformation extends BaseModel {

    @ApiModelProperty("主键id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;


    @Excel(name = "统一社会信用代码", sort = 2,required = true)
    @ApiModelProperty("统一社会信用代码")
    private String tyshxydm;


    @NotBlank
    @Excel(name = "项目名称", sort = 2,required = true)
    @ApiModelProperty("项目名称")
    private String name;

    @ApiModelProperty("总用地面积")
    @Excel(name = "总用地面积", sort = 8)
    @TableField(exist = false)
    private BigDecimal zydmj;

    @ApiModelProperty("总建筑面积")
    @TableField(exist = false)
    private BigDecimal zjzmj;


    @NotBlank
    @Excel(name = "项目法人单位", sort = 4)
    @ApiModelProperty("项目法人单位")
    private String xmfrdwxz;


    @NotBlank
    @ApiModelProperty("项目法人单位性质")
    private Integer nature;

    @ApiModelProperty("施工单位")
    private String sgdw;

    @ApiModelProperty("设计单位")
    private String sjdw;

    @ApiModelProperty("总投资额")
    @Excel(name = "总投资额", sort = 7)
    private BigDecimal ztze;

    @NotBlank
    @ApiModelProperty("所属功能区")
    private Integer ssgnq;


    @ApiModelProperty("建设开始时间")
    @Excel(name = "建设开始时间", dateFormat = "yyyy-MM-dd", sort = 5)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date begainTime;

    @ApiModelProperty("建设结束时间")
    @Excel(name = "建设结束时间", dateFormat = "yyyy-MM-dd", sort = 6)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date endTime;

    @NotBlank
    @Excel(name = "现状分类", sort = 3, dictType = "xzfl", comboReadDict = true)
    @ApiModelProperty("现状分类")
    private Integer xzfl;

    @NotBlank
    @ApiModelProperty("建设地点")
    private String jsdd;

    @NotBlank
    @ApiModelProperty("重点发展产业")
    private String prioritize;

    @NotBlank
    @ApiModelProperty("建设模式")
    private Integer jsms;

    @ApiModelProperty("项目标签")
    private String label;

    @NotBlank
    @ApiModelProperty("项目负责人")
    private String projectLeader;

    @NotBlank
    @ApiModelProperty("联系方式")
    private String phone;


    @ApiModelProperty("施工许可证发放时间")
    private String issuingTime;

    @ApiModelProperty("施工许可证发放时间")
    private String acceptanceTime;


    @ApiModelProperty("建设进度")
    private String jsjd;

    @NotBlank
    @ApiModelProperty("项目法人单位简介")
    private String unitIntroduction;

    @NotBlank
    @ApiModelProperty("项目简介")
    private String introduction;

    @ApiModelProperty("附件")
    private String fj;

    @ApiModelProperty("经度")
    private String longitude;

    @ApiModelProperty("纬度")
    private String latitude;

    @ApiModelProperty("状态 1待填报 2待审核 3审核通过")
    private Integer status;

}

