package com.bonus.material.lease.domain;

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

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

/**
 * 领料任务对象 lease_apply_info
 * 
 * @author xsheng
 * @date 2024-10-16
 */

@EqualsAndHashCode(callSuper = false)
@Data
@ToString
public class LeaseApplyInfo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 任务编号: 领料单号 */
    @Excel(name = "领料单号")
    @ApiModelProperty(value = "领料单号")
    private String code;

    /** 任务ID */
    @Excel(name = "任务ID")
    @ApiModelProperty(value = "任务ID")
    private Long taskId;

    /** 领料人 */
    @Excel(name = "领料人")
    @ApiModelProperty(value = "领料人")
    private String leasePerson;

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

    /** 1：1级审批，2：2级审批 */
    @Excel(name = "1：1级审批，2：2级审批")
    @ApiModelProperty(value = "1：1级审批，2：2级审批")
    private String type;

    /** 公司审批人 */
    @Excel(name = "公司审批人")
    @ApiModelProperty(value = "公司审批人")
    private Long companyAuditBy;

    /** 公司审批时间 */
    @ApiModelProperty(value = "公司审批时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "公司审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date companyAuditTime;

    /** 公司审批备注 */
    @Excel(name = "公司审批备注")
    @ApiModelProperty(value = "公司审批备注")
    private String companyAuditRemark;

    /** 分管审批人 */
    @Excel(name = "分管审批人")
    @ApiModelProperty(value = "分管审批人")
    private Long deptAuditBy;

    /** 分管审批时间 */
    @ApiModelProperty(value = "分管审批时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "分管审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deptAuditTime;

    /** 分管审批备注 */
    @Excel(name = "分管审批备注")
    @ApiModelProperty(value = "分管审批备注")
    private String deptAuditRemark;

    /** 机具分公司审批 */
    @Excel(name = "机具分公司审批")
    @ApiModelProperty(value = "机具分公司审批")
    private Long directAuditBy;

    /** 机具分公司审批时间 */
    @ApiModelProperty(value = "机具分公司审批时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "机具分公司审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date directAuditTime;

    /** 机具分公司审批备注 */
    @Excel(name = "机具分公司审批备注")
    @ApiModelProperty(value = "机具分公司审批备注")
    private String directAuditRemark;

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

    /** 1机具分公司审核通过，2调试分公司审核通过3机具分公司审核驳回4调试分公司审核驳回5出库进行中5出库完成 */
//    @Excel(name = "1机具分公司审核通过，2调试分公司审核通过3机具分公司审核驳回4调试分公司审核驳回5出库进行中5出库完成")
//    @ApiModelProperty(value = "1机具分公司审核通过，2调试分公司审核通过3机具分公司审核驳回4调试分公司审核驳回5出库进行中5出库完成")
//    private String status;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long directId;

    /** 0工程1长期 */
    @Excel(name = "领用类型",readConverterExp = "0=工程,1=长期")
    @ApiModelProperty(value = "0工程1长期")
    private String leaseType;

    /** 预领料时间 */
    @ApiModelProperty(value = "预领料时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预领料时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date estimateLeaseTime;

    /** 费用承担方(01项目03分包) */
    @Excel(name = "费用承担方(01项目03分包)")
    @ApiModelProperty(value = "费用承担方(01项目03分包)")
    private String costBearingParty;

    @ApiModelProperty(value = "租赁工程")
    @Excel(name = "领料工程")
    private String leaseProject;

    @ApiModelProperty(value = "租赁工程id")
    private Integer leaseProjectId;

    @ApiModelProperty(value = "租赁单位")
    @Excel(name = "领料单位")
    private String leaseUnit;

    @ApiModelProperty(value = "租赁单位id")
    private Integer leaseUnitId;

    @ApiModelProperty(value = "协议id")
    private Long agreementId;

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

    /** 任务类型(定义数据字典) */
    @Excel(name = "任务类型(定义数据字典)")
    @ApiModelProperty(value = "任务类型(定义数据字典)")
    private Integer taskType;

    /** 任务状态(定义数据字典) */
    @Excel(name = "任务状态")
    @ApiModelProperty(value = "任务状态(定义数据字典)")
    private Integer taskStatus;

    @ApiModelProperty(value = "任务当月序号 例如:1 插入及查询时请携带任务类型")
    private Integer monthOrder;

    @ApiModelProperty(value = "领料人手机号")
    //@Excel(name = "联系电话", sort = 6)
    private String leasePhone;

    @ApiModelProperty(value = "往来单位id")
    private Long unitId;

    @ApiModelProperty(value = "往来单位")
    //@Excel(name = "领料单位", sort = 2)
    private String unitName;

    @ApiModelProperty(value = "工程id")
    private Long projectId;

    /**
     * 工程名称
     */
    @ApiModelProperty(value = "工程名称")
    @Excel(name = "领料工程", sort = 3)
    private String projectName;

    /**
     * 领料物资名称汇总
     */
    @ApiModelProperty(value = "领料物资名称汇总")
    private String maTypeNames;

    /**
     * 预领料合计数
     */
    @ApiModelProperty(value = "预领料合计数")
    private Integer preCountNum;

    @ApiModelProperty(value = "已出库数量")
    private Integer alNum;

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

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

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

    @ApiModelProperty(value = "任务状态列表")
    private List<Integer> statusList;

}
