package com.bonus.material.repair.domain;

import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author syruan
 */
@Data
@ApiModel(value="维修任务")
public class RepairTask {

    private Long id;
    /**
     * 任务id
     */
    @ApiModelProperty(value = "任务id")
    private Long taskId;

    @ApiModelProperty(value = "前置任务id")
    private Long preTaskId;

    @ApiModelProperty(value = "任务状态")
    private Integer taskStatus;

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

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

    @ApiModelProperty(value = "维修拆分层级")
    private String level;

    @ApiModelProperty(value = "维修拆分父级id")
    private Long parentId;

    /**
     * 维修单号
     */
    @ApiModelProperty(value = "维修单号")
    @Excel(name = "维修单号",sort = 1)
    private String repairCode;
    /**
     * 退料单位名称
     */
    @ApiModelProperty(value = "退料单位名称")
    @Excel(name = "退料单位名称",sort = 2)
    private String backUnit;
    /**
     * 退料工程名称
     */
    @ApiModelProperty(value = "退料工程名称")
    @Excel(name = "退料工程名称",sort = 3)
    private String backPro;
    /**
     * 任务创建人
     */
    @ApiModelProperty(value = "任务创建人")
    private Long createBy;
    /**
     * 任务创建人
     */
    @ApiModelProperty(value = "任务创建人")
    @Excel(name = "任务创建人",sort = 4)
    private String createName;

    /**
     * 任务创建时间
     */
    @ApiModelProperty(value = "任务创建时间")
    @Excel(name = "任务创建时间",sort = 5)
    private String createTime;
    /**
     * 退料单号
     */
    @ApiModelProperty(value = "退料单号")
    @Excel(name = "退料单号",sort = 6)
    private String backCode;
    /**
     * 维修状态
     */
    @ApiModelProperty(value = "维修状态")
    @Excel(name = "维修状态",sort = 7)
    private String repairStatus;
    /**
     * 关键字
     */
    private String keyWord;
    /**
     * 开始时间
     */
    private String startTime;
    /**
     * 结束时间
     */
    private String endTime;

    @ApiModelProperty(value = "组织id")
    private Long companyId;

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

    @ApiModelProperty(value = "维修状态编码CODE")
    private String repairStatusCode;

    /**
     * 维修机具类型
     */
    @ApiModelProperty(value = "维修机具类型")
    @Excel(name = "维修机具类型",sort = 8)
    private String type;
    /**
     * 规格型号
     */
    @ApiModelProperty(value = "规格型号")
    @Excel(name = "规格型号",sort = 9)
    private String typeName;
    /**
     * 编码
     */
    @ApiModelProperty(value = "编码")
    @Excel(name = "编码",sort = 10)
    private String code;
    /**
     * 维修总量
     */
    @ApiModelProperty(value = "维修总量")
    @Excel(name = "维修总量",sort = 11)
    private BigDecimal repairNum;
    /**
     * 维修合格数量
     */
    @ApiModelProperty(value = "维修合格数量")
    @Excel(name = "维修合格数量",sort = 12)
    private BigDecimal repairedNum;
    /**
     * 维修报废数量
     */
    @ApiModelProperty(value = "报废数量")
    @Excel(name = "维修报废数量",sort = 13)
    private BigDecimal scrapNum;
    /**
     * 待修状态
     */
    @ApiModelProperty(value = "待修状态")
    @Excel(name = "待修状态",sort = 14)
    private String status;
    /**
     * 维修人员
     */
    @ApiModelProperty(value = "维修人员")
    //@Excel(name = "维修班组",sort = 15)
    private String repairer;
    /**
     * 维修时间
     */
    @ApiModelProperty(value = "维修时间")
    @Excel(name = "维修时间",sort = 16)
    private String updateTime;

    /** 导出选中列表 */
    @ApiModelProperty(value = "导出选中列表")
    private List<Long> dataCondition;

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

    @ApiModelProperty(value = "app维修任务状态，0 进行中 1已审核（包含通过和驳回）")
    private Integer appTaskStatus;

    /**
     * 退料人
     */
    private String backPerson;

    private List<Long> ids;

    private List<Long> taskIds;

    @ApiModelProperty(value = "登录用户id")
    private Long userId;

    @ApiModelProperty(value = "一级类型id")
    private String firstId;

    /**
     * 数据状态  0-未定损，1-已定损  3-修饰后入库驳回
     */
    private String dataStatus;

    private Integer num;

    @ApiModelProperty(value = "退料ID")
    private Long backId;
}
