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_inventory_task
 *
 * @author Yangk
 * @date 2026-06-18
 */
public class AmsInventoryTask extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 任务ID */
    private Long taskId;

    /** 盘点任务号 */
    @Excel(name = "盘点任务号")
    private String taskNo;

    /** 盘点范围类型 */
    @Excel(name = "盘点范围类型", dictType = "ams_inventory_scope_type")
    private String scopeType;

    /** 范围仓库ID */
    @Excel(name = "范围仓库ID")
    private Long warehouseId;

    /** 范围仓库编码快照 */
    @Excel(name = "范围仓库编码快照")
    private String warehouseCode;

    /** 范围仓库名称快照 */
    @Excel(name = "范围仓库名称快照")
    private String warehouseName;

    /** 范围位置ID */
    @Excel(name = "范围位置ID")
    private Long locationId;

    /** 范围位置编码快照 */
    @Excel(name = "范围位置编码快照")
    private String locationCode;

    /** 范围位置名称快照 */
    @Excel(name = "范围位置名称快照")
    private String locationName;

    /** 范围类别ID */
    @Excel(name = "范围类别ID")
    private Long categoryId;

    /** 范围类别编码快照 */
    @Excel(name = "范围类别编码快照")
    private String categoryCode;

    /** 范围类别名称快照 */
    @Excel(name = "范围类别名称快照")
    private String categoryName;

    /** 负责人ID */
    @Excel(name = "负责人ID")
    private Long ownerUserId;

    /** 负责人名称快照 */
    @Excel(name = "负责人名称快照")
    private String ownerUserName;

    /** 任务状态 */
    @Excel(name = "任务状态", dictType = "ams_inventory_task_status")
    private String taskStatus;

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

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

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

    /** 盘点任务明细信息 */
    private List<AmsInventoryTaskItem> amsInventoryTaskItemList;

    /** 盘点任务盘盈明细信息 */
    private List<AmsInventoryTaskSurplus> amsInventoryTaskSurplusList;

    public void setTaskId(Long taskId)
    {
        this.taskId = taskId;
    }

    public Long getTaskId()
    {
        return taskId;
    }

    public void setTaskNo(String taskNo)
    {
        this.taskNo = taskNo;
    }

    public String getTaskNo()
    {
        return taskNo;
    }

    public void setScopeType(String scopeType)
    {
        this.scopeType = scopeType;
    }

    public String getScopeType()
    {
        return scopeType;
    }

    public void setWarehouseId(Long warehouseId)
    {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId()
    {
        return warehouseId;
    }

    public void setWarehouseCode(String warehouseCode)
    {
        this.warehouseCode = warehouseCode;
    }

    public String getWarehouseCode()
    {
        return warehouseCode;
    }

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

    public String getWarehouseName()
    {
        return warehouseName;
    }

    public void setLocationId(Long locationId)
    {
        this.locationId = locationId;
    }

    public Long getLocationId()
    {
        return locationId;
    }

    public void setLocationCode(String locationCode)
    {
        this.locationCode = locationCode;
    }

    public String getLocationCode()
    {
        return locationCode;
    }

    public void setLocationName(String locationName)
    {
        this.locationName = locationName;
    }

    public String getLocationName()
    {
        return locationName;
    }

    public void setCategoryId(Long categoryId)
    {
        this.categoryId = categoryId;
    }

    public Long getCategoryId()
    {
        return categoryId;
    }

    public void setCategoryCode(String categoryCode)
    {
        this.categoryCode = categoryCode;
    }

    public String getCategoryCode()
    {
        return categoryCode;
    }

    public void setCategoryName(String categoryName)
    {
        this.categoryName = categoryName;
    }

    public String getCategoryName()
    {
        return categoryName;
    }

    public void setOwnerUserId(Long ownerUserId)
    {
        this.ownerUserId = ownerUserId;
    }

    public Long getOwnerUserId()
    {
        return ownerUserId;
    }

    public void setOwnerUserName(String ownerUserName)
    {
        this.ownerUserName = ownerUserName;
    }

    public String getOwnerUserName()
    {
        return ownerUserName;
    }

    public void setTaskStatus(String taskStatus)
    {
        this.taskStatus = taskStatus;
    }

    public String getTaskStatus()
    {
        return taskStatus;
    }

    public void setIssueTime(Date issueTime)
    {
        this.issueTime = issueTime;
    }

    public Date getIssueTime()
    {
        return issueTime;
    }

    public void setFinishTime(Date finishTime)
    {
        this.finishTime = finishTime;
    }

    public Date getFinishTime()
    {
        return finishTime;
    }

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

    public String getDelFlag()
    {
        return delFlag;
    }

    public List<AmsInventoryTaskItem> getAmsInventoryTaskItemList()
    {
        return amsInventoryTaskItemList;
    }

    public void setAmsInventoryTaskItemList(List<AmsInventoryTaskItem> amsInventoryTaskItemList)
    {
        this.amsInventoryTaskItemList = amsInventoryTaskItemList;
    }

    public List<AmsInventoryTaskSurplus> getAmsInventoryTaskSurplusList()
    {
        return amsInventoryTaskSurplusList;
    }

    public void setAmsInventoryTaskSurplusList(List<AmsInventoryTaskSurplus> amsInventoryTaskSurplusList)
    {
        this.amsInventoryTaskSurplusList = amsInventoryTaskSurplusList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("taskId", getTaskId())
            .append("taskNo", getTaskNo())
            .append("scopeType", getScopeType())
            .append("warehouseId", getWarehouseId())
            .append("warehouseCode", getWarehouseCode())
            .append("warehouseName", getWarehouseName())
            .append("locationId", getLocationId())
            .append("locationCode", getLocationCode())
            .append("locationName", getLocationName())
            .append("categoryId", getCategoryId())
            .append("categoryCode", getCategoryCode())
            .append("categoryName", getCategoryName())
            .append("ownerUserId", getOwnerUserId())
            .append("ownerUserName", getOwnerUserName())
            .append("taskStatus", getTaskStatus())
            .append("issueTime", getIssueTime())
            .append("finishTime", getFinishTime())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .append("amsInventoryTaskItemList", getAmsInventoryTaskItemList())
            .append("amsInventoryTaskSurplusList", getAmsInventoryTaskSurplusList())
            .toString();
    }
}
