Example #1
0
 public void Save(FormatSerialNo fs)
 {
     session.SaveOrUpdate(fs);
     session.Flush();
 }
Example #2
0
        /// <summary>
        /// 获取序列号
        /// </summary>
        /// <param name="flag"></param>
        /// <param name="includeDay"></param>
        /// <returns></returns>
        public string GetSerialNo(string flag, bool includeDay)
        {
            string serialNo = string.Empty;

            IList<FormatSerialNo> flagNos = idalFS.GetSerialNoList(flag);
            FormatSerialNo format = new FormatSerialNo();
            DateTime now = DateTime.Now;
            if (flagNos.Count == 0)
            {

                format.Day = EnsureFormatItemLength(2, now.Day);
                format.Flag = flag;
                format.Month = EnsureFormatItemLength(2, now.Month);
                format.Year = EnsureFormatItemLength(2, now.Year);
                format.Value = EnsureFormatItemLength(4, 1);
                serialNo = format.ToString();
                idalFS.Save(format);

            }
            else if (flagNos.Count == 1)
            {
                format = flagNos[0];
                int year = int.Parse(format.Year);
                int month = int.Parse(format.Month);
                int day = int.Parse(format.Day);
                int value = int.Parse(format.Value);
                if (now.Year % 100 > year)
                {
                    month = 1;
                    day = 1;
                    value = 1;

                }
                else if (now.Year % 100 == year)
                {
                    if (now.Month > month)
                    {

                        day = 1;
                        value = 1;
                    }
                    else if (now.Month == month)
                    {
                        if (now.Day > day)
                        {
                            value = 1;
                        }
                        else if (now.Day == day)
                        {
                            value = value + 1;
                        }
                        else
                        {
                            throw new Exception("日期错误,请检查电脑的时间设置");
                        }
                    }
                    else
                    {
                        throw new Exception("月份错误,请检查电脑的时间设置");
                    }
                }
                else
                {
                    throw new ArgumentException("年份错误,请检查电脑的时间设置","Date");
                }

                format.Day = EnsureFormatItemLength(2, now.Day);
                format.Month = EnsureFormatItemLength(2, now.Month);
                format.Year = EnsureFormatItemLength(2, now.Year);
                format.Value = EnsureFormatItemLength(4, value);
                serialNo = format.ToString();
                idalFS.Save(format);
            }
            else
            {
                throw new ArgumentException("流水号生成错误:出现" + flagNos.Count + "个相同的Flag");
            }
            return serialNo;
        }