日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

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

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

準(zhǔn)備工作:

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

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

實現(xiàn)步驟:

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

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

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

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

3、獲取到相關(guān)id:

編號表id(entity):

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

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

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

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

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

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

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

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

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

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

async function runProcess($model = model, $plugin = plugin, $params) {    let index = new Number($params.index || 0);//當(dāng)前最新編號步驟的序號屬性,轉(zhuǎn)為數(shù)字,不存在時設(shè)為0    let date = $params.date;//當(dāng)前最新編號步驟的日期屬性    let inserted = $params.inserted;//新建數(shù)據(jù)步驟整個數(shù)據(jù)     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);//刪除新增的數(shù)據(jù)        $model.error(-1, "編號已達(dá)到允許的最大值!");//拋出錯誤提示        return;    }    //生成id    let year = date.substr(0, 4);//當(dāng)前系統(tǒng)最新數(shù)據(jù)的年份    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 });//數(shù)據(jù)庫查詢        isNewId = selected.length == 0;    }    //將編號更新到新增數(shù)據(jù)    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 {            //仍然是當(dāng)年,繼續(xù)編號            index ;        }        //組成id        return "DD"   year   "-"   (Array(size).join('0')   index).slice(-size);    }}

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

效果:

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

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
镶黄旗| 周宁县| 沁源县| 连江县| 中宁县| 潞城市| 望城县| 铜川市| 高邑县| 太湖县| 扶绥县| 从江县| 兴和县| 十堰市| 巫山县| 会宁县| 蕲春县| 金塔县| 海安县| 淮阳县| 仙桃市| 随州市| 灌云县| 竹北市| 曲周县| 成都市| 闻喜县| 东乡族自治县| 岐山县| 明水县| 周至县| 英山县| 肇东市| 耿马| 柏乡县| 西盟| 东丰县| 尚义县| 杂多县| 澄城县| 耒阳市|