Beispiel #1
0
        /// <summary>
        /// 生成打印 POS流水单号 等编号等
        /// </summary>
        /// <returns></returns>
        public static long ExtendGenerate(SerialType serialType)
        {
            TypePrefix typePrefix = SerialTypeHelper.GetSerialTypeAndPrefix(serialType);

            SerialCache gen = SerialCache.GetInstance();

            return(gen.CreateID(typePrefix.Type));
        }
Beispiel #2
0
        /// <summary>
        /// 生产指定长度的单号
        /// </summary>
        /// <param name="serialType"></param>
        /// <param name="pkLength">序列号总长度</param>
        /// <returns></returns>
        public static string Generate(SerialType serialType, int length)
        {
            TypePrefix typePrefix = SerialTypeHelper.GetSerialTypeAndPrefix(serialType);

            if (typePrefix.IsRandom)
            {
                return(RandomSerial.CreateID(length));
            }

            SerialCache cache = SerialCache.GetInstance();

            return(cache.CreateID(typePrefix.Type, length));
        }
Beispiel #3
0
        /// <summary>
        /// 生产单号
        /// </summary>
        /// <param name="serialType">默认长度10位</param>
        /// <returns></returns>
        public static string Generate(SerialType serialType)
        {
            TypePrefix typePrefix = SerialTypeHelper.GetSerialTypeAndPrefix(serialType);

            if (typePrefix.IsRandom)
            {
                return(RandomSerial.CreateID(DefualtLength));
            }

            SerialCache cache = SerialCache.GetInstance();

            //日期5位 编号5位
            return(cache.CreateID(typePrefix.Type, DefualtLength));
        }
        /// <summary>
        /// 序列号缓存
        /// </summary>
        /// <returns></returns>
        public static SerialCache GetInstance()
        {
            if (_instance == null)
            {
                lock (Lock)
                {
                    if (_instance == null)
                    {
                        _instance = new SerialCache();

                        Thread.MemoryBarrier();
                    }
                }
            }

            return(_instance);
        }