package com.bonus.material.ma.domain;

import com.bonus.common.core.annotation.Excel;
import com.bonus.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @author ：梁超
 * direct_apply_info 工地直转信息
 */
@EqualsAndHashCode(callSuper = false)
@Data
public class DirectApplyInfo extends BaseEntity {
    /**
     * id
     */
    private Integer id;
    /**
     * 直转单号(ZZ20240226-1)
     */
    private String code;
    /**
     * 退料单位协议
     */
    private Integer backAgreementId;

    /**
     * 退料工程id
     */
    private String backProId;
    /**
     * 关键字
     */
    private String keyWord;
    /**
     * 退料工程名称
     */
    @Excel(name = "转让方工程名称", sort = 2)
    private String backProName;

    /**
     * 退料单位id
     */
    private String backUnitId;
    /**
     * 退料单位名称
     */
    @Excel(name = "转让方单位名称", sort = 1)
    private String backUnitName;

    /**
     * 领料工程id
     */
    private String leaseProId;
    /**
     * 领料工程名称
     */
    @Excel(name = "接收方工程名称", sort = 4)
    private String leaseProName;
    /**
     * 领料单位id
     */
    private String leaseUnitId;
    /**
     * 领料单位名称
     */
    @Excel(name = "接收方单位名称", sort = 3)
    private String leaseUnitName;
    /**
     * 退料人
     */
    private String backMan;
    /**
     * 手机号
     */
    private String backPhone;

    @Excel(name = "转让方联系人及电话", sort = 5, width = 30)
    private String backManAndPhone;
    /**
     * 退料备注
     */
    private String backRemark;
    /**
     * 领料单位协议
     */
    private int leaseAgreementId;
    /**
     * 领料人
     */
    private String leaseMan;
    /**
     * 领料联系电话
     */
    private String leasePhone;

    @Excel(name = "接收方联系人及电话", sort = 6, width = 30)
    private String leaseManAndPhone;
    /**
     * 领料备注
     */
    private String leaseRemark;

    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @Excel(
            name = "办理时间", sort = 7,width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss"
    )
    private Date createTimeTwo;
    /**
     * 直转附件
     */
    private String dirUrl;

    /**
     * 直转附件数组
     */
    private List<DirectApplyUrl> dirUrls;

    /**
     * 0待审批1审批同意2驳回
     */
    @Excel(name = "状态", sort = 8,readConverterExp = "0=待审批,1=审批同意,2=审批拒绝")
    private String status;
    /**
     * 审核人
     */
    private String auditor;
    /**
     * 审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date auditTime;
    /**
     * 审核备注
     */
    private String auditRemark;
    /**
     * 退料单位协议
     */
    private String backAgreementCode;
    /**
     * 领料单位协议
     */
    private String leaseAgreementCode;

    /**
     * 退料工程id
     */
    private String lotId;
    /**
     * 退料单位id
     */
    private String unitId;

    private String typeName;

    private String createName;

    /**
     * 退料明细
     */
    private List<DirectApplyDetails> directApplyDetails;

    private Integer isApp;

    private Integer taskStatus;

    private String flowStatus;

    private String flowId;

    @ApiModelProperty(value = "本流程节点id")
    private Integer nodeId;

    @ApiModelProperty(value = "下个流程节点id")
    private Integer nextNodeId;

    @ApiModelProperty(value = "流程配置值")
    private String configValue;

    @ApiModelProperty(value = "所属记录")
    private Integer recordId;

    @ApiModelProperty(value = "流程节点签名方式 0:或签  1:会签")
    private Integer nodeSignType;

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

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