using System.ComponentModel;
namespace WIDESEA_Core.Enums
{
    /// 
    /// 启禁状态
    /// 
    public enum EnableEnum
    {
        /// 
        /// 全部
        /// 
        [Description("全部")]
        All = -1,
        /// 
        /// 禁用
        /// 
        [Description("禁用")]
        Disable = 0,
        /// 
        /// 启用
        /// 
        [Description("启用")]
        Enable = 1,
    }
    /// 
    /// 货位状态
    /// 
    public enum LocationEnum
    {
        /// 
        /// 全部
        /// 
        [Description("全部")]
        All = -1,
        /// 
        /// 空闲
        /// 
        [Description("空闲")]
        Free = 0,
        /// 
        /// 锁定
        /// 
        [Description("锁定")]
        Lock = 1,
        /// 
        /// 有货
        /// 
        [Description("有货")]
        InStock = 2,
        /// 
        /// 有货禁用
        /// 
        [Description("有货禁用")]
        InStockDisable = 3,
        /// 
        /// 无货禁用
        /// 
        [Description("无货禁用")]
        FreeDisable = 4,
        /// 
        /// 预分配
        /// 
        [Description("预分配")]
        Distribute = 5,
    }
    public enum LocationState
    {
        /// 
        /// 允许
        /// 
        [Description("允许")]
        Allow = 1,
        /// 
        /// 不允许
        /// 
        [Description("不允许")]
        NotAllow = 2
    }
    public enum LocationType
    {
        /// 
        /// 单深货位
        /// 
        [Description("单深货位")]
        Single = 1,
        /// 
        /// 双深货位
        /// 
        [Description("双深货位")]
        Double = 2
    }
    #region 任务类型
    /// 
    /// 任务类型
    /// 
    public enum TaskInboundTypeEnum
    {
        /// 
        /// 入库
        /// 
        [Description("入库")]
        Inbound = 200,
        /// 
        /// 盘点入库
        /// 
        [Description("盘点入库")]
        InInventory = 201,
        /// 
        /// 分拣入库
        /// 
        [Description("分拣入库")]
        InPick = 202,
        /// 
        /// 质检入库
        /// 
        [Description("质检入库")]
        InQuality = 203,
        /// 
        /// 空托盘入库
        /// 
        [Description("空托盘入库")]
        InTray = 204,
        /// 
        /// NG入库
        /// 
        [Description("NG入库")]
        InNG = 205,
    }
    public enum TaskOutboundTypeEnum
    {
        /// 
        /// 出库
        /// 
        [Description("出库")]
        Outbound = 100,
        /// 
        /// 盘点出库
        /// 
        [Description("盘点出库")]
        OutInventory = 101,
        /// 
        /// 分拣出库
        /// 
        [Description("分拣出库")]
        OutPick = 102,
        /// 
        /// 质检出库
        /// 
        [Description("质检出库")]
        OutQuality = 103,
        /// 
        /// 空托盘出库
        /// 
        [Description("空托盘出库")]
        OutTray = 104,
        /// 
        /// NG出库
        /// 
        [Description("NG出库")]
        OutNG = 105,
        /// 
        /// 直接出库
        /// 
        [Description("直接出库")]
        InToOut = 106,
    }
    public enum TaskRelocationTypeEnum
    {
        /// 
        /// 库内移库
        /// 
        [Description("库内移库")]
        Relocation = 300,
        /// 
        /// 库外移库
        /// 
        [Description("库外移库")]
        RelocationIn = 301
    }
    public enum TaskOtherTypeEnum
    {
    }
    public enum TaskTypeEnum
    {
        /// 
        /// 出库 =100
        /// 
        [Description("出库")]
        Outbound = 100,
        /// 
        /// 盘点出库
        /// 
        [Description("出库")]
        OutInventory = 101,
        /// 
        /// 分拣出库
        /// 
        [Description("出库")]
        OutPick = 102,
        /// 
        /// 质检出库
        /// 
        [Description("出库")]
        OutQuality = 103,
        /// 
        /// 入库
        /// 
        [Description("出库")]
        Inbound = 200,
        /// 
        /// 盘点入库
        /// 
        InInventory = 201,
        /// 
        /// 分拣入库
        /// 
        InPick = 202,
        /// 
        /// 质检入库
        /// 
        InQuality = 203,
        /// 
        /// 移库
        /// 
        Relocation = 300,
        /// 
        /// 库内移库
        /// 
        RelocationIn = 301,
        /// 
        /// 库外移库
        /// 
        RelocationOut = 302
    }
    #endregion 任务类型
    #region 入库任务状态
    /// 
    /// 入库任务状态 200 新建入库任务 ,   210 AGV入库执行中,  215 AGV入库完成,  220输送线入库执行中, 225 输送线入库完成,  230 堆垛机入库执行中, 235 堆垛机入库完成,290 入库任务取消,298 入库任务完成,299 入库任务异常,300 新建移库库任务
    /// 
    public enum TaskInStatusEnum
    {
        /// 
        /// 新建入库任务
        /// 
        [Description("新建入库任务")]
        InNew = 200,
        ///// 
        ///// AGV入库执行中
        ///// 
        //[Description("AGV入库执行中")]
        //AGV_InExecuting = 210,
        ///// 
        ///// AGV入库完成
        ///// 
        //[Description("AGV搬运完成")]
        //AGV_InFinish = 215,
        /// 
        /// 输送线入库执行中
        /// 
        [Description("输送线入库执行中")]
        Line_InExecuting = 220,
        /// 
        /// 输送线入库完成
        /// 
        [Description("输送线输送完成")]
        Line_InFinish = 225,
        /// 
        /// 堆垛机入库执行中
        /// 
        [Description("堆垛机入库执行中")]
        SC_InExecuting = 230,
        /// 
        /// 堆垛机入库完成
        /// 
        [Description("堆垛机入库完成")]
        SC_InFinish = 235,
        /// 
        /// 入库任务完成
        /// 
        [Description("入库任务完成")]
        InFinish = 290,
        /// 
        /// 入库任务挂起
        /// 
        [Description("入库任务挂起")]
        InPending = 297,
        /// 
        /// 入库任务取消
        /// 
        [Description("入库任务取消")]
        InCancel = 298,
        /// 
        /// 入库任务异常
        /// 
        [Description("入库任务异常")]
        InException = 299,
    }
    #endregion 入库任务状态
    /// 
    /// 出库任务状态 100 新建出库任务,   110 AGV出库执行中,  115 AGV出库完成,  120输送线出库执行中, 125 输送线出库完成,  130 堆垛机出库执行中, 135 堆垛机出库完成,190 出库任务取消,198 出库任务完成,199 出库任务异常
    /// 
    public enum TaskOutStatusEnum
    {
        /// 
        /// 新建出库任务
        /// 
        [Description("新建出库任务")]
        OutNew = 100,
        /// 
        /// 堆垛机出库执行中
        /// 
        [Description("堆垛机出库执行中")]
        SC_OutExecuting = 110,
        /// 
        /// 堆垛机出库完成
        /// 
        [Description("堆垛机出库完成")]
        SC_OutFinish = 115,
        /// 
        /// 输送线出库执行中
        /// 
        [Description("输送线出库执行中")]
        Line_OutExecuting = 120,
        /// 
        /// 输送线出库完成
        /// 
        [Description("输送线输送完成")]
        Line_OutFinish = 125,
        ///// 
        ///// AGV出库执行中
        ///// 
        //[Description("AGV出库执行中")]
        //AGV_OutExecuting = 130,
        ///// 
        ///// AGV出库完成
        ///// 
        //[Description("AGV搬运完成")]
        //AGV_OutFinish = 135,
        /// 
        /// 出库任务完成
        /// 
        [Description("出库任务完成")]
        OutFinish = 190,
        /// 
        /// 出库任务挂起
        /// 
        [Description("出库任务挂起")]
        OutPending = 197,
        /// 
        /// 出库任务取消
        /// 
        [Description("出库任务取消")]
        OutCancel = 198,
        /// 
        /// 出库任务异常
        /// 
        [Description("出库任务异常")]
        OutException = 199,
    }
    /// 
    /// 入库单类型 100 生产入库单;200 生产退料单;300 采购入库单;400 调拨入库单;500 销售退货单;600 空盘入库单;700 其他入库单
    /// 
    public enum InOrderTypeEnum
    {
        /// 
        /// 生产入库单
        /// 
        Product = 100,
        /// 
        /// 生产退料单
        /// 
        Return = 200,
        /// 
        /// 采购入库单
        /// 
        Purchase = 300,
        /// 
        /// 调拨入库单
        /// 
        Allocat = 400,
        /// 
        /// 销售退货单
        /// 
        SaleReturn = 500,
        /// 
        /// 空盘入库单
        /// 
        EmptyDisk = 600,
        /// 
        /// 其他入库单
        /// 
        Other = 700
    }
    /// 
    /// 出库单类型
    /// 
    public enum OutOrderTypeEnum
    {
        /// 
        /// 生产返工单
        /// 
        Rework = 100,
        /// 
        /// 生产发料单
        /// 
        Issue = 200,
        /// 
        /// 采购退货单
        /// 
        ProcureReturn = 300,
        /// 
        /// 调拨出库单
        /// 
        Allocate = 400,
        /// 
        /// 销售出库单
        /// 
        SaleOut = 500,
        /// 
        /// 空盘出库单
        /// 
        EmptyDisk = 600,
        /// 
        /// 质检出库单
        /// 
        Quality = 700,
        /// 
        /// 其他出库单
        /// 
        Other = 800
    }
    #region 原始单据同步状态
    /// 
    /// 同步标志 0:未同步 1:同步成功  2:同步失败
    /// 
    public enum SynchronizationFlagEmun
    {
        未同步 = 0,
        同步成功 = 1,
        同步失败 = 2
    }
    #endregion 原始单据同步状态
    #region 入库单据状态
    /// 
    /// 入库单据状态 0,未开始  1,入库中  2,入库完成
    /// 
    public enum InboundStateEmun
    {
        未开始 = 0,
        入库中 = 1,
        入库完成 = 2
    }
    #endregion 入库单据状态
    #region 组盘类型
    /// 
    /// 组盘类型  1:一次组盘  2:多次组盘
    /// 
    public enum GroupTypeEmun
    {
        一次组盘 = 1,
        多次组盘 = 2
    }
    #endregion 组盘类型
    #region 库存状态
    /// 
    /// 库存状态: 1,组盘暂存  2,组盘撤销  3,入库确认 4,入库撤销   5,已入库  6,已出库
    /// 
    public enum StockStateEmun
    {
        组盘暂存 = 1,
        组盘撤销 = 2,
        入库确认 = 3,
        入库撤销 = 4,
        已入库 = 5,
        入库完成 = 6,
        出库锁定 = 7,
        出库完成 = 8,
    }
    #endregion 库存状态
    public enum OperateTypeEnum
    {
        人工删除 = 1,
        自动删除 = 2,
        人工恢复 = 3,
        自动恢复 = 4,
        人工完成 = 5,
        自动完成 = 6,
    }
}