Files
tiandihe/sql/PDI_PLTM.sql
Joshi d8b142bb4a feat: 初始化HEFA-L2 PDI管理系统项目
添加前端Vue2项目结构,包括ElementUI集成、路由配置和API模块
实现后端FastAPI服务,包含Oracle数据库连接和PDI CRUD接口
添加OPC-UA轮询服务,支持跟踪图数据同步到Oracle
提供SQLite镜像数据库用于本地开发和快速查询
包含完整的部署脚本和文档说明
2026-04-09 16:05:20 +08:00

1151 lines
45 KiB
MySQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CREATE TABLE PDI_PLTM
(
SID NUMBER(10),
ROLLPROGRAMNB NUMBER(10),
SEQUENCENB NUMBER(3),
STATUS NUMBER(3) DEFAULT 0 NOT NULL,
SCHEDULE_CODE VARCHAR2(32 BYTE),
COILID VARCHAR2(32 BYTE) NOT NULL,
ENTRY_COIL_THICKNESS NUMBER(10,3),
ENTRY_COIL_THICKNESS_MAX NUMBER(10,3),
ENTRY_COIL_THICKNESS_MIN NUMBER(10,3),
ENTRY_COIL_WIDTH NUMBER(10,3),
ENTRY_COIL_WIDTH_MAX NUMBER(10,3),
ENTRY_COIL_WIDTH_MIN NUMBER(10,3),
ENTRY_COIL_WEIGHT NUMBER(10,3),
ENTRY_OF_COIL_LENGTH NUMBER(10,3),
ENTRY_OF_COIL_INNER_DIAMETER NUMBER(10,3),
ENTRY_OF_COIL_OUTER_DIAMETER NUMBER(10,3),
TRIMMING NUMBER(1),
TRIMMING_WIDTH NUMBER(10,3),
SMP_LENGTH NUMBER(10,3),
SMP_NUM NUMBER(10,3),
SMP_FRQ VARCHAR2(32 BYTE),
SMP_NUM_HEAD NUMBER(10,3),
SMP_NUM_MID NUMBER(10,3),
SMP_NUM_TAIL NUMBER(10,3),
PRECEDING_PROCESS_CODE VARCHAR2(32 BYTE),
NEXT_PROCESS_CODE VARCHAR2(32 BYTE),
HOT_MILL_DELIVERY_TEMP NUMBER(10,3),
FINISHED_COIL_TEMP NUMBER(10,3),
CROWN_AVERAGE NUMBER(10,3),
COIL_FLATNESS_AVERAGE NUMBER(10,3),
COIL_FLATNESS_MAX_VALUE NUMBER(10,3),
COIL_FLATNESS_MIN_VALUE NUMBER(10,3),
MATERIAL_YIELD_POINT NUMBER(10,3),
MATERIAL_TENSILE NUMBER(10,3),
HOTACTFMWEDGEAVG NUMBER(10,3),
WEIGHT_MODE VARCHAR2(32 BYTE),
DUMMY_COIL_MRK VARCHAR2(32 BYTE),
CUT_MODE VARCHAR2(32 BYTE),
OFF_GAUGE_HEAD_LENGTH NUMBER(10,3),
OFF_GAUGE_TAIL_LENGTH NUMBER(10,3),
EXIT_COIL_NO VARCHAR2(32 BYTE),
EXIT_COIL_WEIGHT NUMBER(10,3),
EXIT_COIL_WEIGHT_MAX NUMBER(10,3),
EXIT_COIL_WEIGHT_MIN NUMBER(10,3),
EXIT_COIL_THICKNESS NUMBER(10,3),
EXIT_COIL_THICKNESS_MAX NUMBER(10,3),
EXIT_COIL_THICKNESS_MIN NUMBER(10,3),
EXIT_COIL_WIDTH NUMBER(10,3),
EXIT_COIL_WIDTH_MAX NUMBER(10,3),
EXIT_COIL_WIDTH_MIN NUMBER(10,3),
WORK_ORDER_NO VARCHAR2(32 BYTE),
ORDER_QUALITY VARCHAR2(32 BYTE),
STEEL_GRADE VARCHAR2(32 BYTE),
SG_SIGN VARCHAR2(32 BYTE),
ORDER_THICKNESS NUMBER(10,3),
ORDER_THICKNESS_MAX NUMBER(10,3),
ORDER_THICKNESS_MIN NUMBER(10,3),
ORDER_WIDTH NUMBER(10,3),
ORDER_WIDTH_MAX NUMBER(10,3),
ORDER_WIDTH_MIN NUMBER(10,3),
SLEEVE_CODE_OF_COLD_COIL VARCHAR2(32 BYTE),
PACKING_TYPE_CODE VARCHAR2(32 BYTE),
THK_DS VARCHAR2(32 BYTE),
EXT_NUM_01 VARCHAR2(32 BYTE),
C NUMBER(10,3),
SI NUMBER(10,3),
MN NUMBER(10,3),
P NUMBER(10,3),
S NUMBER(10,3),
CU NUMBER(10,3),
NI NUMBER(10,3),
CR NUMBER(10,3),
MO NUMBER(10,3),
V NUMBER(10,3),
TI NUMBER(10,3),
SOL_AL NUMBER(10,3),
FE NUMBER(10,3),
MG NUMBER(10,3),
PB NUMBER(10,3),
SN NUMBER(10,3),
ZN NUMBER(10,3),
ZR NUMBER(10,3),
NA NUMBER(10,3),
LI NUMBER(10,3),
GA NUMBER(10,3),
CA NUMBER(10,3),
B NUMBER(10,3),
BE NUMBER(10,3),
BI NUMBER(10,3),
W NUMBER(10,3),
N NUMBER(10,3),
NB NUMBER(10,3),
TA NUMBER(10,3),
O NUMBER(10,3),
H NUMBER(10,3),
AR NUMBER(10,3),
AG NUMBER(10,3),
AS1 NUMBER(10,3),
CD NUMBER(10,3),
CL NUMBER(10,3),
CO NUMBER(10,3),
K NUMBER(10,3),
SB NUMBER(10,3),
SE NUMBER(10,3),
CREATED_BY VARCHAR2(32 BYTE),
CREATED_DT DATE,
CREATED_BY_NAME VARCHAR2(32 BYTE),
UPDATED_BY VARCHAR2(32 BYTE),
UPDATED_DT DATE,
UPDATED_BY_NAME VARCHAR2(32 BYTE),
SEND_FLAG VARCHAR2(32 BYTE),
SEND_DATE DATE,
TRANSACTION_ID VARCHAR2(32 BYTE),
VERSION NUMBER(9),
TEXT1 VARCHAR2(32 BYTE),
TEXT2 VARCHAR2(32 BYTE),
TEXT3 VARCHAR2(32 BYTE),
TEXT4 VARCHAR2(32 BYTE),
TEXT5 VARCHAR2(32 BYTE),
TOC DATE,
TOM DATE,
MOP VARCHAR2(60 BYTE),
POSITION NUMBER(8) DEFAULT 0,
CROSS_SECTION_AREA NUMBER(13,3),
UNCOILER_TENSION NUMBER(13,3),
LOOPER_TENSION_1 NUMBER(13,3),
PL_TENSION NUMBER(13,3),
LOOPER_TENSION_2 NUMBER(13,3),
LOOPER_TENSION_3 NUMBER(13,3),
METERWEIGHT NUMBER(13,3),
METER_D_OUTSIDE NUMBER(13,3),
METER_WIDTH NUMBER(13,3),
SCRAP_CUT_HEAD_LEN NUMBER(13,3),
SCRAP_CUT_TAIL_LEN NUMBER(13,3),
COILER_DIAMETER NUMBER(4),
L2_GRADE VARCHAR2(32 BYTE)
)
TABLESPACE USERS
RESULT_CACHE (MODE DEFAULT)
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 20M
NEXT 1M
MAXSIZE UNLIMITED
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;
COMMENT ON COLUMN PDI_PLTM.SID IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID,ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>,<2C><>ORACLE Sequence<63>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID';
COMMENT ON COLUMN PDI_PLTM.ROLLPROGRAMNB IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.SEQUENCENB IS '<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.STATUS IS '״̬';
COMMENT ON COLUMN PDI_PLTM.SCHEDULE_CODE IS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.COILID IS 'ԭ<EFBFBD>Ͼ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ENTRY_COIL_THICKNESS IS 'ԭ<EFBFBD>Ϻ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ENTRY_COIL_THICKNESS_MAX IS 'ԭ<EFBFBD>Ϻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ';
COMMENT ON COLUMN PDI_PLTM.ENTRY_COIL_THICKNESS_MIN IS 'ԭ<EFBFBD>Ϻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ';
COMMENT ON COLUMN PDI_PLTM.ENTRY_COIL_WIDTH IS 'ԭ<EFBFBD>Ͽ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ENTRY_COIL_WIDTH_MAX IS 'ԭ<EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ';
COMMENT ON COLUMN PDI_PLTM.ENTRY_COIL_WIDTH_MIN IS 'ԭ<EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ';
COMMENT ON COLUMN PDI_PLTM.ENTRY_COIL_WEIGHT IS 'ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ENTRY_OF_COIL_LENGTH IS 'ԭ<EFBFBD>ϳ<EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ENTRY_OF_COIL_INNER_DIAMETER IS 'ԭ<EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ENTRY_OF_COIL_OUTER_DIAMETER IS 'ԭ<EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.TRIMMING IS '<EFBFBD>б߱<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.TRIMMING_WIDTH IS '<EFBFBD>бߺ<EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.SMP_LENGTH IS 'ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.SMP_NUM IS 'ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.SMP_FRQ IS 'ȡ<EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.SMP_NUM_HEAD IS 'ͷ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.SMP_NUM_MID IS '<EFBFBD>в<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.SMP_NUM_TAIL IS 'β<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.PRECEDING_PROCESS_CODE IS '<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.NEXT_PROCESS_CODE IS '<EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.HOT_MILL_DELIVERY_TEMP IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.FINISHED_COIL_TEMP IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.CROWN_AVERAGE IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͹<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.COIL_FLATNESS_AVERAGE IS 'ƽֱ<EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>ֵ';
COMMENT ON COLUMN PDI_PLTM.COIL_FLATNESS_MAX_VALUE IS 'ƽֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С';
COMMENT ON COLUMN PDI_PLTM.COIL_FLATNESS_MIN_VALUE IS 'ƽֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.MATERIAL_YIELD_POINT IS 'ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.MATERIAL_TENSILE IS 'ԭ<EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.HOTACTFMWEDGEAVG IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ш<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>ֵ';
COMMENT ON COLUMN PDI_PLTM.WEIGHT_MODE IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD>ģʽ';
COMMENT ON COLUMN PDI_PLTM.DUMMY_COIL_MRK IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.CUT_MODE IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ';
COMMENT ON COLUMN PDI_PLTM.OFF_GAUGE_HEAD_LENGTH IS 'ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.OFF_GAUGE_TAIL_LENGTH IS 'β<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.EXIT_COIL_NO IS '<EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.EXIT_COIL_WEIGHT IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.EXIT_COIL_WEIGHT_MAX IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ';
COMMENT ON COLUMN PDI_PLTM.EXIT_COIL_WEIGHT_MIN IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ';
COMMENT ON COLUMN PDI_PLTM.EXIT_COIL_THICKNESS IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.EXIT_COIL_THICKNESS_MAX IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ';
COMMENT ON COLUMN PDI_PLTM.EXIT_COIL_THICKNESS_MIN IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ';
COMMENT ON COLUMN PDI_PLTM.EXIT_COIL_WIDTH IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.EXIT_COIL_WIDTH_MAX IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ';
COMMENT ON COLUMN PDI_PLTM.EXIT_COIL_WIDTH_MIN IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ';
COMMENT ON COLUMN PDI_PLTM.WORK_ORDER_NO IS '<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ORDER_QUALITY IS '<EFBFBD>ּ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.STEEL_GRADE IS '<EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.SG_SIGN IS '<EFBFBD>ⲿ<EFBFBD>ƺ<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ORDER_THICKNESS IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ORDER_THICKNESS_MAX IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ORDER_THICKNESS_MIN IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ORDER_WIDTH IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ORDER_WIDTH_MAX IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.ORDER_WIDTH_MIN IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.SLEEVE_CODE_OF_COLD_COIL IS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>Ͳ';
COMMENT ON COLUMN PDI_PLTM.PACKING_TYPE_CODE IS '<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.THK_DS IS '<EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.EXT_NUM_01 IS '<EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>ʶ';
COMMENT ON COLUMN PDI_PLTM.C IS 'C';
COMMENT ON COLUMN PDI_PLTM.SI IS 'Si';
COMMENT ON COLUMN PDI_PLTM.MN IS 'Mn';
COMMENT ON COLUMN PDI_PLTM.P IS 'P';
COMMENT ON COLUMN PDI_PLTM.S IS 'S';
COMMENT ON COLUMN PDI_PLTM.CU IS 'Cu';
COMMENT ON COLUMN PDI_PLTM.NI IS 'Ni';
COMMENT ON COLUMN PDI_PLTM.CR IS 'Cr';
COMMENT ON COLUMN PDI_PLTM.MO IS 'Mo';
COMMENT ON COLUMN PDI_PLTM.V IS 'V';
COMMENT ON COLUMN PDI_PLTM.TI IS 'Ti';
COMMENT ON COLUMN PDI_PLTM.SOL_AL IS 'Sol_Al';
COMMENT ON COLUMN PDI_PLTM.FE IS 'Fe';
COMMENT ON COLUMN PDI_PLTM.MG IS 'Mg';
COMMENT ON COLUMN PDI_PLTM.PB IS 'Pb';
COMMENT ON COLUMN PDI_PLTM.SN IS 'Sn';
COMMENT ON COLUMN PDI_PLTM.ZN IS 'Zn';
COMMENT ON COLUMN PDI_PLTM.ZR IS 'Zr';
COMMENT ON COLUMN PDI_PLTM.NA IS 'Na';
COMMENT ON COLUMN PDI_PLTM.LI IS 'Li';
COMMENT ON COLUMN PDI_PLTM.GA IS 'Ga';
COMMENT ON COLUMN PDI_PLTM.CA IS 'Ca';
COMMENT ON COLUMN PDI_PLTM.B IS 'B';
COMMENT ON COLUMN PDI_PLTM.BE IS 'Be';
COMMENT ON COLUMN PDI_PLTM.BI IS 'Bi';
COMMENT ON COLUMN PDI_PLTM.W IS 'W';
COMMENT ON COLUMN PDI_PLTM.N IS 'N';
COMMENT ON COLUMN PDI_PLTM.NB IS 'Nb';
COMMENT ON COLUMN PDI_PLTM.TA IS 'Ta';
COMMENT ON COLUMN PDI_PLTM.O IS 'O';
COMMENT ON COLUMN PDI_PLTM.H IS 'H';
COMMENT ON COLUMN PDI_PLTM.AR IS 'Ar';
COMMENT ON COLUMN PDI_PLTM.AG IS 'Ar';
COMMENT ON COLUMN PDI_PLTM.AS1 IS 'As';
COMMENT ON COLUMN PDI_PLTM.CD IS 'Cd';
COMMENT ON COLUMN PDI_PLTM.CL IS 'Ci';
COMMENT ON COLUMN PDI_PLTM.CO IS 'Co';
COMMENT ON COLUMN PDI_PLTM.K IS 'K';
COMMENT ON COLUMN PDI_PLTM.SB IS 'Sb';
COMMENT ON COLUMN PDI_PLTM.SE IS 'Se';
COMMENT ON COLUMN PDI_PLTM.CREATED_BY IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.CREATED_DT IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.CREATED_BY_NAME IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.UPDATED_BY IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.UPDATED_DT IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.UPDATED_BY_NAME IS '<EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.SEND_FLAG IS 'ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶλ';
COMMENT ON COLUMN PDI_PLTM.SEND_DATE IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.TRANSACTION_ID IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID';
COMMENT ON COLUMN PDI_PLTM.VERSION IS '<EFBFBD><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.TEXT1 IS 'Ԥ<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>1';
COMMENT ON COLUMN PDI_PLTM.TEXT2 IS 'Ԥ<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>2';
COMMENT ON COLUMN PDI_PLTM.TEXT3 IS 'Ԥ<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>3';
COMMENT ON COLUMN PDI_PLTM.TEXT4 IS 'Ԥ<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>4';
COMMENT ON COLUMN PDI_PLTM.TEXT5 IS 'Ԥ<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>5';
COMMENT ON COLUMN PDI_PLTM.CROSS_SECTION_AREA IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-m*m';
COMMENT ON COLUMN PDI_PLTM.UNCOILER_TENSION IS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-kN';
COMMENT ON COLUMN PDI_PLTM.LOOPER_TENSION_1 IS '1<EFBFBD>Ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB>ף<EFBFBD>-kN';
COMMENT ON COLUMN PDI_PLTM.PL_TENSION IS '<EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-kN';
COMMENT ON COLUMN PDI_PLTM.LOOPER_TENSION_2 IS '2<EFBFBD>Ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ţ<EFBFBD>-kN';
COMMENT ON COLUMN PDI_PLTM.LOOPER_TENSION_3 IS '3<EFBFBD>Ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>ţ<EFBFBD>-kN';
COMMENT ON COLUMN PDI_PLTM.METERWEIGHT IS 'ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Real-<2D><><EFBFBD><EFBFBD>';
COMMENT ON COLUMN PDI_PLTM.METER_D_OUTSIDE IS 'ʵ<EFBFBD><EFBFBD><EFBFBD>Real-<2D><>';
COMMENT ON COLUMN PDI_PLTM.METER_WIDTH IS 'ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Real-<2D><>';
COMMENT ON COLUMN PDI_PLTM.SCRAP_CUT_HEAD_LEN IS '//ͷ<><CDB7><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD>--Real--<2D><>';
COMMENT ON COLUMN PDI_PLTM.SCRAP_CUT_TAIL_LEN IS '//β<><CEB2><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD>--Real--<2D><>';
CREATE UNIQUE INDEX PK_PDI_PLTM ON PDI_PLTM
(COILID)
LOGGING
TABLESPACE USERS
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 2M
NEXT 1M
MAXSIZE UNLIMITED
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
)
NOPARALLEL;
CREATE OR REPLACE TRIGGER DEL_B_PDI_PLTM BEFORE DELETE ON PDI_PLTM REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW
DECLARE
tmpVar NUMBER;
szCoilID VARCHAR2 (20);
/******************************************************************************
NAME: DEL_B_PDI_PLTM
PURPOSE:
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2023-12-8 Administrator 1. Created this trigger.
NOTES:
Automatically available Auto Replace Keywords:
Object Name: DEL_B_PDI_PLTM
Sysdate: 2023-12-8
Date and Time: 2023-12-8, 16:45:20, and 2023-12-8 16:45:20
Username: Administrator (set in TOAD Options, Proc Templates)
Table Name: PDI_PLTM (set in the "New PL/SQL Object" dialog)
Trigger Options: (set in the "New PL/SQL Object" dialog)
******************************************************************************/
BEGIN
tmpVar := 0;
--SELECT MySeq.NEXTVAL INTO tmpVar FROM dual;
--:NEW.SequenceColumn := tmpVar;
--:NEW.CreatedDate := SYSDATE;
--:NEW.CreatedUser := USER;
-------------------------------------------------------------------------------
szCoilID := :OLD.COILID || '%';
DELETE RASTCMDB.PDI WHERE COILID LIKE szCoilID;
EXCEPTION
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END DEL_B_PDI_PLTM;
/
CREATE OR REPLACE TRIGGER INS_B_PDI_PLTM
BEFORE INSERT
ON PDI_PLTM
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
--PRAGMA AUTONOMOUS_TRANSACTION;
Programm VARCHAR (60);
USER VARCHAR (30);
session_id NUMBER;
nRollProgramNb PDI_PLTM.ROLLPROGRAMNB%TYPE;
nSequenceNb PDI_PLTM.SEQUENCENB%TYPE;
nCrossSectionArea PDI_PLTM.CROSS_SECTION_AREA%TYPE;
nMinCrossSectionArea PDI_PLTM.CROSS_SECTION_AREA%TYPE;
nMaxCrossSectionArea PDI_PLTM.CROSS_SECTION_AREA%TYPE;
TablePL_BM_TENSION_XQ PL_BM_TENSION_XQ%ROWTYPE;
TablePL_BM_TENSION_XQ_MIN PL_BM_TENSION_XQ%ROWTYPE;
TablePL_BM_TENSION_XQ_MAX PL_BM_TENSION_XQ%ROWTYPE;
nMinKeyID NUMBER;
nMaxKeyID NUMBER;
nCount NUMBER;
iCross_section_areaMin PDI_PLTM.CROSS_SECTION_AREA%TYPE;
iUncoiler_tensionMin PDI_PLTM.UNCOILER_TENSION%TYPE;
iLooper_tension_1Min PDI_PLTM.LOOPER_TENSION_1%TYPE;
iPL_tensionMin PDI_PLTM.PL_TENSION%TYPE;
iLooper_tension_2Min PDI_PLTM.LOOPER_TENSION_2%TYPE;
iLooper_tension_3Min PDI_PLTM.LOOPER_TENSION_3%TYPE;
iCross_section_areaMax PDI_PLTM.CROSS_SECTION_AREA%TYPE;
iUncoiler_tensionMax PDI_PLTM.UNCOILER_TENSION%TYPE;
iLooper_tension_1Max PDI_PLTM.LOOPER_TENSION_1%TYPE;
iPL_tensionMax PDI_PLTM.PL_TENSION%TYPE;
iLooper_tension_2Max PDI_PLTM.LOOPER_TENSION_2%TYPE;
iLooper_tension_3Max PDI_PLTM.LOOPER_TENSION_3%TYPE;
--iCross_section_area PDI_PLTM.CROSS_SECTION_AREA%TYPE;
iUncoiler_tension PDI_PLTM.UNCOILER_TENSION%TYPE;
iLooper_tension_1 PDI_PLTM.LOOPER_TENSION_1%TYPE;
iPL_tension PDI_PLTM.PL_TENSION%TYPE;
iLooper_tension_2 PDI_PLTM.LOOPER_TENSION_2%TYPE;
iLooper_tension_3 PDI_PLTM.LOOPER_TENSION_3%TYPE;
szCoilID VARCHAR2 (20);
szFileName VARCHAR (64);
startDate DATE;
BEGIN
-------------------------------------------------------------------------------
startDate := SYSDATE;
-------------------------------------------------------------------------------
szFileName := TO_CHAR (SYSDATE, 'yyyymmdd') || 'INS_B_PDI_PLTM';
LOG_TEXT (szFileName,
TO_CHAR (startDate, 'hh24:mi:ss') || ' I: start INS_B_PDI_PLTM');
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
SELECT USERENV ('SESSIONID') INTO session_id FROM DUAL;
BEGIN
SELECT program, username
INTO programm, USER
FROM V$SESSION
WHERE audsid = session_id;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
programm := 'UNKNOWN';
USER := 'UNKNOWN';
WHEN OTHERS
THEN
IF (session_id = 0)
THEN
programm := 'JOB';
ELSE
programm := 'UNKNOWN';
END IF;
END;
-------------------------------------------------------------------------------
--:NEW.ROLLPROGRAMNB := nRollProgramNb;
--:NEW.SEQUENCENB := nSequenceNb;
-------------------------------------------------------------------------------
:NEW.STATUS := 0;
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--*****************************************************************************
-------------------------------------------------------------------------------
nCount := 0;
IF nCount = nCount -- 1000
THEN
-------------------------------------------------------------------------------
LOG_TEXT (szFileName,
'INSERT INTO RASTCMDB.V_EVN_NEW_PDI ' || :NEW.COILID);
DELETE RASTCMDB.V_EVN_NEW_PDI
WHERE SUBSTR (COIL_ID, 1, 12) = :NEW.COILID;
INSERT INTO RASTCMDB.V_EVN_NEW_PDI (COIL_ID,
ENTRY_THICK,
WIDTH_ENTRY,
WEIGHT,
ENTRY_LENGTH,
OUTER_DIAM,
CROWN,
EXIT_COIL_ID,
EXIT_THICK,
WIDTH,
HOT_GRADE,
LABEL_GRADE,
GRADE,
PACK_TYPE,
INITIAL_GAUGE,
CONTRACT_NO,
SCHEDULE_NO,
COILER_DIAMETER,
-------------------------------------------------------------------------------
WEIGHT_MODE, -- <20><><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD>ģʽ/<2F>Ƿ<EFBFBD>־<EFBFBD> 1 <20>־<EFBFBD>
WEIGHT_EXIT --<EFBFBD>־<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--DESTINATION
)
VALUES (
:NEW.COILID,
:NEW.ENTRY_COIL_THICKNESS,
:NEW.ENTRY_COIL_WIDTH,
:NEW.ENTRY_COIL_WEIGHT,
:NEW.ENTRY_OF_COIL_LENGTH,
:NEW.ENTRY_OF_COIL_OUTER_DIAMETER,
:NEW.CROWN_AVERAGE,
:NEW.EXIT_COIL_NO,
:NEW.EXIT_COIL_THICKNESS,
:NEW.EXIT_COIL_WIDTH,
:NEW.STEEL_GRADE,
:NEW.SG_SIGN,
:NEW.L2_GRADE,
:NEW.PACKING_TYPE_CODE,
:NEW.ENTRY_COIL_THICKNESS,
:NEW.WORK_ORDER_NO,
:NEW.SCHEDULE_CODE,
:NEW.COILER_DIAMETER,
-------------------------------------------------------------------------------
TO_NUMBER (
DECODE (:NEW.WEIGHT_MODE,
NULL, 0,
:NEW.WEIGHT_MODE)), -- '<27><><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD>ģʽ';
:NEW.EXIT_COIL_WEIGHT -- '<27><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
--:NEW.NEXT_PROCESS_CODE
);
LOG_TEXT (szFileName,
'INSERT INTO RASTCMDB.V_EVN_NEW_PDI <20><><EFBFBD> ' || :NEW.COILID);
RASTCMDB.PROC_PROCESS_PDI_TEST_1 ();
LOG_TEXT (
szFileName,
'INSERT INTO RASTCMDB.PROC_PROCESS_PDI_TEST_1 <20><><EFBFBD> '
|| :NEW.COILID);
-------------------------------------------------------------------------------
szCoilID := :NEW.COILID || '-00';
-------------------------------------------------------------------------------
LOG_TEXT (
szFileName,
'UPDATE RASTCMDB.PDI '
|| TO_CHAR (:NEW.ROLLPROGRAMNB)
|| ' '
|| TO_CHAR (:NEW.SEQUENCENB));
UPDATE RASTCMDB.PDI
SET ROLLPROGRAMNB = :NEW.ROLLPROGRAMNB, SEQUENCENB = :NEW.SEQUENCENB
WHERE COILID = szCoilID;
-------------------------------------------------------------------------------
LOG_TEXT (szFileName, 'UPDATE RASTCMDB.PDI ' || szCoilID);
-------------------------------------------------------------------------------
END IF;
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
:new.toc := SYSDATE;
:new.mop := SUBSTR (programm, 1, 60);
-------------------------------------------------------------------------------
--*****************************************************************************
nCrossSectionArea := :NEW.ENTRY_COIL_THICKNESS * :NEW.ENTRY_COIL_WIDTH;
-------------------------------------------------------------------------------
--1.
SELECT COUNT (*)
INTO nCount
FROM PL_BM_TENSION_XQ
WHERE CROSS_SECTION_AREA = nCrossSectionArea;
IF nCount <> 0
THEN
SELECT *
INTO TablePL_BM_TENSION_XQ
FROM PL_BM_TENSION_XQ
WHERE CROSS_SECTION_AREA = nCrossSectionArea AND ROWNUM = 1;
:NEW.CROSS_SECTION_AREA := TablePL_BM_TENSION_XQ.CROSS_SECTION_AREA;
:NEW.UNCOILER_TENSION := TablePL_BM_TENSION_XQ.UNCOILER_TENSION;
:NEW.LOOPER_TENSION_1 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_1;
:NEW.PL_TENSION := TablePL_BM_TENSION_XQ.PL_TENSION;
:NEW.LOOPER_TENSION_2 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_2;
:NEW.LOOPER_TENSION_3 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_3;
RETURN;
END IF;
-------------------------------------------------------------------------------
--2.
SELECT MIN (KEYID),
MAX (KEYID),
MIN (CROSS_SECTION_AREA),
MAX (CROSS_SECTION_AREA)
INTO nMinKeyID,
nMaxKeyID,
nMinCrossSectionArea,
nMaxCrossSectionArea
FROM PL_BM_TENSION_XQ;
-------------------------------------------------------------------------------
IF nCrossSectionArea <= nMinCrossSectionArea
OR nCrossSectionArea >= nMaxCrossSectionArea
THEN
-------------------------------------------------------------------------------
--2.<2E>ҵ<EFBFBD><D2B5>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С֮<D0A1><EFBFBD><E2A3AC><EFBFBD><EFBFBD>ǣ<EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ʹ<EFBFBD><CAB9>
IF nCrossSectionArea <= nMinCrossSectionArea
THEN
nCrossSectionArea := nMinCrossSectionArea;
ELSE
nCrossSectionArea := nMaxCrossSectionArea;
END IF;
SELECT *
INTO TablePL_BM_TENSION_XQ
FROM PL_BM_TENSION_XQ
WHERE CROSS_SECTION_AREA = nCrossSectionArea;
:NEW.CROSS_SECTION_AREA := TablePL_BM_TENSION_XQ.CROSS_SECTION_AREA;
:NEW.UNCOILER_TENSION := TablePL_BM_TENSION_XQ.UNCOILER_TENSION;
:NEW.LOOPER_TENSION_1 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_1;
:NEW.PL_TENSION := TablePL_BM_TENSION_XQ.PL_TENSION;
:NEW.LOOPER_TENSION_2 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_2;
:NEW.LOOPER_TENSION_3 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_3;
RETURN;
-------------------------------------------------------------------------------
ELSE
-------------------------------------------------------------------------------
--3.
SELECT KEYID
INTO nMinKeyID
FROM ( SELECT *
FROM PL_BM_TENSION_XQ
WHERE CROSS_SECTION_AREA < nCrossSectionArea
ORDER BY CROSS_SECTION_AREA DESC)
WHERE ROWNUM = 1;
SELECT KEYID
INTO nMaxKeyID
FROM ( SELECT *
FROM PL_BM_TENSION_XQ
WHERE CROSS_SECTION_AREA > nCrossSectionArea
ORDER BY CROSS_SECTION_AREA ASC)
WHERE ROWNUM = 1;
SELECT *
INTO TablePL_BM_TENSION_XQ_MIN
FROM PL_BM_TENSION_XQ
WHERE KEYID = nMinKeyID;
SELECT *
INTO TablePL_BM_TENSION_XQ_MAX
FROM PL_BM_TENSION_XQ
WHERE KEYID = nMaxKeyID;
iCross_section_areaMin := TablePL_BM_TENSION_XQ_MIN.CROSS_SECTION_AREA;
iUncoiler_tensionMin := TablePL_BM_TENSION_XQ_MIN.UNCOILER_TENSION;
iLooper_tension_1Min := TablePL_BM_TENSION_XQ_MIN.LOOPER_TENSION_1;
iPL_tensionMin := TablePL_BM_TENSION_XQ_MIN.PL_TENSION;
iLooper_tension_2Min := TablePL_BM_TENSION_XQ_MIN.LOOPER_TENSION_2;
iLooper_tension_3Min := TablePL_BM_TENSION_XQ_MIN.LOOPER_TENSION_3;
iCross_section_areaMax := TablePL_BM_TENSION_XQ_MAX.CROSS_SECTION_AREA;
iUncoiler_tensionMax := TablePL_BM_TENSION_XQ_MAX.UNCOILER_TENSION;
iLooper_tension_1Max := TablePL_BM_TENSION_XQ_MAX.LOOPER_TENSION_1;
iPL_tensionMax := TablePL_BM_TENSION_XQ_MAX.PL_TENSION;
iLooper_tension_2Max := TablePL_BM_TENSION_XQ_MAX.LOOPER_TENSION_2;
iLooper_tension_3Max := TablePL_BM_TENSION_XQ_MAX.LOOPER_TENSION_3;
:NEW.CROSS_SECTION_AREA := nCrossSectionArea;
--iUncoiler_tension :=
:NEW.UNCOILER_TENSION :=
( (iUncoiler_tensionMax - iUncoiler_tensionMin)
/ (iCross_section_areaMax - iCross_section_areaMin)
* (nCrossSectionArea - iCross_section_areaMin)
+ iUncoiler_tensionMin)
* nCrossSectionArea;
:NEW.LOOPER_TENSION_1 :=
( (iLooper_tension_1Max - iLooper_tension_1Min)
/ (iCross_section_areaMax - iCross_section_areaMin)
* (nCrossSectionArea - iCross_section_areaMin)
+ iUncoiler_tensionMin)
* nCrossSectionArea;
:NEW.PL_TENSION :=
( (iLooper_tension_1Max - iPL_tensionMax)
/ (iCross_section_areaMax - iCross_section_areaMin)
* (nCrossSectionArea - iCross_section_areaMin)
+ iUncoiler_tensionMin)
* nCrossSectionArea;
:NEW.LOOPER_TENSION_2 :=
( (iLooper_tension_2Max - iLooper_tension_2Min)
/ (iCross_section_areaMax - iCross_section_areaMin)
* (nCrossSectionArea - iCross_section_areaMin)
+ iUncoiler_tensionMin)
* nCrossSectionArea;
:NEW.LOOPER_TENSION_3 :=
( (iLooper_tension_3Max - iLooper_tension_3Min)
/ (iCross_section_areaMax - iCross_section_areaMin)
* (nCrossSectionArea - iCross_section_areaMin)
+ iUncoiler_tensionMin)
* nCrossSectionArea;
-------------------------------------------------------------------------------
END IF;
-------------------------------------------------------------------------------
EXCEPTION
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END INS_B_PDI_PLTM;
/
CREATE OR REPLACE TRIGGER UPD_B_PDI_PLTM
BEFORE UPDATE
ON PDI_PLTM
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
tmpVar NUMBER;
nIndex NUMBER;
--PRAGMA AUTONOMOUS_TRANSACTION;
nCrossSectionArea PDI_PLTM.CROSS_SECTION_AREA%TYPE;
nMinCrossSectionArea PDI_PLTM.CROSS_SECTION_AREA%TYPE;
nMaxCrossSectionArea PDI_PLTM.CROSS_SECTION_AREA%TYPE;
TablePL_BM_TENSION_XQ PL_BM_TENSION_XQ%ROWTYPE;
TablePL_BM_TENSION_XQ_MIN PL_BM_TENSION_XQ%ROWTYPE;
TablePL_BM_TENSION_XQ_MAX PL_BM_TENSION_XQ%ROWTYPE;
nMinKeyID NUMBER;
nMaxKeyID NUMBER;
nCount NUMBER;
iCross_section_areaMin PDI_PLTM.CROSS_SECTION_AREA%TYPE;
iUncoiler_tensionMin PDI_PLTM.UNCOILER_TENSION%TYPE;
iLooper_tension_1Min PDI_PLTM.LOOPER_TENSION_1%TYPE;
iPL_tensionMin PDI_PLTM.PL_TENSION%TYPE;
iLooper_tension_2Min PDI_PLTM.LOOPER_TENSION_2%TYPE;
iLooper_tension_3Min PDI_PLTM.LOOPER_TENSION_3%TYPE;
iCross_section_areaMax PDI_PLTM.CROSS_SECTION_AREA%TYPE;
iUncoiler_tensionMax PDI_PLTM.UNCOILER_TENSION%TYPE;
iLooper_tension_1Max PDI_PLTM.LOOPER_TENSION_1%TYPE;
iPL_tensionMax PDI_PLTM.PL_TENSION%TYPE;
iLooper_tension_2Max PDI_PLTM.LOOPER_TENSION_2%TYPE;
iLooper_tension_3Max PDI_PLTM.LOOPER_TENSION_3%TYPE;
--iCross_section_area PDI_PLTM.CROSS_SECTION_AREA%TYPE;
iUncoiler_tension PDI_PLTM.UNCOILER_TENSION%TYPE;
iLooper_tension_1 PDI_PLTM.LOOPER_TENSION_1%TYPE;
iPL_tension PDI_PLTM.PL_TENSION%TYPE;
iLooper_tension_2 PDI_PLTM.LOOPER_TENSION_2%TYPE;
iLooper_tension_3 PDI_PLTM.LOOPER_TENSION_3%TYPE;
szCoilID VARCHAR2 (20);
BEGIN
tmpVar := 0;
-------------------------------------------------------------------------------
--*****************************************************************************
-------------------------------------------------------------------------------
szCoilID := :NEW.COILID || '%';
SELECT COUNT (COILID)
INTO nCount
FROM RASTCMDB.PDI
WHERE COILID LIKE szCoilID;
IF nCount > 0
THEN
szCoilID := :NEW.COILID || '%';
IF :NEW.STATUS = :OLD.STATUS ------ AND :NEW.STATUS = 0
THEN
IF NOT :NEW.L2_GRADE IS NULL AND TRIM (:NEW.L2_GRADE) <> ''
THEN
UPDATE RASTCMDB.PDI
SET GRADE = :NEW.L2_GRADE,
HOT_GRADE = :NEW.STEEL_GRADE,
LABEL_GRADE = :NEW.SG_SIGN, --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-------------------------------------------------------------------------------
PACK_TYPE = :NEW.PACKING_TYPE_CODE,
CONTRACT_NO = :NEW.WORK_ORDER_NO,
SCHEDULE_NO = :NEW.SCHEDULE_CODE,
COILER_DIAMETER = :NEW.COILER_DIAMETER,
EXIT_COIL_ID = :NEW.EXIT_COIL_NO,
WEIGHT = :NEW.ENTRY_COIL_WEIGHT,
ENTRYLENGTH = :NEW.ENTRY_OF_COIL_LENGTH,
OUTSIDEDIAM = :NEW.ENTRY_OF_COIL_OUTER_DIAMETER,
CROWN = :NEW.CROWN_AVERAGE,
-------------------------------------------------------------------------------
contract_exitthick = :NEW.ORDER_THICKNESS, --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-------------------------------------------------------------------------------
ENTRYTHICK = :NEW.ENTRY_COIL_THICKNESS, --<2D><><EFBFBD>Ϻ<EFBFBD><CFBA>
INITIAL_GAUGE = :NEW.ENTRY_COIL_THICKNESS, --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><EFBFBD>
WIDTH = :NEW.EXIT_COIL_WIDTH, --<EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD>
--WIDTH_ENTRY = :NEW.ENTRY_COIL_WIDTH, --<EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><EFBFBD>
-------------------------------------------------------------------------------
EXITTHICK = :NEW.EXIT_COIL_THICKNESS, --<2D><>Ʒ<EFBFBD><C6B7><EFBFBD>
EXITWIDTH = :NEW.EXIT_COIL_WIDTH, --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD>
-------------------------------------------------------------------------------
WEIGHT_MODE = TO_NUMBER (:NEW.WEIGHT_MODE), -- <20><><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD>ģʽ/<2F>Ƿ<EFBFBD>־<EFBFBD> 1 <20>־<EFBFBD>
WEIGHT_EXIT = :NEW.EXIT_COIL_WEIGHT, --<EFBFBD>־<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-------------------------------------------------------------------------------
ROLLPROGRAMNB = :NEW.ROLLPROGRAMNB,
SEQUENCENB = :NEW.SEQUENCENB
-------------------------------------------------------------------------------
WHERE COILID LIKE szCoilID;
ELSE
UPDATE RASTCMDB.PDI
SET --GRADE = :NEW.L2_GRADE,
HOT_GRADE = :NEW.STEEL_GRADE,
LABEL_GRADE = :NEW.SG_SIGN, --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-------------------------------------------------------------------------------
PACK_TYPE = :NEW.PACKING_TYPE_CODE,
CONTRACT_NO = :NEW.WORK_ORDER_NO,
SCHEDULE_NO = :NEW.SCHEDULE_CODE,
COILER_DIAMETER = :NEW.COILER_DIAMETER,
EXIT_COIL_ID = :NEW.EXIT_COIL_NO,
WEIGHT = :NEW.ENTRY_COIL_WEIGHT,
ENTRYLENGTH = :NEW.ENTRY_OF_COIL_LENGTH,
OUTSIDEDIAM = :NEW.ENTRY_OF_COIL_OUTER_DIAMETER,
CROWN = :NEW.CROWN_AVERAGE,
-------------------------------------------------------------------------------
contract_exitthick = :NEW.ORDER_THICKNESS, --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-------------------------------------------------------------------------------
ENTRYTHICK = :NEW.ENTRY_COIL_THICKNESS, --<2D><><EFBFBD>Ϻ<EFBFBD><CFBA>
INITIAL_GAUGE = :NEW.ENTRY_COIL_THICKNESS, --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><EFBFBD>
WIDTH = :NEW.EXIT_COIL_WIDTH, --<EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD>
--WIDTH_ENTRY = :NEW.ENTRY_COIL_WIDTH, --<EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><EFBFBD>
-------------------------------------------------------------------------------
EXITTHICK = :NEW.EXIT_COIL_THICKNESS, --<2D><>Ʒ<EFBFBD><C6B7><EFBFBD>
EXITWIDTH = :NEW.EXIT_COIL_WIDTH, --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD>
-------------------------------------------------------------------------------
WEIGHT_MODE = TO_NUMBER (:NEW.WEIGHT_MODE), -- <20><><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD>ģʽ/<2F>Ƿ<EFBFBD>־<EFBFBD> 1 <20>־<EFBFBD>
WEIGHT_EXIT = :NEW.EXIT_COIL_WEIGHT, --<EFBFBD>־<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-------------------------------------------------------------------------------
ROLLPROGRAMNB = :NEW.ROLLPROGRAMNB,
SEQUENCENB = :NEW.SEQUENCENB
-------------------------------------------------------------------------------
WHERE COILID LIKE szCoilID;
END IF;
END IF;
END IF;
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
nCrossSectionArea := :NEW.ENTRY_COIL_THICKNESS * :NEW.ENTRY_COIL_WIDTH;
-------------------------------------------------------------------------------
--1.
SELECT COUNT (*)
INTO nCount
FROM PL_BM_TENSION_XQ
WHERE CROSS_SECTION_AREA = nCrossSectionArea;
IF nCount <> 0
THEN
SELECT *
INTO TablePL_BM_TENSION_XQ
FROM PL_BM_TENSION_XQ
WHERE CROSS_SECTION_AREA = nCrossSectionArea AND ROWNUM = 1;
:NEW.CROSS_SECTION_AREA := TablePL_BM_TENSION_XQ.CROSS_SECTION_AREA;
:NEW.UNCOILER_TENSION := TablePL_BM_TENSION_XQ.UNCOILER_TENSION;
:NEW.LOOPER_TENSION_1 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_1;
:NEW.PL_TENSION := TablePL_BM_TENSION_XQ.PL_TENSION;
:NEW.LOOPER_TENSION_2 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_2;
:NEW.LOOPER_TENSION_3 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_3;
RETURN;
END IF;
-------------------------------------------------------------------------------
--2.
SELECT MIN (KEYID),
MAX (KEYID),
MIN (CROSS_SECTION_AREA),
MAX (CROSS_SECTION_AREA)
INTO nMinKeyID,
nMaxKeyID,
nMinCrossSectionArea,
nMaxCrossSectionArea
FROM PL_BM_TENSION_XQ;
-------------------------------------------------------------------------------
IF nCrossSectionArea <= nMinCrossSectionArea
OR nCrossSectionArea >= nMaxCrossSectionArea
THEN
-------------------------------------------------------------------------------
--2.<2E>ҵ<EFBFBD><D2B5>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С֮<D0A1><EFBFBD><E2A3AC><EFBFBD><EFBFBD>ǣ<EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ʹ<EFBFBD><CAB9>
IF nCrossSectionArea <= nMinCrossSectionArea
THEN
nCrossSectionArea := nMinCrossSectionArea;
ELSE
nCrossSectionArea := nMaxCrossSectionArea;
END IF;
SELECT *
INTO TablePL_BM_TENSION_XQ
FROM PL_BM_TENSION_XQ
WHERE CROSS_SECTION_AREA = nCrossSectionArea;
:NEW.CROSS_SECTION_AREA := TablePL_BM_TENSION_XQ.CROSS_SECTION_AREA;
:NEW.UNCOILER_TENSION := TablePL_BM_TENSION_XQ.UNCOILER_TENSION;
:NEW.LOOPER_TENSION_1 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_1;
:NEW.PL_TENSION := TablePL_BM_TENSION_XQ.PL_TENSION;
:NEW.LOOPER_TENSION_2 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_2;
:NEW.LOOPER_TENSION_3 := TablePL_BM_TENSION_XQ.LOOPER_TENSION_3;
RETURN;
-------------------------------------------------------------------------------
ELSE
-------------------------------------------------------------------------------
--3.
SELECT KEYID
INTO nMinKeyID
FROM ( SELECT *
FROM PL_BM_TENSION_XQ
WHERE CROSS_SECTION_AREA < nCrossSectionArea
ORDER BY CROSS_SECTION_AREA DESC)
WHERE ROWNUM = 1;
SELECT KEYID
INTO nMaxKeyID
FROM ( SELECT *
FROM PL_BM_TENSION_XQ
WHERE CROSS_SECTION_AREA > nCrossSectionArea
ORDER BY CROSS_SECTION_AREA ASC)
WHERE ROWNUM = 1;
SELECT *
INTO TablePL_BM_TENSION_XQ_MIN
FROM PL_BM_TENSION_XQ
WHERE KEYID = nMinKeyID;
SELECT *
INTO TablePL_BM_TENSION_XQ_MAX
FROM PL_BM_TENSION_XQ
WHERE KEYID = nMaxKeyID;
iCross_section_areaMin := TablePL_BM_TENSION_XQ_MIN.CROSS_SECTION_AREA;
iUncoiler_tensionMin := TablePL_BM_TENSION_XQ_MIN.UNCOILER_TENSION;
iLooper_tension_1Min := TablePL_BM_TENSION_XQ_MIN.LOOPER_TENSION_1;
iPL_tensionMin := TablePL_BM_TENSION_XQ_MIN.PL_TENSION;
iLooper_tension_2Min := TablePL_BM_TENSION_XQ_MIN.LOOPER_TENSION_2;
iLooper_tension_3Min := TablePL_BM_TENSION_XQ_MIN.LOOPER_TENSION_3;
iCross_section_areaMax := TablePL_BM_TENSION_XQ_MAX.CROSS_SECTION_AREA;
iUncoiler_tensionMax := TablePL_BM_TENSION_XQ_MAX.UNCOILER_TENSION;
iLooper_tension_1Max := TablePL_BM_TENSION_XQ_MAX.LOOPER_TENSION_1;
iPL_tensionMax := TablePL_BM_TENSION_XQ_MAX.PL_TENSION;
iLooper_tension_2Max := TablePL_BM_TENSION_XQ_MAX.LOOPER_TENSION_2;
iLooper_tension_3Max := TablePL_BM_TENSION_XQ_MAX.LOOPER_TENSION_3;
--iUncoiler_tension :=
:NEW.CROSS_SECTION_AREA := nCrossSectionArea;
:NEW.UNCOILER_TENSION :=
( (iUncoiler_tensionMax - iUncoiler_tensionMin)
/ (iCross_section_areaMax - iCross_section_areaMin)
* (nCrossSectionArea - iCross_section_areaMin)
+ iUncoiler_tensionMin)
* nCrossSectionArea;
:NEW.LOOPER_TENSION_1 :=
( (iLooper_tension_1Max - iLooper_tension_1Min)
/ (iCross_section_areaMax - iCross_section_areaMin)
* (nCrossSectionArea - iCross_section_areaMin)
+ iLooper_tension_1Min)
* nCrossSectionArea;
:NEW.PL_TENSION :=
( (iLooper_tension_1Max - iPL_tensionMin)
/ (iCross_section_areaMax - iCross_section_areaMin)
* (nCrossSectionArea - iCross_section_areaMin)
+ iPL_tensionMin)
* nCrossSectionArea;
:NEW.LOOPER_TENSION_2 :=
( (iLooper_tension_2Max - iLooper_tension_2Min)
/ (iCross_section_areaMax - iCross_section_areaMin)
* (nCrossSectionArea - iCross_section_areaMin)
+ iLooper_tension_2Min)
* nCrossSectionArea;
:NEW.LOOPER_TENSION_3 :=
( (iLooper_tension_3Max - iLooper_tension_3Min)
/ (iCross_section_areaMax - iCross_section_areaMin)
* (nCrossSectionArea - iCross_section_areaMin)
+ iLooper_tension_3Min)
* nCrossSectionArea;
-------------------------------------------------------------------------------
END IF;
-------------------------------------------------------------------------------
--szCoilID := :NEW.COILID || '%';
-------------------------------------------------------------------------------
EXCEPTION
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END UPD_B_PDI_PLTM;
/
ALTER TABLE PDI_PLTM ADD (
CONSTRAINT PK_PDI_PLTM
PRIMARY KEY
(COILID)
USING INDEX PK_PDI_PLTM
ENABLE VALIDATE);
GRANT DELETE, INSERT, SELECT, UPDATE ON PLTM.PDI_PLTM TO PLTM;