最近做项目在做到工单处理的时候,工单的流水号需要自动产生,找了好多方法,都有点麻烦,并且并发性都难以控制,工单号的格式要求是:单的标识+年月日+当日流水号(如:No.20080808001,No.20080808002),前面的都好处理,关键就是处理当日流水号的问题,用户一点创建单马上就要出现单号,所以自己想了种比较简单的方法来实现每天流水号的产生,产生流水号的方法很简单,但是也没有很好的并发性处理,创建时使用的单号很可能已经别别人抢先使用了,所以我在保存单的时候再做一次检查,如果单号已经别使用那么就重新生成一个单号,保存完成后将这个单号返回给用户,这样就基本几解决了工单号的产生问题了
表格如下:
表名(Bill)
字段名称 | 字段意义 |
---|---|
Id | 标识 |
No | 流水号 |
Title | 工单标题 |
CreateTime | 建单时间 |
为了简单又能说明问题,就这么多字段,那么我要每次增加一张单的时候怎么让No按照当天的流水号自动加1呢?
可以在SQL里自定义一个函数,然后再插入数据的时候来调用这个函数就可以了
/**//*
**************************************
功能:产生当天工单的流水号
参数:@pfx 前缀表示,如:A ,AA, BA
结果:返回如:A080721001,A080721002