package com.bonus.material.scrap.domain;

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

import com.bonus.common.biz.domain.BmFileInfo;
import com.bonus.material.scrap.domain.vo.ScrapTaskListVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;

/**
 * 报废任务详细对象 scrap_apply_details
 *
 * @author xsheng
 * @date 2024-10-16
 */


@Data
@ToString
public class ScrapApplyDetails extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ids结果集")
    private List<Long> idList;

    @ApiModelProperty(value = "任务id结果集")
    private List<Long> taskIdList;

    @ApiModelProperty(value = "驳回原因")
    private String rejectReason;

    /** id */
    private Long id;

    @ApiModelProperty(value = "报废任务二级详细列表")
    private List<ScrapApplyDetails> scrapApplyDetailsList;

    @ApiModelProperty(value = "报废任务一级详细列表")
    private List<ScrapTaskListVo> scrapTaskListVoList;

    @ApiModelProperty(value = "盘点报废编码详情")
    private List<MaCodeInfo> maCodeList;

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

    @ApiModelProperty(value = "维修ID")
    private Long repairId;

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

    @ApiModelProperty(value = "新任务ID")
    private Long newTaskId;

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

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

    @ApiModelProperty(value = "状态")
    private String status;

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

    private String statusName;

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

    /** 上级ID */
//    @Excel(name = "上级ID")
    @ApiModelProperty(value = "上级ID")
    private Long parentId;

    /** 机具ID */
//    @Excel(name = "机具ID")
    @ApiModelProperty(value = "机具ID")
    private Long maId;

    @ApiModelProperty(value = "机具ID结果集")
    private String maIds;

    @Excel(name = "设备编码",sort=6)
    @ApiModelProperty(value = "设备编码")
    private String maCode;

    /** 规格ID */
//    @Excel(name = "规格ID")
    @ApiModelProperty(value = "规格ID")
    private Long typeId;

    @Excel(name = "规格型号",sort=2)
    @ApiModelProperty(value = "规格型号名称")
    private String typeName;

    @ApiModelProperty(value = "物资类型ID")
    private Long typeNameId;

    @Excel(name = "物资类型",sort=1)
    @ApiModelProperty(value = "物资类型名称")
    private String maTypeName;

    private String typeModelName;

    @ApiModelProperty(value = "管理方式")
    private String manageType;

    @Excel(name = "计量单位",sort=3)
    @ApiModelProperty(value = "单位")
    private String unitName;

    private String code;

    @ApiModelProperty(value = "维修单号")
    private String repairCode;

    @ApiModelProperty(value = "退料数量")
    private BigDecimal backNum;

    @ApiModelProperty(value = "已修数量")
    private BigDecimal repairNum;

    @ApiModelProperty(value = "已修数量")
    private BigDecimal repairedNum;

    @ApiModelProperty(value = "费用合计")
    private BigDecimal totalCost;

    @ApiModelProperty(value = "购置价")
    private BigDecimal buyPrice;

    @Excel(name = "当前库存",sort=4)
    @ApiModelProperty(value = "库存数量")
    private BigDecimal storageNum;

    /** 报废数量 */
    @Excel(name = "报废数量",sort=5)
    @ApiModelProperty(value = "报废数量")
    private BigDecimal scrapNum;

    /** (1退料2,维修审核，3盘点) */
//    @Excel(name = "(1退料2,维修审核，3盘点)")
    @ApiModelProperty(value = "(1退料2,维修审核，3盘点)")
    private String scrapSource;

    /** （0自然，1人为） */
//    @Excel(name = "报废类型", readConverterExp = "0=自然，1人为")
    private String scrapType;

    @Excel(name = "报废原因",sort=7)
    @ApiModelProperty(value = "报废原因")
    private String scrapReason;

    @ApiModelProperty(value = "报废人")
    private String scraper;

    /** 审核人 */
    @ApiModelProperty(value = "审核人id")
    private Long auditBy;

    /** 报废台账审核人id */
    @ApiModelProperty(value = "报废台账审核人id")
    private Long ledgerBy;

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

    /** 报废台账审核时间 */
    @ApiModelProperty(value = "报废台账审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "报废台账审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date ledgerTime;

    /** 审核备注 */
//    @Excel(name = "审核备注")
    @ApiModelProperty(value = "审核备注")
    private String auditRemark;

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

    /** 文件名 */
//    @Excel(name = "文件名")
    @ApiModelProperty(value = "文件名")
    private String fileName;

    /** 文件url */
//    @Excel(name = "文件url")
    @ApiModelProperty(value = "文件url")
    private String fileUrl;

    @ApiModelProperty(value = "盘点报废文件结果集")
    private List<BmFileInfo> fileList;

    /** 报废备注 */
    private String scrapRemark;

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

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

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

    @ApiModelProperty(value = "本次审核周期")
    @JsonFormat(pattern = "yyyy-MM")
    private String month;

    @ApiModelProperty(value = "台账审核状态 0待审核，1已审核，2驳回")
    private String ledgerStatus;
}
