自动生成流水号

自动生成流水号

开发工具与关键技术:VS2015、JS
作者:易金亮
撰写时间:2019.07.27

在项目的研发中,经常会遇到自动生成卡号或者流水号这样的需求,其实卡号、流水号等这些号码我们在生活中也能经常遇到,比如我们在网上买个东西,它就会有订单号,学校食堂办饭卡每张卡也有唯一的卡号,去医院看病就会有流水号等,既然这个东西应用这么广泛,那这些有固定格式的号码又是怎么生成的呢?我最近在做的一个项目中也有这样的需求,它需要自动生成卡号及流水号,下面我就来说说我是如何完成的,首先我们先来看一张截图如下所示:
自动生成流水号_第1张图片
如上截图所示,这就是自动生成的一个流水号,它有固定的格式,前面两位是固定的字母,因为这是医院的一个门诊挂号页面,所以开头两位我给了“MZ”,这代表这是一个门诊的流水号,中间八位数字代表的是当天的日期,最后四位就是用来确保唯一性的,当我们点击流水号后面的文本框时它就会自动出现这样一个流水号,而不需要我们自己输入,看完效果,接下来我就来说说这个效果是如何实现的,首先我们要在控制器写一个方法,其代码如下所示:

/// 
        /// 2.0 自动生成流水号
        /// 
        /// 
        public ActionResult ABC()
        {
            string prefix = "MZ";
            string date = DateTime.Now.ToString("yyyyMMdd");
            int num = 1;
            string result = prefix + date + num.ToString().PadLeft(4, '0');
            return Json(result, JsonRequestBehavior.AllowGet);
        }

如上代码所示,这就是在控制器写的一个自动生成流水号的方法,我们给前两位数固定值为“MZ”,然后获取当天的日期,后面PadLeft是返回一个新字符串,该字符串通过在此实例中的字符左侧填充指定的 Unicode 字符来达到指定的总长度,从而使这些字符右对齐,其第一个参数4代表的是结果字符串中的字符数,等于原始字符数加上任何其他填充字符,第二个参数‘0’代表的是填充字符,如上代码所示,我们给的原始字符为1,而结果字符串中的字符数为4,所以还需要填充三位数,所以用第二个参数0来填充,于是填充好的结果字符串就是“0001”,在加上前面的固定字符“MZ”以及当天日期一个固定格式的流水号“MZ201907270001”就出来了,接下来在去视图中写一个点击事件,其代码如下所示:

//自动生成流水号点击事件
        $("#SerialNumber").click(function () {
            $.get("/MenZhenGuaHao/Three/ABC", function (data) {
                $("#SerialNumber").val(data);
            });
        });

如上代码所示,我们获取到那个文本框的ID,然后给它一个点击事件,然后跳转到控制器去执行那个生成流水号的方法,最后返回一个流水号,并且把它回填到那个文本框,就这样,当我们点击那个文本框时就会自动生成流水号了。

你可能感兴趣的:(自动生成流水号)