CREATE OR REPLACE PROCEDURE WDC11AP
-------------------------------------------------------------------------------
-- PROGRAM HEADER ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-------------------------------------------------------------------------------
-- SYSTEM NAME ERP INTERFACE SYSTEM
-- SUB_SYSTEM NAME PRODUCT MOVE RESULT
-- PROGRAM NAME DELAY DATA SEND TO ERP EQUIPMENT SYSTEM
-- PROGRAM ID ODM041AP
-- DESIGNER xxx
-- CODER xxx
-- DATE 2018.09.27
-- DESCRIPTION DELAY DATA SEND TO ERP EQUIPMENT SYSTEM
-------------------------------------------------------------------------------
-- UPDATE HISTORY ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-------------------------------------------------------------------------------
-- VER DATE EDITOR DESCRIPTION
-- 1.00 2018.09.27 景维松 上抛数据
-------------------------------------------------------------------------------
-- DECLARATION ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-------------------------------------------------------------------------------
--主键
(P_COMP_ID IN TB_POD_011.COMP_ID %TYPE DEFAULT NULL, --公司别
P_ORDER_NO IN TB_POD_011.ORDER_NO %TYPE DEFAULT NULL, --订单编号
P_ORDER_ITEM IN TB_POD_011.ORDER_ITEM %TYPE DEFAULT NULL, --订单项次
P_LOTNO IN TB_OD_0021.LOTNO %TYPE DEFAULT NULL, --轧制序号
P_SEQUENCENO IN TB_OD_0021.SEQUENCENO %TYPE DEFAULT NULL, --排序号码
P_STATUS IN VARCHAR2 DEFAULT NULL,
P_RTN_MSG OUT VARCHAR2
) IS
-- CONSTANT DECLARE
C_PGM_ID CONSTANT CHAR(10) := 'ODM041AP';
--C_QUEUEID CONSTANT NISCO.TBDIPDO.QUEUEID%TYPE := 'OJ00';
C_QUEUEID CONSTANT TBDIPDO.QUEUEID%TYPE := 'WD02';
C_FORM_ID CONSTANT VARCHAR2(10) := 'WD02';
C_STATUS CONSTANT TBDIPDO.STATUS%TYPE := 'N';
C_DOMAIN_NAME CONSTANT VARCHAR2(50) := 'MES';
C_CHAR_SET CONSTANT VARCHAR2(02) := '1';
C_MSG_TYPE CONSTANT VARCHAR2(02) := ' ';
C_MSG_FORM CONSTANT VARCHAR2(01) := '1';
C_COMPANY_ID CONSTANT VARCHAR2(10) := ' ';
C_PSW CONSTANT VARCHAR2(10) := ' ';
C_POINTER CONSTANT VARCHAR2(06) := ' ';
C_RESERVED CONSTANT VARCHAR2(10) := ' ';
C_HEAD_LEN CONSTANT NUMBER(10) := 129;
C_DATA_LEN CONSTANT NUMBER(10) := 166; --- BY INTERFACE FORM
V_TIMESTAMP TBDIPDO.TIMESTAMP%TYPE;
V_HEADER TBDIPDO.HEADER%TYPE;
V_DATA_LEN NUMBER(12);
V_DATA TBDIPDO.DATA%TYPE;
-- CHEMICAL DATA DEVIDE
TYPE TYPE_CHEM IS RECORD(
COMP_ID TB_POD_011.COMP_ID %TYPE DEFAULT NULL, --公司别
ORDER_NO TB_POD_011.ORDER_NO %TYPE DEFAULT NULL, --订单编号
ORDER_ITEM TB_POD_011.ORDER_ITEM %TYPE DEFAULT NULL, --订单项次
LOTNO TB_OD_0021.LOTNO %TYPE DEFAULT NULL, --轧制序号
SEQUENCENO TB_OD_0021.SEQUENCENO %TYPE DEFAULT NULL, --排序号码
LINENO TB_OD_0021.LINENO %TYPE DEFAULT NULL,
MILL_DATE TB_OD_0021.MILL_DATE %TYPE DEFAULT NULL,
HOUSENO TB_OD_0021.HOUSENO %TYPE DEFAULT NULL,
HEATNO TB_OD_0021.HEATNO %TYPE DEFAULT NULL,
INPCS TB_OD_0021.INPCS %TYPE DEFAULT NULL,
INWGT TB_OD_0021.INWGT %TYPE DEFAULT NULL,
TRADE_NO TB_POD_011.TRADE_NO %TYPE DEFAULT NULL,
ORDER_LENGTH TB_POD_011.ORDER_LENGTH %TYPE DEFAULT NULL,
ORDER_WIDTH TB_POD_011.ORDER_WIDTH %TYPE DEFAULT NULL,
ORDER_THICK TB_POD_011.ORDER_THICK %TYPE DEFAULT NULL,
PCS_PLAN TB_OD_0021.PCS_PLAN %TYPE DEFAULT NULL,
PLANWGT TB_OD_0021.PLANWGT %TYPE DEFAULT NULL,
LOC TB_OD_0021.LOC %TYPE DEFAULT NULL,
RECODE TB_OD_0021.RECODE %TYPE DEFAULT NULL,
ENDUSE TB_OD_0021.ENDUSE %TYPE DEFAULT NULL,
CUST_NO TB_POD_011.CUST_NO %TYPE DEFAULT NULL,
ORDER_LACKWGT TB_POD_011.ORDER_LACKWGT %TYPE DEFAULT NULL,
ISBOOMORDER TB_POD_011.ISBOOMORDER %TYPE DEFAULT NULL,
DEPT TB_OD_0021.DEPT %TYPE DEFAULT NULL,
LOCTYPE TB_OD_0021.LOCTYPE %TYPE DEFAULT NULL,
LAYER TB_OD_0021.LAYER %TYPE DEFAULT NULL
);
R_TB_POD_011 TYPE_CHEM; --详细档数量
V_COUNT_CNT NUMBER(3);
---- ERROR DB
V_ERRDB ZP_ERROR%ROWTYPE;
V_RTN_MSG VARCHAR2(100) := NULL;
-- USER EXCEPTION DECLARE
PGM_EXIT EXCEPTION;
ERR_EXIT EXCEPTION;
BEGIN
P_RTN_MSG := NULL;
V_COUNT_CNT := 0;
--查询0021是否有数据
--有:下抛
--没有:不下抛
SELECT COUNT(*) INTO V_COUNT_CNT FROM TB_OD_0021 WHERE LOTNO=P_LOTNO;
IF V_COUNT_CNT = 0 THEN
RETURN;
END IF;
BEGIN
SELECT B.COMP_ID,
B.ORDER_NO,
B.ORDER_ITEM,
A.LOTNO,
A.SEQUENCENO,
A.LINENO,
A.MILL_DATE,
A.HOUSENO,
A.HEATNO,
A.INPCS,
A.INWGT,
B.TRADE_NO,
B.ORDER_LENGTH,
B.ORDER_WIDTH,
B.ORDER_THICK,
A.PCS_PLAN,
A.PLANWGT,
A.LOC,
A.RECODE,
A.ENDUSE,
B.CUST_NO,
B.ORDER_LACKWGT,
B.ISBOOMORDER,
A.DEPT,
A.LOCTYPE,
A.LAYER
INTO R_TB_POD_011
FROM TB_OD_0021 A , TB_POD_011 B
WHERE A.ORDER_NO=B.ORDER_NO
AND A.ORDER_ITEM=B.ORDER_ITEM
AND A.COMPID=B.COMP_ID
AND A.ORDER_NO=P_ORDER_NO
AND A.ORDER_ITEM=P_ORDER_ITEM
AND A.LOTNO = P_LOTNO;
------------------------------------------------------------------------------------------------------
--A.LOTNO,--轧制序号
-- A.ID,--捆号
-- A.ISWASTE,--是否定尺
-- A.WGT,--重量
--A.PCS,--支数
--C.ORDERCALIBER,--直径
--C.ORDERWIDTH,--宽度
--C.ORDERLEN,--长度
--A.CREATEDATE,
--A.CREATETIME,
--B.OPERATECREW
--INTO R_TB_OD_0002
--FROM TB_OD_0002 A
--LEFT JOIN TB_OD_M041 B
--ON A.LOTNO=B.LOTNO
--AND A.ID=B.ID
--LEFT JOIN TB_OD_0011 C
--ON A.LOTNO=C.LOTNO
--WHERE A.LOTNO=P_LOTNO
--AND A.ID=P_ID;
------------------------------------------
EXCEPTION
WHEN OTHERS THEN
P_RTN_MSG := 'NOT RESULT DB(TQF_RFP)';
V_ERRDB.ERR_DESC := P_RTN_MSG;
V_ERRDB.RTN_NAME := 'RESULT DATA SEND TO ERP SYSTEM';
V_ERRDB.ERR_PARA1 := '';
V_ERRDB.ERR_PARA2 := '';
GP_ERROR(C_PGM_ID,
'TQF_RFP',
'R',
V_ERRDB.ERR_DESC,
V_ERRDB.RTN_NAME,
V_ERRDB.ERR_PARA1,
V_ERRDB.ERR_PARA2,
V_RTN_MSG);
ROLLBACK;
RETURN;
END;
--------------------------------------------------------------------------------
-- PARAMETA ERROR CHECK
--------------------------------------------------------------------------------
IF P_STATUS NOT IN('N','U','D') THEN
V_ERRDB.ERR_DESC := C_PGM_ID||'-'||'STATUS ERROR';
--V_ERRDB.ERR_PARA1 := P_REF_NUM;
RAISE PGM_EXIT;
END IF;
--------------------------------------------------------------------------------
-- CHEMICAL RESULT READ & EDIT
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- DATA EDITION
--------------------------------------------------------------------------------
V_DATA_LEN := C_HEAD_LEN + C_DATA_LEN + 10;
V_HEADER := RPAD(NVL(V_DATA_LEN, 0), 12, ' ') || -- 1 ~ 12
RPAD(NVL(C_DOMAIN_NAME, 0), 50, ' ') || -- 13 ~ 62
RPAD(NVL(C_QUEUEID, ' '), 12, ' ') || -- 63 ~ 74
RPAD(TO_CHAR(SYSDATE, 'YYYYMMDD'), 8, ' ') || -- 75 ~ 82
RPAD(TO_CHAR(SYSDATE, 'HH24MISS'), 6, ' ') || -- 83 ~ 88
RPAD(NVL(C_CHAR_SET, ' '), 2, ' ') || -- 89 ~ 90
RPAD(NVL(C_MSG_TYPE, ' '), 2, ' ') || -- 91 ~ 92
RPAD(NVL(C_MSG_FORM, ' '), 1, ' ') || -- 93 ~ 93
RPAD(NVL(C_COMPANY_ID, ' '), 10, ' ') || -- 94 ~ 103
RPAD(NVL(C_PSW, ' '), 10, ' ') || -- 104 ~ 113
RPAD(NVL(C_POINTER, ' '), 6, ' ') || -- 114 ~ 119
RPAD(NVL(C_RESERVED, ' '), 10, ' '); -- 120 ~ 129
SELECT RPAD(NVL(C_FORM_ID, ' '), 10, ' ') || -- 1 ~ 10
RPAD(NVL(C_STATUS, ' '), 1, ' ') || -- 11
RPAD(NVL(R_TB_POD_011.COMP_ID,' '),10,' ') || --12~21
RPAD(NVL(R_TB_POD_011.ORDER_NO,' '),15,' ') || --22~36
RPAD(NVL(R_TB_POD_011.ORDER_ITEM,' '),4,' ') || --37~40
RPAD(NVL(R_TB_POD_011.LOTNO,' '),15,' ') || --41~55
RPAD(NVL(R_TB_POD_011.SEQUENCENO,' '),15,' ') || --56~70
RPAD(NVL(R_TB_POD_011.LINENO,' '),2,' ')|| --71~72
RPAD(NVL(R_TB_POD_011.HOUSENO,' '),2,' ') || --73~74
RPAD(NVL(R_TB_POD_011.MILL_DATE,' '),14,' ') || --75~88
RPAD(NVL(R_TB_POD_011.HEATNO,' '),8,' ') || --89~96
RPAD(NVL(R_TB_POD_011.INPCS,0),6,' ') || --97~102
RPAD(NVL(R_TB_POD_011.INWGT,0),16,' ') || --103~118
RPAD(NVL(R_TB_POD_011.TRADE_NO,' '),15,' ') || --119~133
RPAD(NVL(R_TB_POD_011.ORDER_LENGTH,0),11,' ') || --134~144
RPAD(NVL(R_TB_POD_011.ORDER_WIDTH,0),11, ' ') || --145~155
RPAD(NVL(R_TB_POD_011.ORDER_THICK,0),11,' ') || --156~166
RPAD(NVL(R_TB_POD_011.PCS_PLAN,0),9,' ') || --167~175
RPAD(NVL(R_TB_POD_011.PLANWGT,0),16,' ') || --176~191
RPAD(NVL(R_TB_POD_011.LOC,' '),9,' ') || --192~200
RPAD(NVL(R_TB_POD_011.RECODE,' '),1,' ') || --201
RPAD(NVL(R_TB_POD_011.ENDUSE,' '),1,' ') || --202
RPAD(NVL(R_TB_POD_011.CUST_NO,' '),20,' ') || --203~222
RPAD(NVL(R_TB_POD_011.ORDER_LACKWGT,0),13,' ') || --223~235
RPAD(NVL(R_TB_POD_011.ISBOOMORDER,' '),1,' ') || --236
RPAD(NVL(R_TB_POD_011.DEPT,' '),5,' ') || --237~241
RPAD(NVL(R_TB_POD_011.LOCTYPE,' '),1,' ') || --242
RPAD(NVL(R_TB_POD_011.LAYER,0),3,' ') --243~245
----------------------------------------------------------------------------------------------
--RPAD(NVL(C_FORM_ID, ' '), 10, ' ') || -- 1 ~ 10
-- RPAD(NVL(C_STATUS, ' '), 1, ' ') || -- 11
-- RPAD(NVL(R_TB_OD_0002.LOTNO, ' '), 15, ' ') || -- 12- 24
-- RPAD(NVL(R_TB_OD_0002.ID, ' '), 4, ' ') || -- 25 ~ 28
-- RPAD(NVL(R_TB_OD_0002.ISWASTE, 0), 1, ' ') || -- 29
-- RPAD(NVL(R_TB_OD_0002.WGT||'', 0), 12, ' ') || -- 30 ~ 31
-- RPAD(NVL(R_TB_OD_0002.PCS||'', ' '), 1, ' ') || -- 32 ~ 34
-- RPAD(NVL(R_TB_OD_0002.ORDERCALIBER||'', ' '), 8, ' ') || -- 35 ~ 42
-- RPAD(NVL(R_TB_OD_0002.ORDERWIDTH||'', ' '), 8, ' ') || -- 43 ~ 50
-- RPAD(NVL(R_TB_OD_0002.ORDERLEN||'', 0), 8, ' ') || -- 51 ~ 58
-- RPAD(NVL('', 0), 8, ' ') || -- 59 ~ 66
-- RPAD(NVL('', 0), 6, ' ') || -- 67 ~ 72
-- RPAD(NVL(R_TB_OD_0002.OPERATECREW, 0), 1, ' ') || -- 73
-- RPAD(NVL('', 0), 5, ' ') || -- 74 ~ 78
-- RPAD(NVL('', 0), 6, ' ') || -- 79 ~ 84
-- RPAD(NVL('', 0), 20, ' ') || -- 85 ~ 104
-- RPAD(NVL('', 0), 14, ' ') || -- 105 ~ 118
-- RPAD(NVL('', 0), 8, ' ') || -- 119 ~ 126
-- RPAD(NVL('', 0), 1, ' ') || -- 127
-- RPAD(NVL('', 0), 1, ' ') || -- 128
-- RPAD(NVL('', 0), 10, ' ') || -- 129 ~ 138
-- RPAD(NVL('', 0), 12, ' ') || -- 139 ~ 150
-- RPAD(NVL('', 0), 1, ' ') || -- 151
-- RPAD(NVL('', 0), 15, ' ')-- 152 ~ 166
------------------------------------------------------------------------------------------------
INTO V_DATA
FROM DUAL;
--2018,06,20 sunbin end
--------------------------------------------------------------------------------
-- INTERFACE SEQUENCS
--------------------------------------------------------------------------------
SELECT (TO_DATE(TO_CHAR(SYSTIMESTAMP(3), 'YYYYMMDDHH24MISS'),
'YYYYMMDDHH24MISS') -
TO_DATE('19700101080000', 'YYYYMMDDHH24MISS')) * 86400000 +
TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF'))
INTO V_TIMESTAMP
FROM DUAL;
--------------------------------------------------------------------------------
-- PARAMETA ERROR CHECK
--------------------------------------------------------------------------------
BEGIN
INSERT INTO TBDIPDO
VALUES
(V_TIMESTAMP,
GS_TBDIPDO_SEQ.NEXTVAL,
C_QUEUEID,
V_HEADER,
V_DATA,
C_STATUS,
NULL, -- PROCESS TIME
NULL -- DESCRIPTION (PROCESS ERROR MESSAGE)
);
EXCEPTION
WHEN OTHERS THEN
P_RTN_MSG := 'DATA ERP INTERFACE DB INSERT ERROR(TQF_RFP)';
V_ERRDB.ERR_DESC := SQLCODE || '>>' || SUBSTR(SQLERRM, 1, 90);
V_ERRDB.RTN_NAME := 'DATA SEND TO ERP SYSTEM';
V_ERRDB.ERR_PARA1 := '';
V_ERRDB.ERR_PARA2 := '';
GP_ERROR(C_PGM_ID,
'TBDIPDO',
'B',
V_ERRDB.ERR_DESC,
V_ERRDB.RTN_NAME,
V_ERRDB.ERR_PARA1,
V_ERRDB.ERR_PARA2,
V_RTN_MSG);
ROLLBACK;
RETURN;
END;
RETURN;
EXCEPTION
WHEN PGM_EXIT THEN
V_ERRDB.ERR_DESC := P_RTN_MSG;
--DBMS_OUTPUT.PUT_LINE(C_PGM_ID||V_ERRDB.ERR_DESC);
V_ERRDB.RTN_NAME := 'DATA SEND TO ERP SYSTEM';
V_ERRDB.ERR_PARA2 := '';
GP_ERROR(C_PGM_ID,
'',
'',
V_ERRDB.ERR_DESC,
V_ERRDB.RTN_NAME,
V_ERRDB.ERR_PARA1,
V_ERRDB.ERR_PARA2,
V_RTN_MSG);
ROLLBACK;
RETURN;
WHEN OTHERS THEN
V_ERRDB.ERR_DESC := SQLCODE || '>>' || SUBSTR(SQLERRM, 1, 90);
P_RTN_MSG := V_ERRDB.ERR_DESC;
--DBMS_OUTPUT.PUT_LINE(C_PGM_ID||'--'||V_ERRDB.ERR_DESC);
V_ERRDB.RTN_NAME := 'DATA SEND TO ERP SYSTEM';
V_ERRDB.ERR_PARA1 := '';
V_ERRDB.ERR_PARA2 := '';
GP_ERROR(C_PGM_ID,
'TBDIPDO',
'R',
V_ERRDB.ERR_DESC,
V_ERRDB.RTN_NAME,
V_ERRDB.ERR_PARA1,
V_ERRDB.ERR_PARA2,
V_RTN_MSG);
ROLLBACK;
RETURN;
END WDC11AP;
orcal写接口
猜你喜欢
转载自my.oschina.net/u/3740271/blog/2221464
今日推荐
周排行