ContainerInfo.cs 2.9 KB
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace OnlineStore.DeviceLibrary
{
    /// <summary>
    /// 容器信息
    /// </summary>
    public class ContainerInfo
    {
        public ContainerInfo(string containerCode, ContainerType inOrOut, string slotCode, int deviceId = 0)
        {
            ContainerCode = containerCode;
            this.InOrOutStore = inOrOut;
            this.inoutPar = new InOutParam();
            inoutPar.slotCode = slotCode;
            inoutPar.DeviceId = deviceId;
        }
        public ContainerInfo()
        {
            this.inoutPar = new InOutParam();
        }
        public string ToStr()
        {
            return JsonHelper.SerializeObject(this);
        }
        /// <summary>
        /// 容器编号
        /// </summary>
        public string ContainerCode = "";
        /// <summary>
        /// 容器有效码不带A/B字符
        /// </summary>
        public string ContainerValidCode
        {
            get
            {
                if (ContainerCode.EndsWith("A") || ContainerCode.EndsWith("B"))
                {
                   return ContainerCode.Substring(0, ContainerCode.Length - 1);
                }
                //else if (ContainerCode.StartsWith("C") && ContainerCode.Length == 6)
                //    return ContainerCode;
                else
                    return ContainerCode;
            }
        }
        /// <summary>
        /// 出库还是入库
        /// </summary>
        public ContainerType InOrOutStore { get; set; } = ContainerType.None;
        /// <summary>
        /// 状态
        /// </summary>
        public string Status { get; set; } = TaskStatus.WAIT;
        public string TaskCode { get; set; }
        public void UpdateStatus(string status,string loc="")
        {
            Status = status;
            CurLoc = loc;
            LastUpdateTime = DateTime.Now;
        }
        /// <summary>
        /// 当前位置
        /// </summary>
        public string CurLoc { get; set; } = "";
        public DateTime LastUpdateTime { get; set; } = DateTime.Now;

        private InOutParam inoutPar = null;
        public InOutParam InoutParam
        {
            get
            {
                if (inoutPar == null)
                {
                    inoutPar = new InOutParam();
                }
                return inoutPar;
            }
            set
            {
                this.inoutPar = value;
            }
        }
    }
    /// <summary>
    /// 容器的物料的类型
    /// </summary>
    public enum ContainerType
    {
        /// <summary>
        /// 无操作
        /// </summary>
        None,
        /// <summary>
        /// 入库物料
        /// </summary>
        InStore = 1,

        /// <summary>
        /// 仓储出库物料
        /// </summary>
        OutStore = 2

    }
}