package com.zhyc.module.stock.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zhyc.common.annotation.Excel;
import com.zhyc.common.core.domain.BaseEntity;

/**
 * 入库记录对象 wz_stock_in
 * 
 * @author HashMap
 * @date 2025-08-05
 */
@Setter
@Getter
public class WzStockIn extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    private Long stockInCode;

    /** 单据日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "单据日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date docDate;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createDate;

    /** 单据编号 */
    @Excel(name = "单据编号")
    private String docId;

    /** 业务类型 */
    @Excel(name = "业务类型")
    private String businessType;

    /** 仓库编码 */
    @Excel(name = "仓库编码")
    private String repositoryId;

    /** 仓库 */
    @Excel(name = "仓库")
    private String repositoryName;

    /** 入库类别 */
    @Excel(name = "入库类别")
    private String stockInType;

    /** 供应商编码 */
    @Excel(name = "供应商编码")
    private String supplierId;

    /** 供应商 */
    @Excel(name = "供应商")
    private String supplierName;

    /** 部门编码 */
    @Excel(name = "部门编码")
    private String departmentId;

    /** 部门 */
    @Excel(name = "部门")
    private String departmentName;

    /** 经手人编码 */
    @Excel(name = "经手人编码")
    private String operatorId;

    /** 经手人 */
    @Excel(name = "经手人")
    private String operatorName;

    /** 制单人 */
    @Excel(name = "制单人")
    private String single;

    /** 审核人 */
    @Excel(name = "审核人")
    private String reviewer;

    /** 存货编码 */
    @Excel(name = "存货编码")
    private String materialId;

    /** 存货 */
    @Excel(name = "存货")
    private String materialName;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String materialSpecification;

    /** 计量单位 */
    @Excel(name = "计量单位")
    private String materialUnit;

    /** 实收数量 */
    @Excel(name = "实收数量")
    private BigDecimal count;

    /** 入库调整 */
    @Excel(name = "入库调整")
    private String stockInAdjustRemark;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("stockInCode", getStockInCode())
            .append("docDate", getDocDate())
            .append("createDate", getCreateDate())
            .append("docId", getDocId())
            .append("businessType", getBusinessType())
            .append("repositoryId", getRepositoryId())
            .append("repositoryName", getRepositoryName())
            .append("stockInType", getStockInType())
            .append("supplierId", getSupplierId())
            .append("supplierName", getSupplierName())
            .append("departmentId", getDepartmentId())
            .append("departmentName", getDepartmentName())
            .append("operatorId", getOperatorId())
            .append("operatorName", getOperatorName())
            .append("remark", getRemark())
            .append("single", getSingle())
            .append("reviewer", getReviewer())
            .append("materialId", getMaterialId())
            .append("materialName", getMaterialName())
            .append("materialSpecification", getMaterialSpecification())
            .append("materialUnit", getMaterialUnit())
            .append("count", getCount())
            .append("stockInAdjustRemark", getStockInAdjustRemark())
            .toString();
    }
}
