package com.bonus.material.ma.domain;

import com.bonus.common.core.annotation.Excel;
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 ma_sh
 * @create 2025/6/17 10:00
 */
@EqualsAndHashCode(callSuper = false)
@Data
public class DirectApplyExportInfo {

    /**
     * id
     */
    private Integer id;
    /**
     * 直转单号(ZZ20240226-1)
     */
    private String code;
    /**
     * 退料单位协议
     */
    private Integer backAgreementId;

    /**
     * 退料工程id
     */
    private String backProId;
    /**
     * 关键字
     */
    private String keyWord;

    private String createBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "申请时间", sort = 1, width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    private String updateBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    private String remark;
    /**
     * 退料工程名称
     */
    @Excel(name = "转出工程", sort = 4)
    private String backProName;

    /**
     * 退料单位id
     */
    private String backUnitId;

    /**
     * 退料单位名称
     */
    @Excel(name = "转出单位", sort = 3)
    private String backUnitName;

    /**
     * 领料工程id
     */
    private String leaseProId;
    /**
     * 领料工程名称
     */
    @Excel(name = "转入工程", sort = 6)
    private String leaseProName;
    /**
     * 领料单位id
     */
    private String leaseUnitId;
    /**
     * 领料单位名称
     */
    @Excel(name = "转入单位", sort = 5)
    private String leaseUnitName;
    /**
     * 退料人
     */
    private String backMan;
    /**
     * 手机号
     */
    private String backPhone;

    private String backManAndPhone;
    /**
     * 退料备注
     */
    private String backRemark;
    /**
     * 领料单位协议
     */
    private int leaseAgreementId;
    /**
     * 领料人
     */
    private String leaseMan;
    /**
     * 领料联系电话
     */
    private String leasePhone;

    private String leaseManAndPhone;
    /**
     * 领料备注
     */
    private String leaseRemark;

    @JsonFormat(pattern = "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=已完成,3=已驳回")
    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;

    @Excel(name = "物资类型", sort = 7)
    private String typeName;

    @Excel(name = "申请人", sort = 2)
    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;
}
