package com.zg.project.wisdom.domain;

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

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zg.framework.aspectj.lang.annotation.Excel;
import com.zg.framework.web.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 出入库记录对象 rk_record
 * 
 * @author zg
 * @date 2026-01-20
 */
public class RkRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 批量操作ID集合（不落库） */
    private List<Long> ids;
    /** 业务类型 */
    @Excel(name = "业务类型", readConverterExp = "0=入库,1=出库,2=借料出库,3=还料入库")
    private String bizType;
    /** 业务类型列表（查询用） */
    private List<String> bizTypeList;
    /** 出入库类型 */
//    @Excel(name = "出入库类型")
    private String operationType;

    /** 出入库类型名称（联表） */
    @Excel(name = "出入库类型名称")
    private String operationTypeName;

    /** 施工队 */
    @Excel(name = "施工队")
    private String teamCode;

    /** 施工队名称（联表） */
    @Excel(name = "施工队名称")
    private String teamName;

    /** 执行状态（0预入/预出，1已完成） */
    @Excel(name = "执行状态", readConverterExp = "0=预操作,1=已完成")
    private String execStatus;

    /** 物资类型 */
//    @Excel(name = "物资类型")
    private String wlType;

    /** 物资类型名称（联表） */
    @Excel(name = "物资类型名称")
    private String wlTypeName;

    /** 所属仓库 */
//    @Excel(name = "所属仓库")
    private String cangku;

    /** 小仓名称 */
    @Excel(name = "所属仓库")
    private String warehouseName;

    /** 大仓编码 */
    private String parentWarehouseCode;

    /** 大仓名称 */
    @Excel(name = "大仓名称")
    private String parentWarehouseName;

    /** 出入库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "出入库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date operationTime;

    /** 出入库理货员 */
//    @Excel(name = "出入库理货员")
    private Integer operator;

    /** 出入库理货员 */
    @Excel(name = "出入库理货员")
    private String operatorName;

    /** 是否已出库（0已入库，1已出库） */
//    @Excel(name = "是否已出库", readConverterExp = "0=已入库，1已出库")
    private String isChuku;

    /** 0:入库待审核，1已通过，2已驳回，3出库待审核 */
//    @Excel(name = "")
    private String status;

    /** 库龄（天） */
    @Excel(name = "库龄(天)")
    private Long stockAge;

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

    /** 县局 */
    @Excel(name = "县局")
    private String xj;

    /** 项目号 */
    @Excel(name = "项目号")
    private String xmNo;

    /** 项目描述 */
    @Excel(name = "项目描述")
    private String xmMs;

    /** 出库项目号（借用方项目） */
    @Excel(name = "出库项目号", readConverterExp = "借=用方项目")
    private String xmNoCk;

    /** 出库项目描述（借用方项目描述） */
    @Excel(name = "出库项目描述", readConverterExp = "借=用方项目描述")
    private String xmMsCk;

    /** 物料号 */
    @Excel(name = "物料号")
    private String wlNo;

    /** 物料描述 */
    @Excel(name = "物料描述")
    private String wlMs;

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

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    private String gysMc;

    /** 计划交货金额 */
    @Excel(name = "计划交货金额")
    private BigDecimal jhAmt;

    /** 合同单价 */
    @Excel(name = "合同单价")
    private BigDecimal htDj;

    /** SAP订单编号 */
    @Excel(name = "SAP订单编号")
    private String sapNo;

    /** 行号 */
    @Excel(name = "行号")
    private String xh;

    /** 计划交货数量 */
    @Excel(name = "计划交货数量")
    private BigDecimal jhQty;

    /** 合同数量 */
    @Excel(name = "合同数量")
    private BigDecimal htQty;

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

    /** 实际入库数量 */
    @Excel(name = "实际入库数量")
    private BigDecimal realQty;

    /** 库位码 */
    @Excel(name = "库位码")
    private String pcode;

    /** 库位16进制编码 */
    @Excel(name = "库位16进制编码")
    private String pcodeId;

    /** 托盘码 */
    @Excel(name = "托盘码")
    private String trayCode;

    /** 实物ID */
    @Excel(name = "实物ID")
    private String entityId;

    /** 借用时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//    @Excel(name = "借用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date borrowTime;

    /** 归还时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//    @Excel(name = "归还时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date returnTime;

    /** 是否移库过（0否 1是） */
