1. 程式人生 > >通過設定規則生成各種單據編號(一)

通過設定規則生成各種單據編號(一)

顧名思義,根據規則生成單據編號,有一張編碼表和規則表。
1.首先,先建這兩張表:

**SYS_SEQ:業務序列編碼表**
CREATE TABLE
    SYS_SEQ
    (
        ID NUMBER NOT NULL,
        COMPANY_ID NUMBER,
        COMPANY_NO VARCHAR2(100),
        COMPANY_NAME VARCHAR2(200),
        SEQ_CODE VARCHAR2(100) NOT NULL,
        SEQ_NAME VARCHAR2(100) NOT NULL,
        DELIMITER VARCHAR2(100
), RESET_RULE VARCHAR2(100) NOT NULL, MULTI_TENANT_FLAG VARCHAR2(100), STEP NUMBER, CREATION_DATE DATE DEFAULT SYSDATE NOT NULL, LAST_UPDATE_DATE DATE NOT NULL, CURRENT_CODE VARCHAR2(100), CURRENT_NO NUMBER DEFAULT 0 , CURRENT_RESET VARCHAR2(100
), REMARKS VARCHAR2(500) ); COMMENT ON COLUMN SYS_SEQ.COMPANY_ID IS '單位ID'; COMMENT ON COLUMN SYS_SEQ.COMPANY_NO IS '單位編號'; COMMENT ON COLUMN SYS_SEQ.COMPANY_NAME IS '單位名稱'; COMMENT ON COLUMN SYS_SEQ.SEQ_CODE IS '業務序列編碼'; COMMENT ON COLUMN SYS_SEQ.SEQ_NAME IS '業務序列名稱'; COMMENT ON
COLUMN SYS_SEQ.DELIMITER IS '分隔符'; COMMENT ON COLUMN SYS_SEQ.RESET_RULE IS '重置規則'; COMMENT ON COLUMN SYS_SEQ.MULTI_TENANT_FLAG IS '多租戶標誌'; COMMENT ON COLUMN SYS_SEQ.STEP IS '步長'; COMMENT ON COLUMN SYS_SEQ.CREATION_DATE IS '建立日期'; COMMENT ON COLUMN SYS_SEQ.LAST_UPDATE_DATE IS '最後更新日期'; COMMENT ON COLUMN SYS_SEQ.CURRENT_CODE IS '當前編碼'; COMMENT ON COLUMN SYS_SEQ.CURRENT_NO IS '當前序號'; COMMENT ON COLUMN SYS_SEQ.CURRENT_RESET IS '當前重置依賴'; COMMENT ON COLUMN SYS_SEQ.REMARKS IS '序列描述';
**SYS_SEQ_RULE:業務編碼規則表**
CREATE TABLE
    SYS_SEQ_RULE
    (
        ID NUMBER NOT NULL,
        COMPANY_ID NUMBER,
        COMPANY_NO VARCHAR2(100),
        COMPANY_NAME VARCHAR2(200),
        SEQ_CODE VARCHAR2(100) NOT NULL,
        RULE_ORDER NUMBER NOT NULL,
        RULE_CODE VARCHAR2(100) NOT NULL,
        RULE_VALUE VARCHAR2(100) NOT NULL,
        PADDING_SIDE VARCHAR2(100),
        PADDING_WIDE NUMBER,
        CREATION_DATE DATE DEFAULT SYSDATE NOT NULL,
        LAST_UPDATE_DATE DATE DEFAULT SYSDATE NOT NULL,
        REMARKS VARCHAR2(500),
        SEQ_NAME VARCHAR2(500)
    );
COMMENT ON COLUMN SYS_SEQ_RULE.COMPANY_ID
IS
    '單位ID';
COMMENT ON COLUMN SYS_SEQ_RULE.COMPANY_NO
IS
    '單位編號';
COMMENT ON COLUMN SYS_SEQ_RULE.COMPANY_NAME
IS
    '單位名稱';
COMMENT ON COLUMN SYS_SEQ_RULE.SEQ_CODE
IS
    '業務編碼';
COMMENT ON COLUMN SYS_SEQ_RULE.RULE_ORDER
IS
    '規則排序';
COMMENT ON COLUMN SYS_SEQ_RULE.RULE_CODE
IS
    '規則程式碼';
COMMENT ON COLUMN SYS_SEQ_RULE.RULE_VALUE
IS
    '規則值';
COMMENT ON COLUMN SYS_SEQ_RULE.PADDING_SIDE
IS
    '補齊方向';
COMMENT ON COLUMN SYS_SEQ_RULE.PADDING_WIDE
IS
    '補齊寬度';
COMMENT ON COLUMN SYS_SEQ_RULE.CREATION_DATE
IS
    '建立日期';
COMMENT ON COLUMN SYS_SEQ_RULE.LAST_UPDATE_DATE
IS
    '最後更新日期';
COMMENT ON COLUMN SYS_SEQ_RULE.REMARKS
IS
    '規則描述';
COMMENT ON COLUMN SYS_SEQ_RULE.SEQ_NAME
IS
    '業務編碼名稱';

2.在前臺新增業務編號編碼(頁面low的一匹!!!)
業務編號編碼列表頁面:
這裡寫圖片描述

新增業務編號編碼頁面:

業務編號:一般前幾位為客戶自己定義的常量,中間幾位為當前年月日,最後四位為當天的流水號,這些都可以在業務編號規則中設定,稍候在配置規則中再說。這裡的重置規則一般為每天。
3.儲存業務編號編碼。開始配置業務編號規則,上前臺頁面(不要吐槽頁面了)
業務編號規則列表頁面:
這裡寫圖片描述
新增業務編號規則頁面:
這裡寫圖片描述
例如:要生成渠道編號為BJQD201712060001型別的
首先先建編號編碼為channelCode的渠道,步長為1,重置規則為每天。
接下來,要新增規則了。
1.選擇業務編碼為channelCode的,規則為常量,排序規則為1,規則值BJQD
2.選擇業務編碼為channelCode的,規則為時間戳,型別為yyyyMMdd的,排序為2
3.選擇業務編碼為channelCode的,規則為計數,排序規則3,補齊方向右對齊,補齊寬度為4
此時,渠道編號的生成規則已經填寫完成。