mysql实现表单号:表单编码+时间+表单号
生活随笔
收集整理的這篇文章主要介紹了
mysql实现表单号:表单编码+时间+表单号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景:mysql+mybatis實現表單號;
表單規則為:表單編碼+生成時間+隨機號
例如:xft201911030056
1、新建表:base_coderole和base_codenumber
2、新建函數
CREATE DEFINER = CURRENT_USER PROCEDURE `GetFormCode`(IN codetype varchar(40),OUT ERRNUM VARCHAR(10) character set utf8, OUT ERRMSG VARCHAR(500) character set utf8) BEGINdeclare VARQZ varchar(500) character set utf8;declare INTLENN INT;declare INTMAXN INT;declare VMONTH VARCHAR(500);declare NROWS INT;declare LROWS INT;select count(1) into NROWS FROM base_coderole where vcoderole = codetype ;IF (NROWS = 0) THENset ERRNUM = 1;set ERRMSG = '未配置該類型的表單'; ELSESELECT prefix,nlength INTO VARQZ, INTLENN FROM base_coderole WHERE vcoderole = codetype;select CONCAT(YEAR(CURDATE()),MONTH(CURDATE())) into VMONTH;SELECT COUNT(1) INTO LROWS FROM base_codenumber WHERE Vcodetype = codetype and nmonth = VMONTH FOR UPDATE ;IF (LROWS > 0) THENSELECT maxnum + 1 INTO INTMAXN FROM base_codenumber WHERE Vcodetype = codetype and nmonth = VMONTH;SET ERRNUM =0;SET ERRMSG = CONCAT(CONCAT(VARQZ,VMONTH),right(concat('000000000000',INTMAXN),INTLENN));UPDATE base_codenumber SET maxnum = maxnum + 1 WHERE Vcodetype = codetype and nmonth = VMONTH; ELSEINSERT INTO base_codenumber(Vcodetype,nmonth,maxnum) VALUES(codetype,VMONTH,1);SET ERRNUM =0;SET ERRMSG = CONCAT(CONCAT(VARQZ,VMONTH),right(concat('000000000000',1),INTLENN));END IF; END IF; END3、系統調用
{call GetFormCode(#{codetype ,mode=IN ,jdbcType=VARCHAR},#{ERRNUM ,mode=OUT,jdbcType=VARCHAR},#{ERRMSG ,mode=OUT,jdbcType=VARCHAR})}注意:前臺頁面傳入在base_coderole配置的PXF字段,返回報錯信息或者表單編碼
總結
以上是生活随笔為你收集整理的mysql实现表单号:表单编码+时间+表单号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue-element-admin 1.
- 下一篇: 复制类中的属性值到另一个类的相同属性中