C#発注番号の作成

1530 ワード

シーン:作成された注文番号には固定の接頭辞があり、中級は年月日、接尾辞は流水の3桁で、「VD 20190802001」のように、ニーズが異なる場合は少し修正して実現することができます.
        // , 
        private static readonly object SequenceLock = new object();
   
        /// 
        ///  
        /// 
        ///  
        ///  
        /// 
        public static string GetNewOrderNO(string preString,string tableName)
        {
            lock(SequenceLock)
            {
                string result = "";
                string sql = string.Format(@"Select max(ID) from {0}", tableName);
              // 
                string curid = Pub_DB.OracleDataAccess.ExecuteScalar(ConnfigSetting.GetShipUserConStr(), sql).ToString();
                if (string.IsNullOrEmpty(curid))
                {
                    curid = preString + DateTime.Now.ToString("yyyyMMdd") + "000";
                }
                string maxid = curid.Substring(curid.Length - 3, 3);
                string maxdate = curid.Substring(preString.Length, 8);
                if (DateTime.Now.ToString("yyyyMMdd") == maxdate)
                {
                    result = preString + maxdate + (Convert.ToInt16(maxid) + 1).ToString("000");
                }
                else
                {
                    result = preString + DateTime.Now.ToString("yyyyMMdd") + "001";
                }
                return result;
            }
        }