package com.ruoyi.asset.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 退库管理对象 ams_return_order
 * 
 * @author Yangk
 * @date 2026-06-15
 */
public class AmsReturnOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 单据ID */
    private Long orderId;

    /** 退库单号 */
    @Excel(name = "退库单号")
    private String returnNo;

    /** 申请人ID */
    @Excel(name = "申请人ID")
    private Long applicantId;

    /** 申请人名称快照 */
    @Excel(name = "申请人名称快照")
    private String applicantName;

    /** 申请部门ID */
    @Excel(name = "申请部门ID")
    private Long applyDeptId;

    /** 申请部门名称快照 */
    @Excel(name = "申请部门名称快照")
    private String applyDeptName;

    /** 接收仓库ID */
    @Excel(name = "接收仓库ID")
    private Long receiveWarehouseId;

    /** 接收仓库编码快照 */
    @Excel(name = "接收仓库编码快照")
    private String receiveWarehouseCode;

    /** 接收仓库名称快照 */
    @Excel(name = "接收仓库名称快照")
    private String receiveWarehouseName;

    /** 确认人ID */
    @Excel(name = "确认人ID")
    private Long confirmUserId;

    /** 确认人名称快照 */
    @Excel(name = "确认人名称快照")
    private String confirmUserName;

    /** 确认时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "确认时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date confirmTime;

    /** 单据状态 */
    @Excel(name = "单据状态")
    private String orderStatus;

    /** 删除标志：0存在，1删除 */
    private String delFlag;

    /** 
     * 退库单关联的资产明细项列表。
     * 每一个明细项记录了单一资产退库前的领用部门、领用人、以及退回后的仓库、位置快照。
     */
    private List<AmsReturnOrderItem> amsReturnOrderItemList;

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }

    public void setReturnNo(String returnNo) 
    {
        this.returnNo = returnNo;
    }

    public String getReturnNo() 
    {
        return returnNo;
    }

    public void setApplicantId(Long applicantId) 
    {
        this.applicantId = applicantId;
    }

    public Long getApplicantId() 
    {
        return applicantId;
    }

    public void setApplicantName(String applicantName) 
    {
        this.applicantName = applicantName;
    }

    public String getApplicantName() 
    {
        return applicantName;
    }

    public void setApplyDeptId(Long applyDeptId) 
    {
        this.applyDeptId = applyDeptId;
    }

    public Long getApplyDeptId() 
    {
        return applyDeptId;
    }

    public void setApplyDeptName(String applyDeptName) 
    {
        this.applyDeptName = applyDeptName;
    }

    public String getApplyDeptName() 
    {
        return applyDeptName;
    }

    public void setReceiveWarehouseId(Long receiveWarehouseId) 
    {
        this.receiveWarehouseId = receiveWarehouseId;
    }

    public Long getReceiveWarehouseId() 
    {
        return receiveWarehouseId;
    }

    public void setReceiveWarehouseCode(String receiveWarehouseCode) 
    {
        this.receiveWarehouseCode = receiveWarehouseCode;
    }

    public String getReceiveWarehouseCode() 
    {
        return receiveWarehouseCode;
    }

    public void setReceiveWarehouseName(String receiveWarehouseName) 
    {
        this.receiveWarehouseName = receiveWarehouseName;
    }

    public String getReceiveWarehouseName() 
    {
        return receiveWarehouseName;
    }

    public void setConfirmUserId(Long confirmUserId) 
    {
        this.confirmUserId = confirmUserId;
    }

    public Long getConfirmUserId() 
    {
        return confirmUserId;
    }

    public void setConfirmUserName(String confirmUserName) 
    {
        this.confirmUserName = confirmUserName;
    }

    public String getConfirmUserName() 
    {
        return confirmUserName;
    }

    public void setConfirmTime(Date confirmTime) 
    {
        this.confirmTime = confirmTime;
    }

    public Date getConfirmTime() 
    {
        return confirmTime;
    }

    public void setOrderStatus(String orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() 
    {
        return orderStatus;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public List<AmsReturnOrderItem> getAmsReturnOrderItemList()
    {
        return amsReturnOrderItemList;
    }

    public void setAmsReturnOrderItemList(List<AmsReturnOrderItem> amsReturnOrderItemList)
    {
        this.amsReturnOrderItemList = amsReturnOrderItemList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("returnNo", getReturnNo())
            .append("applicantId", getApplicantId())
            .append("applicantName", getApplicantName())
            .append("applyDeptId", getApplyDeptId())
            .append("applyDeptName", getApplyDeptName())
            .append("receiveWarehouseId", getReceiveWarehouseId())
            .append("receiveWarehouseCode", getReceiveWarehouseCode())
            .append("receiveWarehouseName", getReceiveWarehouseName())
            .append("confirmUserId", getConfirmUserId())
            .append("confirmUserName", getConfirmUserName())
            .append("confirmTime", getConfirmTime())
            .append("orderStatus", getOrderStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .append("amsReturnOrderItemList", getAmsReturnOrderItemList())
            .toString();
    }
}
