package com.bonus.sgzb.base.api.domain;

import com.bonus.sgzb.common.core.annotation.Excel;
import com.bonus.sgzb.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 退料
 * @author bns_han
 */
@Data
public class BackApplyInfo extends BaseEntity {
    /**
     * 退料id
     */
    @ApiModelProperty(value = "退料ID")
    private Long id;

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

    @ApiModelProperty(value="工程名称")
    private String proName;

    /** 退料ID-字符串 */
    @ApiModelProperty(value = "退料ID-字符串")
    private String ids;

    private String applyStatus;
    /**
     * 装备管理方式(0编号 1计数)
     */
    @ApiModelProperty(value = "装备管理方式名称")
    private String manageTypeName;

    /**
     * 机具管理方式
     */
    private String manageType;


    private BackApplyInfo[] arr;

    private Integer maId;



    private Integer directNum;


    /** 任务ID */
    @ApiModelProperty(value = "任务ID")
    private Integer taskId;

    /** 任务ID */
    @ApiModelProperty(value = "任务ID")
    private String taskIds;

    /** 任务ID */
    @ApiModelProperty(value = "任务类型")
    private Integer taskType;

    /** 签订日期 */
    @ApiModelProperty(value = "签订日期")
    private String signTime;


    /**
     * 退料人
     */
    private String userName;
    private String badId;
    private String[] split;
    private String[] typeIds;

    @Excel(name = "退料状态",sort = 9)
    private String taskName;
    /**
     * 联系人
     */
    @Excel(name = "联系电话",sort = 6)
    @ApiModelProperty(value = "联系电话")
    private String phone;
    /**
     * 工程名称
     */
    @Excel(name = "退料工程",sort = 3)
    @ApiModelProperty(value = "工程名称")
    private String lotName;
    /**
     * 单位名称
     */
    @Excel(name = "退料单位",sort = 2)
    @ApiModelProperty(value = "单位名称")
    private String unitName;
    /**
     * 开始时间
     */
    private String planStartTime;


    private String modelId;

    private List<MachinePart> maTypeDetails;
    /**
     * 类型名称
     */
    @Excel(name = "退料机具",sort = 4)
    @ApiModelProperty(value = "类型名称")
    private String typeName;
    /**
     * 协议号
     */
    @Excel(name = "协议号",sort = 8)
    @ApiModelProperty(value = "协议编号")
    private String agreementCode;
    /**
     * 规格编号
     */
    @Excel(name = "规格型号")
    @ApiModelProperty(value = "规格编号")
    private String typeCode;




    @Excel(name = "退料单号",sort = 1)
    @ApiModelProperty(value = "退料单号")
    private String code;

    @Excel(name = "退料人员",sort = 5)
    @ApiModelProperty(value = "退料人员")
    private String backPerson;


    @Excel(name = "申请时间",sort = 7)
    @ApiModelProperty(value = "退料日期")
    private String backTime;


    private String type;
    /**
     * 合格数量
     */
    private Integer passNum;
    /**
     * 维修数量
     */
    private Integer maintenanceNum;
    /**
     * 报废数量
     */
    private Integer scrapNum;

    /**
     * 退料数量
     */
    private Integer backNum;

    /**
     * 退料状态
     */
    private String backStatus;

    /**
     * 合格入库数量
     */
    private String inputNum;




    private BackApplyInfo info;


    private Integer parentId;
    private String sdStatus;
    private String sdId;
    /**
     * 二维码编码
     */
    private String qrCode;
    /**
     * rfid编码
     */
    private String rfidCode;
    private String repairedNum;
    private String backId;
    private String repairer;


    private Integer flag;
    private Integer partNum;
    /**
     * 合格数量
     */
    private Integer hgNum;
    /**
     * 维修数量
     */
    private Integer wxNum;
    /**
     * 报废数量
     */
    private Integer bfNum;



    @Excel(name = "退料状态" , readConverterExp = "37=待退料审核,38=退料已审核,39=退料核查中,40=退料完成,101 = 退料审核驳回")
    @ApiModelProperty(value = "任务状态")
    private String taskStatus;


    /** 机具公司审核人 */
    @ApiModelProperty(value = "机具公司审核人")
    private Integer directAuditBy;


    /** 机具公司审批时间 */
    @ApiModelProperty(value = "机具公司审批时间")
    private String directAuditTime;

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


    /** 创建者 */
    @ApiModelProperty(value = "创建者")
    private String createBy;

    /** 创建时间 */
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /** 更新者 */
    @ApiModelProperty(value = "更新者")
    private String updateBy;

    /** 更新时间 */
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    /** 备注 */
    @ApiModelProperty(value = "备注")
    private String remark;

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

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

    @ApiModelProperty(value = "工程id")
    private Integer lotId;








    @ApiModelProperty(value = "单位id")
    private Integer unitId;
    @ApiModelProperty(value = "计量单位")
    private String unitNames;


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

    @ApiModelProperty(value = "类型id")
    private String typeId;

    @ApiModelProperty(value = "数量")
    private String num;

    @ApiModelProperty(value = "详情id和数量")
    private String detailsIdByNum;

    @ApiModelProperty(value = "类型id和数量")

    private String typeIdByNum;

    @ApiModelProperty(value = "详情id")

    private String detailsId;

    @ApiModelProperty(value = "编码")
    private String maCode;

    @ApiModelProperty(value = "在用数量")
    private String useNum;

    @ApiModelProperty(value = "操作人")
    private String createName;

    @ApiModelProperty(value = "审核人")
    private String examineName;

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

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

    @ApiModelProperty(value = "等级")
    private String level;


    /**
     * 退料任务实体
     */
    @ApiModelProperty(value="退料任务实体")
    private BackApplyInfo backApplyInfo;

    /**
     * 退料任务实体集合
     */
    @ApiModelProperty(value="退料任务实体集合")
    private List<BackApplyInfo> backApplyInfoList;

    /**
     * 退料任务实体集合
     */
    @ApiModelProperty(value="退料任务实体集合")
    private List<BackApplyInfo> backApplyDetails;

    /**审核状态*/
    @ApiModelProperty(value="同一退料单中不同器具状态")
    private String status;

    private String guigeCn;

    /**
     * 退料数量
     */
    private String preNum;
    private String auditNum;
    private String typeCn;
    /** 前端条件查询所传工程id */
    private String proId;
    /** 前端条件查询所传退料时间 */
    private String time;

    private int viewWeb;

    /** 操作后库存 */
    private int postStoreNum;

    /** 库管员 */
    private long userId;
}
