package com.zg.project.wisdom.domain;

import com.zg.framework.web.domain.BaseEntity;
import com.zg.framework.aspectj.lang.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 移库记录对象 move_record
 *
 * @author zg
 * @date 2025-06-20
 */
public class MoveRecord extends BaseEntity {

    private static final long serialVersionUID = 1L;

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

    /** 关联的库存单据ID */
    @Excel(name = "库存单据ID")
    private Long rkId;

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

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

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

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

    /** 目标仓库 */
    @Excel(name = "目标仓库")
    private String toCangku;

    /** 目标库位码 */
    @Excel(name = "目标库位码")
    private String toPcode;

    /** 目标托盘码 */
    @Excel(name = "目标托盘码")
    private String toTrayCode;

    /** 移库原因 */
    @Excel(name = "移库原因")
    private String moveReason;

    /** 操作人 */
    private String movedBy;

    @Excel(name = "操作人名称")
    private String movedByName;

    /** 操作时间（移库时间） */
    @Excel(name = "操作时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date movedAt;

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

    /** 原仓库名称 */
    @Excel(name = "原仓库名称")
    private String fromCangkuName;

    /** 目标仓库名称 */
    @Excel(name = "目标仓库名称")
    private String toCangkuName;

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

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

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

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

    // Getters and Setters

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

    public Long getRkId() { return rkId; }
    public void setRkId(Long rkId) { this.rkId = rkId; }

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

    public String getFromCangku() { return fromCangku; }
    public void setFromCangku(String fromCangku) { this.fromCangku = fromCangku; }

    public String getFromPcode() { return fromPcode; }
    public void setFromPcode(String fromPcode) { this.fromPcode = fromPcode; }

    public String getFromTrayCode() { return fromTrayCode; }
    public void setFromTrayCode(String fromTrayCode) { this.fromTrayCode = fromTrayCode; }

    public String getToCangku() { return toCangku; }
    public void setToCangku(String toCangku) { this.toCangku = toCangku; }

    public String getToPcode() { return toPcode; }
    public void setToPcode(String toPcode) { this.toPcode = toPcode; }

    public String getToTrayCode() { return toTrayCode; }
    public void setToTrayCode(String toTrayCode) { this.toTrayCode = toTrayCode; }

    public String getMoveReason() { return moveReason; }
    public void setMoveReason(String moveReason) { this.moveReason = moveReason; }

    public String getMovedBy() { return movedBy; }
    public void setMovedBy(String movedBy) { this.movedBy = movedBy; }
    public String getMovedByName() {
        return movedByName;
    }
    public void setMovedByName(String movedByName) {
        this.movedByName = movedByName;
    }

    public Date getMovedAt() { return movedAt; }
    public void setMovedAt(Date movedAt) { this.movedAt = movedAt; }

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

    public String getFromCangkuName() { return fromCangkuName; }
    public void setFromCangkuName(String fromCangkuName) { this.fromCangkuName = fromCangkuName; }

    public String getToCangkuName() { return toCangkuName; }
    public void setToCangkuName(String toCangkuName) { this.toCangkuName = toCangkuName; }

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

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

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

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

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("rkId", getRkId())
                .append("entityId", getEntityId())
                .append("fromCangku", getFromCangku())
                .append("fromPcode", getFromPcode())
                .append("fromTrayCode", getFromTrayCode())
                .append("toCangku", getToCangku())
                .append("toPcode", getToPcode())
                .append("toTrayCode", getToTrayCode())
                .append("moveReason", getMoveReason())
                .append("movedBy", getMovedBy())
                .append("movedByName", getMovedByName())
                .append("movedAt", getMovedAt())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("isDelete", getIsDelete())
                .append("fromCangkuName", getFromCangkuName())
                .append("toCangkuName", getToCangkuName())
                .append("xmNo", getXmNo())
                .append("xmMs", getXmMs())
                .append("wlMs", getWlMs())
                .append("gysMc", getGysMc())
                .toString();
    }
}
