通過設定規則生成各種單據編號(一)
阿新 • • 發佈:2019-02-01
顧名思義,根據規則生成單據編號,有一張編碼表和規則表。
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
此時,渠道編號的生成規則已經填寫完成。