日韩高清亚洲日韩精品一区二区三区,成熟人妻av无码专区,国产又A又黄又潮娇喘视频,男女猛烈无遮挡免费视频在线观看

實現特定格式編號自動生成(實現特定格式編號自動生成的方法)

在生成諸如訂單、合同等單據的時候,往往有生成特定格式編號的需求,下面介紹如何實現生成“特定前綴 年份 固定長度序號”的編號,其他類型可在此基礎上進行調整。

準備工作:

在白碼低代碼開發(fā)平臺上創(chuàng)建一個“編號表”數據表,添加兩個字段:編號(字符),序號(數字)

實現特定格式編號自動生成(實現特定格式編號自動生成的方法)

實現步驟:

1、創(chuàng)建“生編號”功能,添加“數據-獲取-編號表”步驟(當前最新編號),點擊步驟的“設置”按鈕加載數據表屬性。

實現特定格式編號自動生成(實現特定格式編號自動生成的方法)

2、加“數據-新增-編號表”步驟(新建數據),點擊設置按鈕,將編號、序號、日期屬性隱藏,并把日期設為當前時間。

實現特定格式編號自動生成(實現特定格式編號自動生成的方法)實現特定格式編號自動生成(實現特定格式編號自動生成的方法)

3、獲取到相關id:

編號表id(entity):

實現特定格式編號自動生成(實現特定格式編號自動生成的方法)

編號表的編號屬性id(field):

實現特定格式編號自動生成(實現特定格式編號自動生成的方法)

編號表的序號屬性id(field):

實現特定格式編號自動生成(實現特定格式編號自動生成的方法)

編號表的日期屬性id(field):

實現特定格式編號自動生成(實現特定格式編號自動生成的方法)

4、添加“編程”步驟,引用前面兩個步驟的數據:

實現特定格式編號自動生成(實現特定格式編號自動生成的方法)

5、繼續(xù)編寫代碼生成編號,完整代碼如下:

async function runProcess($model = model, $plugin = plugin, $params) {    let index = new Number($params.index || 0);//當前最新編號步驟的序號屬性,轉為數字,不存在時設為0    let date = $params.date;//當前最新編號步驟的日期屬性    let inserted = $params.inserted;//新建數據步驟整個數據     let entity = "60936206dec57120cee73e2e";//編號表id    let codeField = "6093620b6d8eaf20d45ed568";//編號表的編號屬性id    let indexField = "6093620f17f01720c753c60c";//編號表的序號屬性id    let size = 5;//格式序號長度    let max = Array(size   1).join('9');//合法的最大編號值    //溢出    if (index   "" == max) {        $plugin.data.removeData(entity, inserted);//刪除新增的數據        $model.error(-1, "編號已達到允許的最大值!");//拋出錯誤提示        return;    }    //生成id    let year = date.substr(0, 4);//當前系統(tǒng)最新數據的年份    let thisYear = new Date().getFullYear()   "";//今年    let isNewId = false;    let id = "";    while (!isNewId) {        id = await createId(index);        //查詢此工程編號是否存在,保證唯一性        let selected = await $plugin.data.queryData(entity, { [codeField]: id });//數據庫查詢        isNewId = selected.length == 0;    }    //將編號更新到新增數據    await $plugin.data.updateData(entity, inserted._id, {        [codeField]: id,//編號        [indexField]: index,//序號    });    //生成id的方法    function createId(i) {        index = i;        if (year != thisYear) {            //新的一年,重新從1開始            index = 1;            year = thisYear;        } else {            //仍然是當年,繼續(xù)編號            index ;        }        //組成id        return "DD"   year   "-"   (Array(size).join('0')   index).slice(-size);    }}

6、將功能發(fā)布上線。

效果:

實現特定格式編號自動生成(實現特定格式編號自動生成的方法)

相關新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部