package com.artfess.cqxy.bidManagement.model;


import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
import cn.afterturn.easypoi.handler.inter.IExcelDataModel;
import cn.afterturn.easypoi.handler.inter.IExcelModel;
import com.artfess.base.entity.BizModel;
import com.artfess.cqxy.projectManagement.model.ProjectManagement;
import com.artfess.cqxy.universal.model.Accessory;
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 招投标管理 - 招标管理表(BiddingManagement)表实体类
 *
 * @author 黎沐华
 * @since 2022-04-08 15:32:29
 */
@Data
@TableName("BIZ_BIDDING_MANAGEMENT")
@ApiModel(value="招投标管理-招投标对象-BizBiddingManagement", description="招投标管理表")
public class BiddingManagement extends BizModel<BiddingManagement> {

    // 关联项目的信息放在开头，以便在导出时先导出项目中的配置，而不用进行额外的位置配置
    @ExcelEntity(id = "link")
    @TableField(exist = false)
    @ApiModelProperty(value = "关联的项目信息")
    private ProjectManagement projectInfo;

    @TableField(exist = false)
    @ApiModelProperty(value = "附件信息")
    private List<Accessory> accessoryInfo;

    @ApiModelProperty(value = "主键ID")
    @TableId(value = "ID_", type = IdType.ASSIGN_ID)
    private String id;

    @TableField("PROJECT_ID_")
    @ApiModelProperty(value = "项目ID（关联项目管理表ID）")
    private String projectId;

    @Excel(name = "招标名称")
    @TableField("DOCUMENT_NUMBER_")
    @ApiModelProperty(value = "招标名称")
    private String documentNumber;

    @Excel(name = "招标方式")
    @TableField("BIDDING_CHARGE_TYPE_")
    @ApiModelProperty(value = "招标方式，（使用字典：1：公开招标，2：直接委托，3：走流程，4其他）")
    private String biddingChargeType;

    @Excel(name = "招标限价（元）", type = 10, numFormat = "0.00")
    @TableField("BID_AMOUNT_EXAMINE_")
    @ApiModelProperty(value = "招标限价（元）")
    private String bidAmountExamine;

    //中标信息
    @Excel(name = "中标人")
    @TableField("BID_WINNER_")
    @ApiModelProperty(value = "中标人")
    private String bidWinner;

    @Excel(name = "中标人资质等级")
    @TableField("BID_WINNER_AGENT_PHONE_")
    @ApiModelProperty(value = "中标人资质等级")
    private String bidWinnerAgentPhone;

    @Excel(name = "中标总金额（单位：元）", type = 10, numFormat = "0.00")
    @TableField("BID_AMOUNT_")
    @ApiModelProperty(value = "中标总金额（单位：元）")
    private String bidAmount;

    @Excel(name = "安全文明施工费（单位：元）", type = 10, numFormat = "0.00")
    @TableField("ACTUAL_SETTLEMENT_AMOUNT_")
    @ApiModelProperty(value = "安全文明施工费（单位：元）")
    private String actualSettlementAmount;

    @Excel(name = "备注")
    @TableField("REMARKS_")
    @ApiModelProperty(value = "备注")
    private String remarks;

    @Excel(name = "招标代理机构")
    @TableField("BIDDING_AGENCY_")
    @ApiModelProperty(value = "招标代理机构")
    private String biddingAgency;

    @Excel(name = "招标范围")
    @TableField("RESPONSIBLE_UNIT_")
    @ApiModelProperty(value = "招标范围")
    private String responsibleUnit;

    @Excel(name = "招标企业数量")
    @TableField("RESPONSIBLE_PERSON_")
    @ApiModelProperty(value = "招标企业数量")
    private Integer responsiblePerson;

    @Excel(name = "投标保证金金额", type = 10, numFormat = "0.00")
    @TableField("PROJECT_BUDGET_")
    @ApiModelProperty(value = "投标保证金金额（万元）")
    private String projectBudget;

    @Excel(name = "投标保证金支付方式")
    @TableField("IMPLEMENTATION_PERSONNEL_PHONE_")
    @ApiModelProperty(value = "投标保证金支付方式（使用字典，1：现金，2：保函）")
    private String implementationPersonnelPhone;

//    @Excel(name = "保函附件）")
    @TableField("IMPLEMENTATION_PERSONNEL_PHONE_URL_")
    @ApiModelProperty(value = "保函附件存储URL）")
    private String implementationPersonnelPhoneUrl;

    @Excel(name = "评标方法")
    @TableField("IMPLEMENTATION_PERSONNEL_NAME_")
    @ApiModelProperty(value = "评标方法（使用字典，1：经评审的最低中标法，2：综合评标法）")
    private String implementationPersonnelName;

    @Excel(name = "开标日期",format = "yyyy-MM-dd")
    @TableField("COMMENCEMENT_DATE_")
    @ApiModelProperty(value = "开标日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date commencementDate;

    @Excel(name = "是否违法违规")
    @TableField("FUNDS_SOURCE_")
    @ApiModelProperty(value = "是否违法违规（使用字典：1：否，0：是")
    private String fundsSource;

//    @Excel(name = "违法违规附件")
    @TableField("FUNDS_SOURCE_URL_")
    @ApiModelProperty(value = "违法违规附件URL")
    private String fundsSourceUrl;

    @Excel(name = "有无投诉")
    @TableField("HAS_COMPLAINT_")
    @ApiModelProperty(value = "有无投诉，（0：有，1：无）")
    private String hasComplaint;

//    @Excel(name = "投诉文件")
    @TableField("HAS_COMPLAINT_URL_")
    @ApiModelProperty(value = "投诉文件url")
    private String hasComplaintUrl;

    @Excel(name = "投诉情况")
    @TableField("COMPLAINT_SITUATION_")
    @ApiModelProperty(value = "投诉情况")
    private String complaintSituation;

    @Excel(name = "项目概况")
    @TableField("ACTUAL_PAYMENT_METHOD_")
    @ApiModelProperty(value = "项目概况")
    private String actualPaymentMethod;

//    @Excel(name = "投资性质")
    @TableField("CONTRACT_PAYMENT_METHOD_")
    @ApiModelProperty(value = "投资性质(使用字典，1：国有，2：非国有)")
    private String contractPaymentMethod;

    @Excel(name = "项目经理")
    @TableField("BID_WINNER_AGENT_NAME_")
    @ApiModelProperty(value = "项目经理")
    private String bidWinnerAgentName;

//    @Excel(name = "签发日期")
    @TableField("COMPLETION_DATE_")
    @ApiModelProperty(value = "签发日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date completionDate;

//    @Excel(name = "收款人及账号")
    @TableField("PAYEE_NAME_ACCOUNT_")
    @ApiModelProperty(value = "收款人及账号")
    private String payeeNameAccount;

    @Excel(name = "项目经理电话")
    @TableField("PAYEE_PHONE_")
    @ApiModelProperty(value = "项目经理电话")
    private String payeePhone;

    @Excel(name = "招标类型")
    @TableField("BIDDING_CHARGE_")
    @ApiModelProperty(value = "1施工招标 2监理招标 字典")
    private Integer biddingCharge;



}

