顾名思义,根据规则生成单据编号,有一张编码表和规则表。
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
此时,渠道编号的生成规则已经填写完成。