//    @Excel(name = "是否移库过", readConverterExp = "0=否,1=是")
    private String hasMoved;

    /** 是否借料（0否,1是,2已归还） */
//    @Excel(name = "是否借料", readConverterExp = "0=否,1是,2已归还")
    private String isBorrowed;

    /** 是否删除（0 表示正常，1 表示已删除） */
//    @Excel(name = "是否删除", readConverterExp = "0=,表=示正常，1,表=示已删除")
    private String isDelete;

    /** 供应计划ID（对应供应计划表主键） */
//    @Excel(name = "供应计划ID", readConverterExp = "对=应供应计划表主键")
    private Long gysJhId;

    /** $column.columnComment */
//    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long rdid;

    /** $column.columnComment */
//    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long rdidCk;

    /** $column.columnComment */
//    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long sid;

    /** 是否需要配送(0否,1是,2配送中,3配送完成) */
    @Excel(name = "是否需要配送(0否,1是,2配送中,3配送完成)")
    private String isDelivery;

    /** 封样编号1 */
//    @Excel(name = "封样编号1")
    private String fycde1;

    /** 封样编号2 */
//    @Excel(name = "封样编号2")
    private String fycde2;

    /** 1已更新 */
//    @Excel(name = "1已更新")
    private Long isUpdate;

    /** 入库 / 出库开始时间（查询用） */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endDate;

    /** 对应 rk_info 主键ID */
    private Long rkInfoId;
    /** 备注 */
    @Excel(name = "备注")
    private String remark;

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

    public Long getId() 
    {
        return id;
    }

    public java.util.List<Long> getIds() {
        return ids;
    }

    public void setIds(java.util.List<Long> ids) {
        this.ids = ids;
    }

    public void setBizType(String bizType) {
        this.bizType = bizType;
    }

    public String getBizType() {
        return bizType;
    }
    public List<String> getBizTypeList() {
        return bizTypeList;
    }

    public void setBizTypeList(List<String> bizTypeList) {
        this.bizTypeList = bizTypeList;
    }
    public void setOperationType(String operationType) 
    {
        this.operationType = operationType;
    }

    public String getOperationType() 
    {
        return operationType;
    }

    public String getOperationTypeName() {
        return operationTypeName;
    }

    public void setOperationTypeName(String operationTypeName) {
        this.operationTypeName = operationTypeName;
    }

    public String getExecStatus() {
        return execStatus;
    }

    public void setExecStatus(String execStatus) {
        this.execStatus = execStatus;
    }
    public Long getStockAge() {
        return stockAge;
    }

    public void setStockAge(Long stockAge) {
        this.stockAge = stockAge;
    }

    public void setWlType(String wlType) 
    {
        this.wlType = wlType;
    }

    public String getWlType() 
    {
        return wlType;
    }

    public String getWlTypeName() {
        return wlTypeName;
    }

    public void setWlTypeName(String wlTypeName) {
        this.wlTypeName = wlTypeName;
    }

    public void setCangku(String cangku) 
    {
        this.cangku = cangku;
    }

    public String getCangku() 
    {
        return cangku;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getParentWarehouseCode() {
        return parentWarehouseCode;
    }

    public void setParentWarehouseCode(String parentWarehouseCode) {
        this.parentWarehouseCode = parentWarehouseCode;
    }

    public String getParentWarehouseName() {
        return parentWarehouseName;
    }

    public void setParentWarehouseName(String parentWarehouseName) {
        this.parentWarehouseName = parentWarehouseName;
    }

    public void setOperationTime(Date operationTime) 
    {
        this.operationTime = operationTime;
    }

    public Date getOperationTime() 
    {
        return operationTime;
    }

    public Integer getOperator() {
        return operator;
    }

    public void setOperator(Integer operator) {
        this.operator = operator;
    }

    public String getOperatorName() {
        return operatorName;
    }

    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }

    public void setIsChuku(String isChuku) 
    {
        this.isChuku = isChuku;
    }

    public String getIsChuku() 
    {
        return isChuku;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setBillNo(String billNo) 
    {
        this.billNo = billNo;
    }

    public String getBillNo() 
    {
        return billNo;
    }

    public void setXj(String xj) 
    {
        this.xj = xj;
    }

    public String getXj() 
    {
        return xj;
    }

    public void setXmNo(String xmNo) 
    {
        this.xmNo = xmNo;
    }

    public String getXmNo() 
    {
        return xmNo;
    }

    public void setXmMs(String xmMs) 
    {
        this.xmMs = xmMs;
    }

    public String getXmMs() 
    {
        return xmMs;
    }

    public void setXmNoCk(String xmNoCk) 
    {
        this.xmNoCk = xmNoCk;
    }

    public String getXmNoCk() 
    {
        return xmNoCk;
    }

    public void setXmMsCk(String xmMsCk) 
    {
        this.xmMsCk = xmMsCk;
    }

    public String getXmMsCk() 
    {
        return xmMsCk;
    }

    public void setWlNo(String wlNo) 
    {
        this.wlNo = wlNo;
    }

    public String getWlNo() 
    {
        return wlNo;
    }

    public void setWlMs(String wlMs) 
    {
        this.wlMs = wlMs;
    }

    public String getWlMs() 
    {
        return wlMs;
    }

    public void setGysNo(String gysNo) 
    {
        this.gysNo = gysNo;
    }

    public String getGysNo() 
    {
        return gysNo;
    }

    public void setGysMc(String gysMc) 
    {
        this.gysMc = gysMc;
    }

    public String getGysMc() 
    {
        return gysMc;
    }

    public void setJhAmt(BigDecimal jhAmt) 
    {
        this.jhAmt = jhAmt;
    }

    public BigDecimal getJhAmt() 
    {
        return jhAmt;
    }

    public void setHtDj(BigDecimal htDj) 
    {
        this.htDj = htDj;
    }

    public BigDecimal getHtDj() 
    {
        return htDj;
    }

    public void setSapNo(String sapNo) 
    {
        this.sapNo = sapNo;
    }

    public String getSapNo() 
    {
        return sapNo;
    }

    public void setXh(String xh) 
    {
        this.xh = xh;
    }

    public String getXh() 
    {
        return xh;
    }

    public void setJhQty(BigDecimal jhQty) 
    {
        this.jhQty = jhQty;
    }

    public BigDecimal getJhQty() 
    {
        return jhQty;
    }

    public void setHtQty(BigDecimal htQty) 
    {
        this.htQty = htQty;
    }

    public BigDecimal getHtQty() 
    {
        return htQty;
    }

    public void setDw(String dw) 
    {
        this.dw = dw;
    }

    public String getDw() 
    {
        return dw;
    }

    public void setRealQty(BigDecimal realQty) 
    {
        this.realQty = realQty;
    }

    public BigDecimal getRealQty() 
    {
        return realQty;
    }

    public void setPcode(String pcode) 
    {
        this.pcode = pcode;
    }

    public String getPcode() 
    {
        return pcode;
    }

    public void setPcodeId(String pcodeId) 
    {
        this.pcodeId = pcodeId;
    }

    public String getPcodeId() 
    {
        return pcodeId;
    }

    public void setTrayCode(String trayCode) 
    {
        this.trayCode = trayCode;
    }

    public String getTrayCode() 
    {
        return trayCode;
    }

    public void setEntityId(String entityId) 
    {
        this.entityId = entityId;
    }

    public String getEntityId() 
    {
        return entityId;
    }

    public void setTeamCode(String teamCode) 
    {
        this.teamCode = teamCode;
    }

    public String getTeamCode() 
    {
        return teamCode;
    }

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    public void setBorrowTime(Date borrowTime) 
    {
        this.borrowTime = borrowTime;
    }

    public Date getBorrowTime() 
    {
        return borrowTime;
    }

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

    public Date getReturnTime() 
    {
        return returnTime;
    }

    public void setHasMoved(String hasMoved) 
    {
        this.hasMoved = hasMoved;
    }

    public String getHasMoved() 
    {
        return hasMoved;
    }

    public void setIsBorrowed(String isBorrowed) 
    {
        this.isBorrowed = isBorrowed;
    }

    public String getIsBorrowed() 
    {
        return isBorrowed;
    }

    public void setIsDelete(String isDelete) 
    {
        this.isDelete = isDelete;
    }

    public String getIsDelete() 
    {
        return isDelete;
    }

    public void setGysJhId(Long gysJhId) 
    {
        this.gysJhId = gysJhId;
    }

    public Long getGysJhId() 
    {
        return gysJhId;
    }

    public void setRdid(Long rdid) 
    {
        this.rdid = rdid;
    }

    public Long getRdid() 
    {
        return rdid;
    }

    public void setRdidCk(Long rdidCk) 
    {
        this.rdidCk = rdidCk;
    }

    public Long getRdidCk() 
    {
        return rdidCk;
    }

    public void setSid(Long sid) 
    {
        this.sid = sid;
    }

    public Long getSid() 
    {
        return sid;
    }

    public void setIsDelivery(String isDelivery) 
    {
        this.isDelivery = isDelivery;
    }

    public String getIsDelivery() 
    {
        return isDelivery;
    }

    public void setFycde1(String fycde1) 
    {
        this.fycde1 = fycde1;
    }

    public String getFycde1() 
    {
        return fycde1;
    }

    public void setFycde2(String fycde2) 
    {
        this.fycde2 = fycde2;
    }

    public String getFycde2() 
    {
        return fycde2;
    }

    public void setIsUpdate(Long isUpdate) 
    {
        this.isUpdate = isUpdate;
    }

    public Long getIsUpdate() 
    {
        return isUpdate;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Long getRkInfoId() {
        return rkInfoId;
    }

    public void setRkInfoId(Long rkInfoId) {
        this.rkInfoId = rkInfoId;
    }
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
                .append("ids", ids)
            .append("bizType", getBizType())
            .append("operationType", getOperationType())
                .append("operationTypeName", operationTypeName)
                .append("execStatus", getExecStatus())
                .append("stockAge", getStockAge())
            .append("wlType", getWlType())
                .append("wlTypeName", wlTypeName)
            .append("cangku", getCangku())
            .append("warehouseName", getWarehouseName())
            .append("parentWarehouseCode", getParentWarehouseCode())
            .append("parentWarehouseName", getParentWarehouseName())
            .append("operationTime", getOperationTime())
            .append("operator", getOperator())
                .append("operatorName", operatorName)
            .append("isChuku", getIsChuku())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("billNo", getBillNo())
            .append("xj", getXj())
            .append("xmNo", getXmNo())
            .append("xmMs", getXmMs())
            .append("xmNoCk", getXmNoCk())
            .append("xmMsCk", getXmMsCk())
            .append("wlNo", getWlNo())
            .append("wlMs", getWlMs())
            .append("gysNo", getGysNo())
            .append("gysMc", getGysMc())
            .append("jhAmt", getJhAmt())
            .append("htDj", getHtDj())
            .append("sapNo", getSapNo())
            .append("xh", getXh())
            .append("jhQty", getJhQty())
            .append("htQty", getHtQty())
            .append("dw", getDw())
            .append("realQty", getRealQty())
            .append("pcode", getPcode())
            .append("pcodeId", getPcodeId())
            .append("trayCode", getTrayCode())
            .append("entityId", getEntityId())
            .append("teamCode", getTeamCode())
                .append("teamName", teamName)
            .append("borrowTime", getBorrowTime())
            .append("returnTime", getReturnTime())
            .append("hasMoved", getHasMoved())
            .append("isBorrowed", getIsBorrowed())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("isDelete", getIsDelete())
            .append("gysJhId", getGysJhId())
            .append("rdid", getRdid())
            .append("rdidCk", getRdidCk())
            .append("sid", getSid())
            .append("isDelivery", getIsDelivery())
            .append("fycde1", getFycde1())
            .append("fycde2", getFycde2())
            .append("isUpdate", getIsUpdate())
                .append("startDate", startDate)
                .append("endDate", endDate)
                .append("rkInfoId", getRkInfoId())
            .toString();
    }
}
