You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

542 lines
15 KiB
MySQL

-- ============================================
-- DMS 模块所有序列定义
-- 生成时间: 2026-01-23
-- 说明: 包含 DMS 模块所有 Mapper 中使用的序列
-- ============================================
-- ----------------------------
-- 1. SEQ_DMS_INSPECT_PROJ (点检项目)
-- 表: DMS_BASE_INSPECT_PROJECT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_PROJ"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_PROJ"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 2. SEQ_DMS_INSPECT_ROUTE (点检路线)
-- 表: DMS_BASE_INSPECT_ROUTE
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_ROUTE"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_ROUTE"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 3. SEQ_DMS_INSPECT_STD (点检标准)
-- 表: DMS_BASE_INSPECT_STANDARD
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_STD"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_STD"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 4. SEQ_DMS_INSPECT_RTE_DTL (点检路线明细)
-- 表: DMS_INSPECT_ROUTE_DETAIL
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_RTE_DTL"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_RTE_DTL"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 5. SEQ_DMS_LUBE_STD (润滑标准)
-- 表: DMS_BASE_LUBE_STANDARD
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_LUBE_STD"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_LUBE_STD"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 6. SEQ_DMS_LUBE_STATION (润滑部位)
-- 表: DMS_BASE_LUBE_STATION
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_LUBE_STATION"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_LUBE_STATION"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 7. SEQ_DMS_MAINT_PROJ (保养项目)
-- 表: DMS_BASE_MAINT_PROJECT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_PROJ"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_PROJ"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 8. SEQ_DMS_MAINT_STD (保养标准)
-- 表: DMS_BASE_MAINT_STANDARD
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_STD"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_STD"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 9. SEQ_DMS_MAINT_STATION (保养部位)
-- 表: DMS_BASE_MAINT_STATION
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_STATION"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_STATION"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 10. SEQ_DMS_SHUT_REASON (停机原因)
-- 表: DMS_BASE_SHUT_REASON
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_SHUT_REASON"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_SHUT_REASON"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 11. SEQ_DMS_SHUT_TYPE (停机类型)
-- 表: DMS_BASE_SHUT_TYPE
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_SHUT_TYPE"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_SHUT_TYPE"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 12. SEQ_DMS_BILLS_FAULT_INSTANCE (故障工单)
-- 表: DMS_BILLS_FAULT_INSTANCE
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_BILLS_FAULT_INSTANCE"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_BILLS_FAULT_INSTANCE"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 13. SEQ_FAULT_INSTANCE_ACTIVITY (故障工单活动)
-- 表: DMS_FAULT_INSTANCE_ACTIVITY
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_FAULT_INSTANCE_ACTIVITY"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_FAULT_INSTANCE_ACTIVITY"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 14. SEQ_DMS_MAINT_INST (保养工单)
-- 表: DMS_BILLS_MAINT_INSTANCE
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_INST"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_INST"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 15. SEQ_DMS_MAINT_DETAIL (保养工单明细)
-- 表: DMS_BILLS_MAINT_DETAIL
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_DETAIL"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_DETAIL"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 16. SEQ_DMS_MAINT_DTL_PROJ (保养明细项目)
-- 表: DMS_BILLS_MAINT_DETAIL_PROJECT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_DTL_PROJ"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_DTL_PROJ"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 17. SEQ_DMS_DISPATCH_PLAN (派工计划)
-- 表: DMS_DISPATCH_PLAN
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_DISPATCH_PLAN"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_DISPATCH_PLAN"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 18. SEQ_DMS_DISPATCH_MEMBER (派工成员)
-- 表: DMS_DISPATCH_MEMBER
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_DISPATCH_MEMBER"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_DISPATCH_MEMBER"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 19. SEQ_DMS_KNOWLEDGE_REPAIR (维修知识库)
-- 表: DMS_KNOWLEDGE_REPAIR
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_KNOWLEDGE_REPAIR"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_KNOWLEDGE_REPAIR"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 20. SEQ_DMS_PLAN_INSPECT (点检计划)
-- 表: DMS_PLAN_INSPECT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_INSPECT"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_INSPECT"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 21. SEQ_DMS_PLAN_MAINT (保养计划)
-- 表: DMS_PLAN_MAINT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_MAINT"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_MAINT"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 22. SEQ_DMS_PLAN_MAINT_DETAIL (保养计划明细)
-- 表: DMS_PLAN_MAINT_DETAIL
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_MAINT_DETAIL"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_MAINT_DETAIL"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 23. SEQ_DMS_PLAN_REPAIR (检修计划)
-- 表: DMS_PLAN_REPAIR
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_REPAIR"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_REPAIR"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 24. SEQ_DMS_REPAIR_MATERIAL (维修物料)
-- 表: DMS_REPAIR_MATERIAL
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_MATERIAL"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_MATERIAL"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 25. SEQ_DMS_REPAIR_PROJECT (维修项目)
-- 表: DMS_REPAIR_PROJECT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_PROJECT"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_PROJECT"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 26. SEQ_DMS_REPAIR_RECORD (维修记录)
-- 表: DMS_REPAIR_RECORD
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_RECORD"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_RECORD"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 27. SEQ_DMS_REPAIR_WORK_ORDER (维修工单)
-- 表: DMS_REPAIR_WORK_ORDER
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_WORK_ORDER"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_WORK_ORDER"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- 序列对齐:按表当前行数 + 1 设置 NEXTVALOracle 11g 兼容方案)
-- 实现思路:
-- 1) 读取表行数,目标值 = 行数 + 1
-- 2) 读取当前序列 last_number
-- 3) 若目标值 > last_number则临时修改 INCREMENT BY (差值),取一次 NEXTVAL最后再改回 1
-- 4) 若目标值 <= last_number则保持不变仅输出提示
DECLARE
PROCEDURE sync_seq(p_seq_name VARCHAR2, p_table_name VARCHAR2) IS
v_cnt NUMBER := 0;
v_last NUMBER := 0;
v_target NUMBER := 0;
v_diff NUMBER := 0;
v_seq_short VARCHAR2(128);
v_sql VARCHAR2(4000);
v_dummy NUMBER;
BEGIN
-- 表行数
v_sql := 'SELECT NVL(COUNT(*),0) FROM ' || p_table_name;
EXECUTE IMMEDIATE v_sql INTO v_cnt;
-- 取 sequence 名(去 schema 部分)用于 USER_SEQUENCES 查询
v_seq_short := UPPER(REGEXP_SUBSTR(p_seq_name, '[^\.]+$'));
SELECT last_number INTO v_last FROM user_sequences WHERE sequence_name = v_seq_short;
v_target := v_cnt + 1;
IF v_target > v_last THEN
v_diff := v_target - v_last;
EXECUTE IMMEDIATE 'ALTER SEQUENCE ' || p_seq_name || ' INCREMENT BY ' || v_diff;
EXECUTE IMMEDIATE 'SELECT ' || p_seq_name || '.NEXTVAL FROM DUAL' INTO v_dummy;
EXECUTE IMMEDIATE 'ALTER SEQUENCE ' || p_seq_name || ' INCREMENT BY 1';
DBMS_OUTPUT.PUT_LINE('SYNC ' || p_seq_name || ' TO ' || v_target || ' (TABLE ROWS=' || v_cnt || ')');
ELSE
DBMS_OUTPUT.PUT_LINE('SKIP ' || p_seq_name || ' (TARGET ' || v_target || ' <= LAST ' || v_last || ')');
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('SYNC ' || p_seq_name || ' FAILED: ' || SQLERRM);
END;
BEGIN
sync_seq('HAIWEI.SEQ_DMS_INSPECT_PROJ', 'HAIWEI.DMS_BASE_INSPECT_PROJECT');
sync_seq('HAIWEI.SEQ_DMS_INSPECT_ROUTE', 'HAIWEI.DMS_BASE_INSPECT_ROUTE');
sync_seq('HAIWEI.SEQ_DMS_INSPECT_STD', 'HAIWEI.DMS_BASE_INSPECT_STANDARD');
sync_seq('HAIWEI.SEQ_DMS_INSPECT_RTE_DTL', 'HAIWEI.DMS_INSPECT_ROUTE_DETAIL');
sync_seq('HAIWEI.SEQ_DMS_LUBE_STD', 'HAIWEI.DMS_BASE_LUBE_STANDARD');
sync_seq('HAIWEI.SEQ_DMS_LUBE_STATION', 'HAIWEI.DMS_BASE_LUBE_STATION');
sync_seq('HAIWEI.SEQ_DMS_MAINT_PROJ', 'HAIWEI.DMS_BASE_MAINT_PROJECT');
sync_seq('HAIWEI.SEQ_DMS_MAINT_STD', 'HAIWEI.DMS_BASE_MAINT_STANDARD');
sync_seq('HAIWEI.SEQ_DMS_MAINT_STATION', 'HAIWEI.DMS_BASE_MAINT_STATION');
sync_seq('HAIWEI.SEQ_DMS_SHUT_REASON', 'HAIWEI.DMS_BASE_SHUT_REASON');
sync_seq('HAIWEI.SEQ_DMS_SHUT_TYPE', 'HAIWEI.DMS_BASE_SHUT_TYPE');
sync_seq('HAIWEI.SEQ_DMS_BILLS_FAULT_INSTANCE', 'HAIWEI.DMS_BILLS_FAULT_INSTANCE');
sync_seq('HAIWEI.SEQ_FAULT_INSTANCE_ACTIVITY', 'HAIWEI.DMS_FAULT_INSTANCE_ACTIVITY');
sync_seq('HAIWEI.SEQ_DMS_MAINT_INST', 'HAIWEI.DMS_BILLS_MAINT_INSTANCE');
sync_seq('HAIWEI.SEQ_DMS_MAINT_DETAIL', 'HAIWEI.DMS_BILLS_MAINT_DETAIL');
sync_seq('HAIWEI.SEQ_DMS_MAINT_DTL_PROJ', 'HAIWEI.DMS_BILLS_MAINT_DETAIL_PROJECT');
sync_seq('HAIWEI.SEQ_DMS_DISPATCH_PLAN', 'HAIWEI.DMS_DISPATCH_PLAN');
sync_seq('HAIWEI.SEQ_DMS_DISPATCH_MEMBER', 'HAIWEI.DMS_DISPATCH_MEMBER');
sync_seq('HAIWEI.SEQ_DMS_KNOWLEDGE_REPAIR', 'HAIWEI.DMS_KNOWLEDGE_REPAIR');
sync_seq('HAIWEI.SEQ_DMS_PLAN_INSPECT', 'HAIWEI.DMS_PLAN_INSPECT');
sync_seq('HAIWEI.SEQ_DMS_PLAN_MAINT', 'HAIWEI.DMS_PLAN_MAINT');
sync_seq('HAIWEI.SEQ_DMS_PLAN_MAINT_DETAIL', 'HAIWEI.DMS_PLAN_MAINT_DETAIL');
sync_seq('HAIWEI.SEQ_DMS_PLAN_REPAIR', 'HAIWEI.DMS_PLAN_REPAIR');
sync_seq('HAIWEI.SEQ_DMS_REPAIR_MATERIAL', 'HAIWEI.DMS_REPAIR_MATERIAL');
sync_seq('HAIWEI.SEQ_DMS_REPAIR_PROJECT', 'HAIWEI.DMS_REPAIR_PROJECT');
sync_seq('HAIWEI.SEQ_DMS_REPAIR_RECORD', 'HAIWEI.DMS_REPAIR_RECORD');
sync_seq('HAIWEI.SEQ_DMS_REPAIR_WORK_ORDER', 'HAIWEI.DMS_REPAIR_WORK_ORDER');
END;
/
-- ============================================
-- 执行完成提示
-- ============================================
-- 共创建 27 个序列
-- 如需验证,可执行:
-- SELECT SEQUENCE_NAME FROM USER_SEQUENCES WHERE SEQUENCE_NAME LIKE 'SEQ_DMS%' OR SEQUENCE_NAME LIKE 'SEQ_FAULT%';