package com.jeeplus.test.program.configuration.projectList.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.domain.BaseEntity;
import com.jeeplus.core.query.Query;
import lombok.Data;
import org.apache.poi.hpsf.Decimal;
import org.springframework.format.annotation.DateTimeFormat;

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

@Data
@TableName(value = "program_project_list_info")
public class ProgramProjectListInfo {

    /**
     * 实体主键
     */
    @TableId
    private String id;

    /**
     * 创建日期
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createDate;

    /**
     * 创建人
     */
    @Query(tableColumn = "a.create_by")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 更新日期
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateDate;

    /**
     * 更新人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /**
     * 逻辑删除标记
     */
    @TableLogic
    @TableField(fill = FieldFill.INSERT)
    private Integer delFlag;

    private String contractId;

    /**
     * 合同名称
     */
    @Query(tableColumn = "a.contract_name")
    private String contractName;

    /**
     * 委托方
     */
    @Query(tableColumn = "a.client")
    private String client;

    private String amount;

    private String contractType;

    /**
     * 项目名称
     */
    @Query(tableColumn = "a.name")
    private String name;

    /**
     * 项目编号
     */
    @Query(tableColumn = "a.no")
    private String no;

    private String projectType;

    private String company;

    private String propertyHolder;

    private String location;

    private String isFirst;

    private String yearNum;

    private String checkYear;

    /**
     * 项目经理（项目责任人）
     */
    private String projectManager;

    private String reportType;

    private String industry;

    private String enterpriseType;

    private String riskLevel;

    private String projectSource;

    private BigDecimal estimate;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date planEndTime;

    private Integer useNum;

    private Integer appointment;

    private Double workHours;

    private String remarks;

    private String assessmentEnterprise;

    private String linkNum;

    private String relationship;

    private String assessmentWay;

    private String assessmentObjective;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date assessmentDate;

    private BigDecimal num;

    private String projectDevelopment;

    private String delegateProjectType;

    private String assessmentObject;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date workBeginDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date workEndDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date reportingDate;

    private String isHave;

    private String isInfluence;

    private String mode;

    /**
     * 状态
     */
    @Query(tableColumn = "a.status")
    private String status;

    private String procInsId;

    private String processDefinitionId;

    /**
     * 创建时间
     */
    @TableField(exist = false)
    private String[] createDates;
}
