package com.bonus.common.biz.domain.lease;

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;
import org.apache.poi.ss.usermodel.HorizontalAlignment;

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

/**
 * 领料出库详细对象 lease_out_details
 *
 * @author xsheng
 * @date 2024-10-16
 */


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

    /** ID */
    private Long id;

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

    private String taskId;

    @ApiModelProperty(value = "标准箱ID")
    private Long boxId;

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

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

    @ApiModelProperty(value = "机具code")
    private String maCode;

    @ApiModelProperty(value = "机具状态")
    private String maStatus;

    @ApiModelProperty(value = "机具状态名称")
    private String statusName;

    @ApiModelProperty(value = "二维码code")
    private String qrCode;

    @ApiModelProperty(value = "出库方式 0数量，1编码，2二维码，3标准箱")
    private Integer outType;

    /** 预领料数 */
    @Excel(name = "预领料数", align = HorizontalAlignment.RIGHT)
    @ApiModelProperty(value = "预领料数")
    private BigDecimal outNum;

    @ApiModelProperty(value = "可退还数量")
    private BigDecimal returnNum;

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

    /** 车牌号 */
    @Excel(name = "车牌号")
    @ApiModelProperty(value = "车牌号")
    private String carCode;

    /** 是否推送到智慧工程0：否，1:是 */
    @Excel(name = "是否推送到智慧工程0：否，1:是")
    @ApiModelProperty(value = "是否推送到智慧工程0：否，1:是")
    private Long pushNotifications;

    @ApiModelProperty(value = "出库类型 0编码出库  1数量出库 2成套出库")
    private Integer manageType;

    @ApiModelProperty(value = "数量出库-出库数量")
    private BigDecimal inputNum;

    @ApiModelProperty(value = "0工程1长期")
    private String leaseType;

    /** 操作前库存 */
    private BigDecimal preStoreNum;

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

    /** 规格型号 */
    private String typeName;

    /** 类型名称 */
    private String typeModelName;

    @ApiModelProperty(value = "发布批次")
    private String publishTask;

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

    @ApiModelProperty(value = "项目部协议id")
    private Long projectUnitAgreementId;

    @ApiModelProperty(value = "项目部单位id")
    private Long projectUnitId;

    @ApiModelProperty(value = "是否完成 (0:未完成 1:已完成)")
    private Integer isFinished;

    @ApiModelProperty(value = "领料单位")
    private String leaseUnit;

    @ApiModelProperty(value = "领料工程")
    private String leaseProject;

    @ApiModelProperty(value = "是否退回 (0：未退回，1：退回)")
    private Integer isBack;

    @ApiModelProperty("机具类型（1机具，2安全工器具）")
    private int jiJuType;

    @ApiModelProperty(value = "本次检验日期")
    private Date thisCheckTime;

    @ApiModelProperty(value = "下次检验日期")
    private Date nextCheckTime;

    /**
     * 领料出库机具编码集合
     */
    private List<LeaseOutDetails> maCodeList;

    @ApiModelProperty(value = "发料单位")
    private String sendUnit;

    @ApiModelProperty(value = "领料id")
    private Integer leaseUnitId;

    @ApiModelProperty(value = "领料单位是否为班组")
    private Boolean leaseUnitIsTeam;

    @ApiModelProperty(value = "领料工程id")
    private Integer leaseProjectId;

    /** 退料数量 */
    @ApiModelProperty(value = "退料数量")
    private BigDecimal preNum;

    /** 审批数量 */
    @ApiModelProperty(value = "审批数量")
    private BigDecimal alNum;

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

    @ApiModelProperty(value = "来源")
    private Integer source;

    @ApiModelProperty(value = "领料方式 0材料领料 1工器具领料 2数据同步")
    private String leaseStyle;

    @ApiModelProperty(value = "任务单号")
    private String code;

    @ApiModelProperty(value = "唯一任务id")
    private String keyId;

}
