package com.zg.project.Inventory.domain.entity;

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;

/**
 * 盘点任务对象 inventory_task
 *
 * @author zg
 * @date 2025-06-16
 */
public class InventoryTask extends BaseEntity {
    private static final long serialVersionUID = 1L;

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

    /** 任务名称 */
    @Excel(name = "任务名称")
    private String taskName;

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

    /** 场景ID */
    @Excel(name = "场景ID")
    private String sceneId;

    /** 执行人用户ID */
    @Excel(name = "执行人用户ID")
    private Long userId;

    /** 要求完成时间 */
    @Excel(name = "要求完成时间")
    private String requireTime;

    /** 任务状态（0待执行，1已完成，2已超时） */
    @Excel(name = "任务状态", readConverterExp = "0=待执行，1已完成，2已超时")
    private String status;

    /** 任务类型（0手持盘点，1自动盘点） */
    @Excel(name = "任务类型", readConverterExp = "0=手持盘点，1自动盘点")
    private String taskType;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 创建时间 */
    @Excel(name = "创建时间")
    private String createdAt;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updatedBy;

    /** 修改时间 */
    @Excel(name = "修改时间")
    private String updatedAt;

    /** 逻辑删除标志（0正常 1删除） */
    @Excel(name = "逻辑删除标志", readConverterExp = "0=正常,1=删除")
    private String isDelete;

    /** 执行人姓名（扩展字段） */
    private String userName;

    /** 仓库名称（扩展字段） */
    private String warehouseName;

    /** 场景名称（扩展字段） */
    private String sceneName;

    // ---------- getter/setter ----------

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

    public String getTaskName() { return taskName; }
    public void setTaskName(String taskName) { this.taskName = taskName; }

    public String getWarehouseId() { return warehouseId; }
    public void setWarehouseId(String warehouseId) { this.warehouseId = warehouseId; }

    public String getSceneId() { return sceneId; }
    public void setSceneId(String sceneId) { this.sceneId = sceneId; }

    public Long getUserId() { return userId; }
    public void setUserId(Long userId) { this.userId = userId; }

    public String getRequireTime() { return requireTime; }
    public void setRequireTime(String requireTime) { this.requireTime = requireTime; }

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

    public String getTaskType() { return taskType; }
    public void setTaskType(String taskType) { this.taskType = taskType; }

    public String getCreatedBy() { return createdBy; }
    public void setCreatedBy(String createdBy) { this.createdBy = createdBy; }

    public String getCreatedAt() { return createdAt; }
    public void setCreatedAt(String createdAt) { this.createdAt = createdAt; }

    public String getUpdatedBy() { return updatedBy; }
    public void setUpdatedBy(String updatedBy) { this.updatedBy = updatedBy; }

    public String getUpdatedAt() { return updatedAt; }
    public void setUpdatedAt(String updatedAt) { this.updatedAt = updatedAt; }

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

    public String getUserName() { return userName; }
    public void setUserName(String userName) { this.userName = userName; }

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

    public String getSceneName() { return sceneName; }
    public void setSceneName(String sceneName) { this.sceneName = sceneName; }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("taskName", getTaskName())
                .append("warehouseId", getWarehouseId())
                .append("warehouseName", getWarehouseName())
                .append("sceneId", getSceneId())
                .append("sceneName", getSceneName())
                .append("userId", getUserId())
                .append("userName", getUserName())
                .append("requireTime", getRequireTime())
                .append("status", getStatus())
                .append("taskType", getTaskType())
                .append("remark", getRemark())
                .append("createdBy", getCreatedBy())
                .append("createdAt", getCreatedAt())
                .append("updatedBy", getUpdatedBy())
                .append("updatedAt", getUpdatedAt())
                .append("isDelete", getIsDelete())
                .toString();
    }
}
