快捷搜索:
来自 计算机编程 2019-08-17 19:45 的文章
当前位置: 67677新澳门手机版 > 计算机编程 > 正文

生成流水号,订单流水号的扭转

END;

互连网还大概有创建贮存流水号的表,用存款和储蓄进度生成流水号

/// <summary>
/// 生成订单号码
/// 生成法规yyyyMMdd 贰位数字
/// </summary>
/// <returns></returns>
public static string GetOrderCode(string code)
{
if (string.IsNullOrWhiteSpace(code)) return string.Format("{0}{1}", DateTime.Now.ToString("yyyyMMdd"), "0001");
if (code.TrimEnd().Length <= 11 || code.TrimEnd().Length >= 13) return "当前编码规则不得法!";
if (code.Substring(0, 8) == DateTime.Now.ToString("yyyyMMdd").TrimEnd())
{
if (Convert.ToInt32(code.Substring(9, 4)) >= 9999) return "当前编码准绳已最大值,联系助理馆员扩充存款和储蓄体量!";
return string.Format("{0}{1}", code.Substring(0, 8), (Convert.ToInt32(code.Substring(9, 4)) 1).ToString());
}
else
return string.Format("{0}{1}", DateTime.Now.ToString("yyyyMMdd"), "0001");
}

Oracle sql:
select nvl(max(serialnumber),0) as maxSerialNumber from tb

ELSE

       /// <summary>
        /// 生成充钱流水号格式:8位日期加8位顺序号,如二〇〇八030贰仟00056。
        /// </summary>
        public string GetSerialNumber(string serialNumber)
        {
            if (serialNumber != "0")
            {
                string headDate = serialNumber.Substring(0, 8);
                int lastNumber = int.Parse(serialNumber.Substring(8));
                //即使数据库最大值流水号中国和日本期和生成日期在当天,则顺序号加1
                if (headDate == DateTime.Now.ToString("yyyyMMdd"))
                {
                    lastNumber ;
                    return headDate lastNumber.ToString("00000000");
                }
            }
            return DateTime.Now.ToString("yyyyMMdd") "00000001";
        }

dbms_output.put_line(CV_1);

流水号由8位日期加8位顺序号组成,如二零零六030300000056。
先从数据库中取中最大的流水号,和此时要扭转的日子相比是还是不是在当天,是则顺序号加1,不然重新以此时日期生成流水号

END IF;

  下边,大家来简单的举二种艺术来生成订单流水号的独一性:

  目前在做项目进程中,日常会境遇生成订单流水号独一性的采取,也是有广丹东事也请教作者对独一性的 "流水号"的标题,依据个人所见,一般生成的条条框框都以基于日期来举行操作,笔者前段时间在做的贰个品种:”报告卡“上的编码正是依附”yyyyMMdd 三个人数字(累加)“的格式生成,一般对这一类的操作最佳是在仓库储存进程中变化。

至于调用存款和储蓄进程自个儿那边就不举例子了,微软有特意提供访谈数据层中留存调用 ”存款和储蓄进程“的主意。

}

AS INT) 1

BEGIN

IF substr(V_CURRENTCODE,8) = to_char(sysdate,'yyyymmdd') THEN

{

FROM [表名]

SELECT DISTINCT(to_char(sysdate,'yyyymmdd')|| '0001') as [编码字段名] into CV_1 from dual ;

CV_1 OUT NVARCHAR2

只需调用静态方法就可以回到编码。

Create Or Replace Procedure MyProcedure

本文由67677新澳门手机版发布于计算机编程,转载请注明出处:生成流水号,订单流水号的扭转

关键词: