package com.shkj.wms.domain;

import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.shkj.common.annotation.Excel;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 任务管理对象 busin_task
 *
 * @author zjx
 * @date 2023-04-07
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("busin_data_task")
public class BusinDataTask implements Serializable {

    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 任务编号 */
    @Excel(name = "任务编号")
    private String taskCode;

    /** 状态 0 未下发 1 执行中  2已完成   3已取消 -1异常 */
    @Excel(name = "状态 0 未下发 1 执行中  2已完成   3已取消 -1异常")
    private String taskStatus;

    /** 任务类型 0 正常入库 1维修异常 2扫码异常  3入库冲孔 4 正常出库 5紧急出库 6越库出库 7手工入库 8呼叫空治具 9移库 */
    @Excel(name = "任务类型 0 正常入库 1维修异常 2扫码异常  3入库冲孔 4 正常出库 5紧急出库 6越库出库 7手工入库 8呼叫空治具 9移库")
    private String taskType;

    /** 异常信息 */
    @Excel(name = "异常信息")
    private String exceptionMsg;

    /**  任务路径 */
    @Excel(name = " 任务路径")
    private String taskPath;

    /** 批次信息 以天为单位 日期+流水？ */
    @Excel(name = "批次信息 以天为单位 日期+流水？")
    private String batch;

    /** 是否是紧急任务 */
    @Excel(name = "是否是紧急任务")
    private String isUrgent;

    /** 是否是置顶 */
    @Excel(name = "是否是置顶")
    private String isTop;

    /** 任务优先级 */
    @Excel(name = "任务优先级")
    private String priority;

    /** 出行 */
    @Excel(name = "出行")
    private String fromRow;

    /** 出高 */
    @Excel(name = "出高")
    private String fromColumn;

    /** 出列 */
    @Excel(name = "出列")
    private String fromLayer;

    /** 出边 */
    @Excel(name = "出边")
    private String fromSide;

    /** 入行 */
    @Excel(name = "入行")
    private String toRow;

    /** 入高 */
    @Excel(name = "入高")
    private String toColumn;

    /** 入列 */
    @Excel(name = "入列")
    private String toLayer;

    /** 入边 */
    @Excel(name = "入边")
    private String toSide;

    /** 巷道 */
    @Excel(name = "巷道")
    private String tunnel;

    /** 设备编号 */
    @Excel(name = "设备编号")
    private Long devId;


    /** 任务开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+7")
    @Excel(name = "任务开始时间", width = 30)
    private Date taskStarttime;

    /** 任务结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+7")
    @Excel(name = "任务结束时间", width = 30)
    private Date taskEntime;

    /** plcId */
    @Excel(name = "plcId")
    private Long plcId;

    /** AGV编号 */
    @Excel(name = "AGV编号")
    private String agvNo;

    /** 冲孔机编号 */
    @Excel(name = "冲孔机编号")
    private String punchNo;

    /** 立库输送线 */
    @Excel(name = "立库输送线")
    private String dpsNoOne;

    /** 立库输送线 */
    @Excel(name = "立库输送线")
    private String dpsNoTwo;

    /** 过点时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+7")
    @Excel(name = "过点时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date traverseDate;

    /** 治具编号 */
    @Excel(name = "治具编号")
    private Long containerId;

    /** 业务单据 */
    @Excel(name = "业务单据")
    private String transId;

    /** 仓库ID */
    @Excel(name = "仓库ID")
    private Long branchId;

    private String remark;

    /**AGV点位 */
    private String points;

    /** AGV形态 */
    private String isDown;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+7")
    private Date createTime;

    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+7")
    private Date updateTime;

}
