package com.bonus.material.basic.domain;

import java.util.Date;
import java.util.List;

import com.bonus.common.biz.domain.BmFileInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;

/**
 * 协议管理对象 bm_agreement_info
 * 
 * @author xsheng
 * @date 2024-09-26
 */


@Data
@ToString
@Accessors(chain = true)
public class BmAgreementInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 协议ID */
    private Long agreementId;

    /** 协议编号 */
    @Excel(name = "协议编号")
    @ApiModelProperty(value = "协议编号")
    private String agreementCode;

    /** 签订日期 */
    @ApiModelProperty(value = "签订日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signTime;

    /** 往来单位id */
    //@Excel(name = "往来单位ID")
    @ApiModelProperty(value = "往来单位ID")
    @NotNull(message = "往来单位id不能为空")
    private Long unitId;

    /**
     * 往来单位所属项目部ID
     */
    @NotNull(message = "所属项目部ID不能为空")
    @ApiModelProperty(value = "所属项目部ID")
    private Long projectUnitId;

    /**
     * 往来单位
     */
    @Excel(name = "往来单位")
    @ApiModelProperty(value = "往来单位")
    private String unitName;

    /** 工程标段ID */
    //@Excel(name = "工程标段ID")
    @ApiModelProperty(value = "工程标段ID")
    @NotNull(message = "工程标段ID不能为空")
    private Long projectId;

    /** 工程标段名称 */
    @Excel(name = "工程标段名称")
    @ApiModelProperty(value = "工程标段名称")
    private String projectName;

    /** 租赁天数 */
    @Excel(name = "租赁天数")
    @ApiModelProperty(value = "租赁天数")
    private Long leaseDay;

    /** 计划开始时间 */
    @ApiModelProperty(value = "计划开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planStartTime;

    /** 合同 */
    @Excel(name = "合同")
    @ApiModelProperty(value = "合同")
    private String contractCode;

    /** 授权人 */
    @Excel(name = "授权人")
    @ApiModelProperty(value = "授权人")
    private String authPerson;

    /** 联系方式 */
    @Excel(name = "联系方式")
    @ApiModelProperty(value = "联系方式")
    private String phone;

    /** 数据所属组织 */
    //@Excel(name = "数据所属组织")
    @ApiModelProperty(value = "数据所属组织")
    private Long companyId;

//    /** 文件名 */
//    @Excel(name = "文件名")
//    @ApiModelProperty(value = "文件名")
//    private String fileName;
//
//    /** 文件URL */
//    @Excel(name = "文件URL")
//    @ApiModelProperty(value = "文件URL")
//    private String fileUrl;

    /** 0删除 1启用 */
    @Excel(name = "是否启用", readConverterExp = "0=删除,1=启用")
    @ApiModelProperty(value = "0删除 1启用")
    private String status;

    /** 1内部单位  2外部单位 */
    @Excel(name = "内外部单位", readConverterExp = "1=内部单位,2=外部单位")
    @ApiModelProperty(value = "1内部单位 2外部单位")
    private String protocol;

    /** 是否结算（0 结算中 1已结算） */
    @Excel(name = "是否结算", readConverterExp = "0=结算中,1=已结算")
    private Long isSlt;

    @ApiModelProperty(value = "关键词")
    private String keyWord;

    @ApiModelProperty(value = "开始时间")
    private String startTime;

    @ApiModelProperty(value = "结束时间")
    private String endTime;

    @ApiModelProperty(value = "关联任务ID")
    private Long taskId;

    @ApiModelProperty(value = "附件列表")
    private List<BmFileInfo> bmFileInfos;

    @ApiModelProperty(value = "分布工程列表")
    private int[] branchProIds;

    @ApiModelProperty(value = "分布工程字符串")
    private String branchProIdsStr;

    @ApiModelProperty(value = "班组id")
    private Long teamId;
}
