package com.zd.chemical.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zd.common.core.annotation.Excel;
import com.zd.common.core.valid.ValidGroup;
import com.zd.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 化学品使用记录对象 hxp_userecord
 *
 * @author liubo
 * @date 2022-06-18
 */
@ApiModel("化学品使用记录")
public class HxpUserecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "${comment}")
    private Long id;
    /**
     * 库存ID
     */
    @Excel(name = "库存ID")
    @NotNull(message = "库存ID不能为空")
    @ApiModelProperty(required = true, value = "库存ID")
    private Long stockId;

    @ApiModelProperty(value = "化学品名称")
    private String chemicalName;
    /**
     * 领用第一验证人
     */
    @Excel(name = "领用第一验证人")
    @ApiModelProperty(value = "领用第一验证人")
    private Long outOneUser;
    /**
     * 领用第二验证人
     */
    @Excel(name = "领用第二验证人")
    @ApiModelProperty(value = "领用第二验证人")
    private Long outTwoUser;

    @ApiModelProperty(value = "领用操作视频")
    private String outVideo;

    /**
     * 领用时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "领用时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "领用时间")
    private Date collectTime;
    /**
     * 归还时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "归还时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "归还时间")
    private Date returnTime;
    /**
     * 归还方式（1是称重，2是录入）
     */
    @Excel(name = "归还方式", readConverterExp = "1=是称重，2是录入")
    @ApiModelProperty(value = "归还方式（1是称重，2是录入）")
    private Integer returnType;

    @ApiModelProperty(value = "归还操作视频")
    private String returnVideo;

    /**
     * 归还时称重重量
     */
    @ApiModelProperty(value = "归还时称重重量")
    private BigDecimal returnStockNum;

    @ApiModelProperty(value = "领用方式（1是称重，2是录入）")
    private Integer outType;

    private Long subId;

    /**
     * 领用时库存量
     */
    @Excel(name = "领用时库存")
    @ApiModelProperty(required = true, value = "领用时库存量")
    private BigDecimal collectNowNum;

    /**
     * 领用时称重
     */
    @Excel(name = "领用时称重")
    @NotNull(message = "当前重量不能为空！")
    @ApiModelProperty(required = true, value = "领用时称重")
    private BigDecimal collectStockNum;
    /**
     * 状态（1是使用中，0是已归还，2是超时未归还）
     */
    @Excel(name = "状态", readConverterExp = "1=是使用中，0是已归还，2是超时未归还")
    @ApiModelProperty(value = "状态")
    private Integer useStatus;

    @ApiModelProperty(value = "归还第一验证人")
    private Long backOneUser;

    @ApiModelProperty(value = "归还第二验证人")
    private Long backTwoUser;

    @ApiModelProperty(value = "损耗量")
    private BigDecimal lossAmount;

    @ApiModelProperty(value = "柜锁记录Id")
    private Long lockLogId;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setStockId(Long stockId) {
        this.stockId = stockId;
    }

    public Long getStockId() {
        return stockId;
    }

    public void setOutOneUser(Long outOneUser) {
        this.outOneUser = outOneUser;
    }

    public Long getOutOneUser() {
        return outOneUser;
    }

    public void setOutTwoUser(Long outTwoUser) {
        this.outTwoUser = outTwoUser;
    }

    public Long getOutTwoUser() {
        return outTwoUser;
    }

    public void setCollectTime(Date collectTime) {
        this.collectTime = collectTime;
    }

    public Date getCollectTime() {
        return collectTime;
    }

    public void setReturnTime(Date returnTime) {
        this.returnTime = returnTime;
    }

    public Date getReturnTime() {
        return returnTime;
    }

    public void setReturnType(Integer returnType) {
        this.returnType = returnType;
    }

    public Integer getReturnType() {
        return returnType;
    }

    public void setCollectStockNum(BigDecimal collectStockNum) {
        this.collectStockNum = collectStockNum;
    }

    public BigDecimal getCollectStockNum() {
        return collectStockNum;
    }

    public void setUseStatus(Integer useStatus) {
        this.useStatus = useStatus;
    }

    public Integer getUseStatus() {
        return useStatus;
    }

    public BigDecimal getReturnStockNum() {
        return returnStockNum;
    }

    public void setReturnStockNum(BigDecimal returnStockNum) {
        this.returnStockNum = returnStockNum;
    }

    public Long getBackOneUser() {
        return backOneUser;
    }

    public void setBackOneUser(Long backOneUser) {
        this.backOneUser = backOneUser;
    }

    public Long getBackTwoUser() {
        return backTwoUser;
    }

    public void setBackTwoUser(Long backTwoUser) {
        this.backTwoUser = backTwoUser;
    }

    public BigDecimal getLossAmount() {
        return lossAmount;
    }

    public void setLossAmount(BigDecimal lossAmount) {
        this.lossAmount = lossAmount;
    }

    public Integer getOutType() {
        return outType;
    }

    public void setOutType(Integer outType) {
        this.outType = outType;
    }

    public BigDecimal getCollectNowNum() {
        return collectNowNum;
    }

    public void setCollectNowNum(BigDecimal collectNowNum) {
        this.collectNowNum = collectNowNum;
    }

    public Long getSubId() {
        return subId;
    }

    public void setSubId(Long subId) {
        this.subId = subId;
    }

    public String getChemicalName() {
        return chemicalName;
    }

    public void setChemicalName(String chemicalName) {
        this.chemicalName = chemicalName;
    }

    public String getOutVideo() {
        return outVideo;
    }

    public void setOutVideo(String outVideo) {
        this.outVideo = outVideo;
    }

    public String getReturnVideo() {
        return returnVideo;
    }

    public void setReturnVideo(String returnVideo) {
        this.returnVideo = returnVideo;
    }

    public Long getLockLogId() {
        return lockLogId;
    }

    public void setLockLogId(Long lockLogId) {
        this.lockLogId = lockLogId;
    }
}
