| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725 |
- CREATE OR REPLACE PACKAGE UIF023010 IS
- -- Author : SJW
- -- Created : 2008-11-21 19:42:17
- --update time : 2009-03-07 08:30:40
- -- Purpose :
- PROCEDURE INSSCH_MILL_D;
- PROCEDURE CLEAR;
- PROCEDURE ADJUSTROLLSLABSEQBYWTHDESC;
- PROCEDURE I_SCH_MILL(P_SLAB_NO TBG02_SLAB_COMM.SLAB_NO%TYPE);
- PROCEDURE I_TBF02_SCH_ROLL;
- PROCEDURE REP_UPSLAB(P_SLAB_NO TBF02_SCH_MILL.SLAB_NO%TYPE,
- P_REG_ID VARCHAR);
- /* PROCEDURE SLAB_REP (
- P_MAT_NO IN VARCHAR
- ,P_ORD_NO IN TBE02_ORD_PRC.ORD_NO%TYPE
- ,P_ORD_SEQ IN TBE02_ORD_PRC.ORD_SEQ%TYPE
- ,P_REG_ID IN VARCHAR
- );*/
- PROCEDURE SLAB_REP_EACHOTHER(P_SLAB_NO_DOWN TBG02_SLAB_COMM.SLAB_NO%TYPE,
- P_SLAB_NO_UP TBG02_SLAB_COMM.SLAB_NO%TYPE,
- P_REG_ID VARCHAR);
- PROCEDURE SLAB_ORD_REP(P_REG_ID VARCHAR, P_RTN_MSG OUT VARCHAR);
- PROCEDURE REP_UP_SLAB_INFOS;
- END UIF023010;
- /
- CREATE OR REPLACE PACKAGE BODY UIF023010 IS
- /************************************************************************/
- /* PACKAGE UIF023010 Author: SunJiawang */
- /************************************************************************/
- /* DESCRIPTION 编制CCR */
- /************************************************************************/
- /* UPD_TIME | WHO | PROGRAM | CONTTENT
- /* 09-08-10 SUNJIAWANG 增加 SLAB_ORD_REP /*
- /* 09-08-10 SUNJIAWANG SLAB_ORD_REP 增加对Z33跺位的排除 /*
- /************************************************************************/
- CURSOR CURSLABCOMMD IS
- SELECT B.SLAB_EDT_SEQ,
- A.SLAB_CUT_SEQ,
- A.ORD_THK,
- A.ORD_WTH,
- A.ORD_LEN,
- A.ORD_WGT,
- C.ORD_UNIT_WGT_MIN,
- C.ORD_UNIT_WGT_MAX,
- A.COIL_INDIA,
- A.COIL_OUTDIA,
- A.ORD_NO,
- A.ORD_SEQ,
- A.ORD_FL
- FROM TBG02_SLAB_COMM_D A,
- (SELECT T.SLAB_NO, T.SLAB_EDT_SEQ
- FROM TBF02_SCH_MILL T
- WHERE T.SLAB_EDT_SEQ IN
- (SELECT T.SLAB_EDT_SEQ
- FROM TBF02_SCH_MILL T
- WHERE T.SLAB_EDT_SEQ NOT IN
- (SELECT SLAB_EDT_SEQ FROM TBF02_SCH_MILL_D))) B,
- TBE02_ORD_PRC C
- WHERE A.SLAB_NO = B.SLAB_NO
- AND A.ORD_NO = C.ORD_NO
- AND A.ORD_SEQ = C.ORD_SEQ
- ORDER BY B.SLAB_EDT_SEQ ASC;
- TYPE REC_SLABCOMMD_TYPE IS RECORD(
- P_SLAB_EDT_SEQ TBF02_SCH_MILL.SLAB_EDT_SEQ %TYPE, /*炉次编制号*/
- P_SLAB_CUT_SEQ TBG02_SLAB_COMM_D.SLAB_CUT_SEQ %TYPE, /*炉次内顺序*/
- P_ORD_THK TBG02_SLAB_COMM_D.ORD_THK %TYPE,
- P_ORD_WTH TBG02_SLAB_COMM_D.ORD_WTH %TYPE,
- P_ORD_LEN TBG02_SLAB_COMM_D.ORD_LEN %TYPE,
- P_ORD_WGT TBG02_SLAB_COMM_D.ORD_WGT %TYPE,
- P_ORD_WGT_MIN TBE02_ORD_PRC.ORD_UNIT_WGT_MIN %TYPE,
- P_ORD_WGT_MAX TBE02_ORD_PRC.ORD_UNIT_WGT_MAX %TYPE,
- P_ORD_INDIA TBG02_SLAB_COMM_D.COIL_INDIA %TYPE,
- P_ORD_OUTDIA TBG02_SLAB_COMM_D.COIL_OUTDIA %TYPE,
- P_ORD_NO TBG02_SLAB_COMM_D.ORD_NO %TYPE,
- P_ORD_SEQ TBG02_SLAB_COMM_D.ORD_SEQ %TYPE,
- P_ORD_FL TBG02_SLAB_COMM_D.ORD_FL %TYPE);
- REC_SLABCOMMD REC_SLABCOMMD_TYPE;
- PROCEDURE INSSCH_MILL_D IS
- BEGIN
- OPEN CURSLABCOMMD;
- LOOP
- FETCH CURSLABCOMMD
- INTO REC_SLABCOMMD;
- EXIT WHEN CURSLABCOMMD %NOTFOUND;
- INSERT INTO TBF02_SCH_MILL_D
- (SLAB_EDT_SEQ,
- COIL_CUT_SEQ,
- ORD_THK,
- ORD_WTH,
- ORD_LEN,
- ORD_WGT,
- ORD_WGT_MIN,
- ORD_WGT_MAX,
- ORD_INDIA,
- ORD_OUTDIA,
- ORD_NO,
- ORD_SEQ,
- ORD_FL)
- VALUES
- (REC_SLABCOMMD.P_SLAB_EDT_SEQ,
- REC_SLABCOMMD.P_SLAB_CUT_SEQ,
- REC_SLABCOMMD.P_ORD_THK,
- REC_SLABCOMMD.P_ORD_WTH,
- REC_SLABCOMMD.P_ORD_LEN,
- REC_SLABCOMMD.P_ORD_WGT,
- REC_SLABCOMMD.P_ORD_WGT_MIN,
- REC_SLABCOMMD.P_ORD_WGT_MAX,
- REC_SLABCOMMD.P_ORD_INDIA,
- REC_SLABCOMMD.P_ORD_OUTDIA,
- REC_SLABCOMMD.P_ORD_NO,
- REC_SLABCOMMD.P_ORD_SEQ,
- REC_SLABCOMMD.P_ORD_FL);
- END LOOP;
- CLOSE CURSLABCOMMD;
- END;
- --由宽到窄调整轧辊里顺序
- PROCEDURE ADJUSTROLLSLABSEQBYWTHDESC IS
- CURSOR CURSCHMILL IS
- SELECT ROWNUM, A.SLAB_EDT_SEQ, A.ROLL_SLAB_SEQ
- FROM (SELECT T.ROWID, ROWNUM, T.SLAB_EDT_SEQ, T.ROLL_SLAB_SEQ
- FROM TBF02_SCH_MILL T,
- TBB01_ORD_PROD C,
- TBE02_ORD_PRC E
- WHERE T.ORD_NO = C.ORD_NO(+)
- AND T.ORD_SEQ = C.ORD_SEQ(+)
- AND E.ORD_NO = T.ORD_NO
- AND E.ORD_SEQ = T.ORD_SEQ
- ORDER BY C.WTH_AIM DESC,
- C.HOT_THK_AIM DESC,
- E.DEL_TO_DATE ASC,
- NVL(E.EMGMTR_NMG_CLF, 'N') DESC,
- T.CUR_LOAD_LOC DESC) A;
-
- TYPE SCHMILLTYPE IS RECORD(
- P_ROWNUM NUMBER,
- P_SLAB_EDT_SEQ TBF02_SCH_MILL.SLAB_EDT_SEQ %TYPE,
- P_ROLL_SLAB_SEQ TBF02_SCH_MILL.ROLL_SLAB_SEQ %TYPE);
- REC_SCH_MILL SCHMILLTYPE;
-
- BEGIN
- OPEN CURSCHMILL;
- LOOP
- EXIT WHEN CURSCHMILL %NOTFOUND;
- FETCH CURSCHMILL
- INTO REC_SCH_MILL;
- UPDATE TBF02_SCH_MILL
- SET ROLL_SLAB_SEQ = REC_SCH_MILL.P_ROWNUM
- WHERE SLAB_EDT_SEQ = REC_SCH_MILL.P_SLAB_EDT_SEQ;
- END LOOP;
- CLOSE CURSCHMILL;
- END;
- PROCEDURE CLEAR IS
- BEGIN
- DELETE FROM TBF02_SCH_MILL T WHERE T.SLAB_EDT_SEQ > 0;
- DELETE FROM TBF02_SCH_MILL_D T WHERE T.SLAB_EDT_SEQ > 0;
- DELETE FROM TBF02_SCH_ROLL A WHERE A.ROLL_NO = 'A0001';
- COMMIT;
- END;
- PROCEDURE I_SCH_MILL(P_SLAB_NO TBG02_SLAB_COMM.SLAB_NO%TYPE) IS
- BEGIN
- INSERT INTO TBF02_SCH_MILL M
- SELECT (SELECT NVL(MAX(SLAB_EDT_SEQ), 0) + 1 FROM TBF02_SCH_MILL) SLAB_EDT_SEQ -- 板坯编制号
- ,
- A.SLAB_NO -- 板坯号
- ,
- '' -- 钢卷号
- ,
- 'A0001' -- 轧辊号
- ,
- (SELECT NVL(MAX(ROLL_SLAB_SEQ), 0) + 1
- FROM TBF02_SCH_MILL) ROLL_SLAB_SEQ -- 轧辊内顺序
- ,
- '' -- LOT号
- ,
- 0 -- LOT内钢卷个数
- ,
- 0 -- LOT内钢卷编号
- -- A.PRODNM_CD -- 产品代码
- ----------------------------------------------------------------------------------------------------
- ,
- H.PRDNM_CD PRODNM_CD -- 产品代码
- --modify by sjw
- --desc: 扎制计划应该传送扎制模式 而不是产品代码(梅贵平要求)
- --------------------------------------------------------------------------------------------------
- ,
- A.STL_GRD -- 钢号
- ,
- D.FAC_STL_GRP -- 钢号组
- ,
- A.SLAB_THK -- 板坯厚度
- ,
- A.SLAB_WTH -- 板坯宽度
- ,
- A.SLAB_LEN -- 板坯长度
- ,
- A.SLAB_WGT -- 板坯重量
- ,
- '0' SLAB_TAPER -- 调宽有无代码
- ,
- A.SLAB_WTH SLAB_WTH_HEAD -- 板坯HEAD 宽度
- ,
- A.SLAB_WTH SLAB_WTH_TAIL -- 板坯TAIL 宽度
- ,
- 0 -- 宽度变更开始位置
- ,
- 0 -- 宽度变更部分长度
- ,
- C.THK_AIM -- 厚度目标
- ,
- (SELECT T.THK_GRP_CD
- FROM TBF02_ROLL_THK_GRP T -- 厚度组代码
- WHERE T.PLT = 'H'
- AND A.INSTR_COIL_THK >= T.MINI
- AND A.INSTR_COIL_THK < T.MAXI) THK_GRP_CD,
- C.HOT_THK_AIM -- 热厚度AIM
- ,
- C.HOT_THK_MIN -- 热厚度MIN
- ,
- C.HOT_THK_MAX -- 热厚度MAX
- ,
- C.WTH_AIM -- 宽度AlM
- ,
- C.WTH_MIN -- 宽度MIN
- ,
- C.WTH_MAX -- 宽度MAX
- ,
- (SELECT T.WTH_GRP_CD
- FROM TBF02_ROLL_WTH_GRP T -- 宽度组代码
- WHERE T.PLT = 'H'
- AND A.INSTR_COIL_WTH >= T.MINI
- AND A.INSTR_COIL_WTH < T.MAXI) WTH_GRP_CD,
- B.ORD_LEN,
- B.ORD_WGT,
- 'C' -- 热送代号
- ,
- A.ORD_NO -- 合同号
- ,
- A.ORD_SEQ -- 订单号
- ,
- E.ORD_USEAGE_CD -- 订单用途代码
- ,
- A.SPEC_ABBSYM -- 标准号
- ,
- E.ORDCUST_CD -- 客户代码
- ,
- E.CUST_CD -- 客户代码
- ,
- E.DEST_CD -- 目的地代码
- ,
- E.DEL_TO_DATE -- 交货期
- ,
- E.UST_CD -- UST区分
- ,
- 'H' -- 去向
- ,
- A.INSTR_COIL_THK -- 订单厚度
- ,
- A.INSTR_COIL_WTH -- 订单宽度
- ,
- A.INSTR_COIL_WGT -- 订单重量
- ,
- E.ORD_UNIT_WGT_MIN -- 订单单重下限
- ,
- E.ORD_UNIT_WGT_MAX -- 订单单重上限
- ,
- A.INSTR_COIL_INDIA -- 订单内径
- ,
- A.INSTR_COIL_OUTDIA -- 订单外径
- ,
- E.PACK_METHOD -- 包装方法
- ,
- '' -- 轧制工艺流程
- ,
- E.SPM_PROC_YN -- 平整分卷指定判断
- ,
- B.COIL_CUT_CNT -- 刚卷分割数
- ,
- '' -- 目标加热温度
- ,
- '' -- 目标出炉温度-------------------------------------------------------------------------------------------------------------------
- ,
- (SELECT NVL(F.FUR_TME, 0)
- FROM TBF02_FUR_TIME F
- WHERE F.PLT = 'H'
- AND F.FUR_LINE = 1
- AND F.STL_GRD = A.STL_GRD
- AND F.SLAB_THK_MIN <= A.SLAB_THK
- AND F.SLAB_THK_MAX > A.SLAB_THK
- AND F.HCR_CLF = 'C') FUR_TME,
- '' -- 轧制时间
- ,
- A.CUR_LOAD_LOC -- 堆置位置
- ,
- '' -- 计划加热炉装炉日期
- ,
- '' -- 计划轧制时间
- ,
- '' -- 错误
- ,
- 'A' -- 状态区分
- ,
- '' -- 标识
- ,
- '' --SLAB_NO_DOWN_LOCK
- ,
- '' --LOAD_LOC_DOWN_LOCK
- ,
- '' --YARD_LOCK_YN
- FROM TBG02_SLAB_COMM A,
- TBD00_STLGRD D,
- TBB01_ORD_HEAD H,
- TBE02_ORD_PRC E,
- (SELECT SLAB_NO,
- COUNT(SLAB_CUT_SEQ) COIL_CUT_CNT,
- SUM(ORD_LEN) ORD_LEN,
- SUM(ORD_WGT) ORD_WGT
- FROM TBG02_SLAB_COMM_D
- GROUP BY SLAB_NO) B,
- TBB01_ORD_PROD C
- WHERE A.SLAB_NO = B.SLAB_NO
- AND A.SLAB_NO = P_SLAB_NO
- AND A.SLAB_NO NOT IN (SELECT SLAB_NO FROM TBF02_SCH_MILL)
- AND A.STL_GRD = D.FAC_STL_GRD(+)
- AND A.ORD_NO = C.ORD_NO(+)
- AND A.ORD_SEQ = C.ORD_SEQ(+)
- AND A.ORD_NO = H.ORD_NO(+)
- AND A.ORD_SEQ = H.ORD_SEQ(+)
- AND E.ORD_NO = A.ORD_NO
- AND E.ORD_SEQ = A.ORD_SEQ
- AND A.SLAB_RT IN ('H', 'C')
- AND A.CUR_PROG_CD = 'RBA'
- AND A.SLAB_STAT = '2'
- AND A.ORD_FL = '1';
-
- END;
- PROCEDURE I_TBF02_SCH_ROLL IS
- BEGIN
- INSERT INTO TBF02_SCH_ROLL
- SELECT A.ROLL_NO, --轧辊号
- A.WTH_GRP_CD, --宽度组代码
- C.MINI, --宽度组下限
- C.MAXI, --宽度组上限
- '', --钢号组
- COUNT(A.SLAB_EDT_SEQ), --板坯编制数
- SUM(A.SLAB_WGT), --板坯编制重量
- SUM(B.ORD_LEN), --轧钢总长度
- '0', --平整分卷数
- TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'), --CCR轧辊编制时间
- ''
- FROM TBF02_SCH_MILL A,
- (SELECT SLAB_NO, SUM(ORD_LEN) ORD_LEN
- FROM TBG02_SLAB_COMM_D
- GROUP BY SLAB_NO) B,
- TBF02_ROLL_WTH_GRP C
- WHERE A.SLAB_NO = B.SLAB_NO
- AND A.WTH_GRP_CD = C.WTH_GRP_CD
- GROUP BY (A.ROLL_NO, A.WTH_GRP_CD, C.MINI, C.MAXI)
- ORDER BY WTH_GRP_CD DESC;
- END;
- /************************************************************************/
- /* procedure SLAB_ORD_REP Author: SunJiawang */
- /************************************************************************/
- /* DESCRIPTION 将下面的跺位替换为上面的板坯 ,并对订单信息呼唤 */
- /************************************************************************/
- /* IN P_REG_ID 登陆用户
- /* OUT P_RTN_MSG 返回错误信息
- /************************************************************************/
- PROCEDURE SLAB_ORD_REP(P_REG_ID VARCHAR, P_RTN_MSG OUT VARCHAR) IS
-
- VE_NULL EXCEPTION;
-
- CURSOR CUR_SCH_MILL IS
- SELECT SLAB_NO
- FROM TBF02_SCH_MILL
- WHERE CUR_LOAD_LOC NOT LIKE 'Z33%' --Z33 的可以随便堆放不同规格的板坯,因此不在替换范围
- ORDER BY ROLL_SLAB_SEQ ASC;
-
- REC_SCH_MILL CUR_SCH_MILL%ROWTYPE;
- BEGIN
-
- COMM.INIT_RTN_MSG;
- UIF023020_TEST.CLEAR_YARD_LOCK_FLAG;
-
- OPEN CUR_SCH_MILL;
- LOOP
- FETCH CUR_SCH_MILL
- INTO REC_SCH_MILL;
- EXIT WHEN CUR_SCH_MILL%NOTFOUND;
- IF CUR_SCH_MILL%ROWCOUNT = 0 THEN
- RAISE VE_NULL;
- END IF;
-
- REP_UPSLAB(REC_SCH_MILL.SLAB_NO, P_REG_ID);
- END LOOP;
- CLOSE CUR_SCH_MILL;
-
- --将未被锁定的板坯锁定自己本身
- UPDATE TBF02_SCH_MILL A
- SET A.SLAB_NO_DOWN_LOCK = SLAB_NO,
- A.LOAD_LOC_DOWN_LOCK = CUR_LOAD_LOC
- WHERE NVL(A.YARD_LOCK_YN, 'N') <> 'Y';
-
- --将计划板坯的信息更换为替换板坯的信息
- REP_UP_SLAB_INFOS;
-
- EXCEPTION
- WHEN VE_NULL THEN
- COMM.REC_ERR.P_TABLE := 'TBF02_SCH_MILL';
- COMM.REC_ERR.P_ERR_PARAM1 := 'SLAB_NO';
- COMM.REC_ERR.P_ERR_MSG := '没有记录';
- COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG, FALSE);
- WHEN COMM.PE THEN
- P_RTN_MSG := COMM.REC_ERR.P_RTN_MSG;
- WHEN OTHERS THEN
- COMM.CALL_OTHER_EXCEPTION_DO(P_RTN_MSG);
- END;
- /************************************************************************/
- /* procedure REP_UPSLAB Author: SunJiawang */
- /************************************************************************/
- /* DESCRIPTION 订单信息互换 */
- /************************************************************************/
- /* create 090810
- /* IN P_REG_ID 登陆用户
- /* OUT P_RTN_MSG 返回错误信息
- /************************************************************************/
- PROCEDURE REP_UPSLAB(P_SLAB_NO TBF02_SCH_MILL.SLAB_NO%TYPE,
- P_REG_ID VARCHAR) IS
-
- LV_CUR_LOAD_LOC TBF02_SCH_MILL.CUR_LOAD_LOC%TYPE; --当前位置
- LV_UP_CUR_LOAD_LOC TBF02_SCH_MILL.CUR_LOAD_LOC%TYPE; --当前位置最上层没有被锁定的位置
- LV_UP_SLAB_NO TBF02_SCH_MILL.SLAB_NO%TYPE; --当前位置最上层没有被锁定的位置
-
- BEGIN
-
- SELECT CUR_LOAD_LOC
- INTO LV_CUR_LOAD_LOC
- FROM TBG02_SLAB_COMM
- WHERE SLAB_NO = P_SLAB_NO;
-
- SELECT NVL(MAX(B.CUR_LOAD_LOC), 'NULL')
- INTO LV_UP_CUR_LOAD_LOC
- FROM TBG02_SLAB_COMM B,
- TBF02_SCH_MILL A,
- TBG04_SLAB_YARD C,
- TBE02_ORD_PRC D,
- (SELECT PROC_RATE FROM TBE01_PROC_RATE WHERE PROC_CD = 'R') R
- WHERE A.SLAB_NO = P_SLAB_NO
- AND B.ORD_NO = D.ORD_NO
- AND B.ORD_SEQ = D.ORD_SEQ
- AND SUBSTR(A.CUR_LOAD_LOC, 1, 6) = C.YARD_ADDR
- AND B.SLAB_NO = C.SLAB_NO
- AND B.CUR_LOAD_LOC = C.YARD_ADDR || C.STORELAY
- AND B.SLAB_STAT = '2'
- AND B.SLAB_RT IN ('H', 'C')
- AND B.CUR_LOAD_LOC LIKE 'Z%'
- ------------------------------------------------------------------------------------------
- --同成分 同炉次 同牌号 符号尺寸 以及订单单重要求才可以替换
- AND SUBSTR(A.SLAB_NO, 1, 10) = SUBSTR(B.SLAB_NO, 1, 10)
- AND B.SLAB_WTH BETWEEN D.ORD_WTH AND D.ORD_WTH + 100
- AND (B.STL_GRD = D.STL_GRD) -- 同牌号
- AND (B.SLAB_WGT * R.PROC_RATE / 100) BETWEEN D.ORD_UNIT_WGT_MIN AND
- D.ORD_UNIT_WGT_MAX
- AND (GF_NIB028720(B.SLAB_NO, D.ORD_NO, D.ORD_SEQ) = 'YY') -- 检查成分项目
- -------------------------------------------------------------------------------------------
- AND B.YARD_LOCK_YN IS NULL;
-
- IF (LV_UP_CUR_LOAD_LOC <> 'NULL') THEN
- SELECT NVL(X.SLAB_NO, 'XX'), NVL(X.CUR_LOAD_LOC, 'XX')
- INTO LV_UP_SLAB_NO, LV_UP_CUR_LOAD_LOC
- FROM TBG02_SLAB_COMM X
- WHERE X.CUR_LOAD_LOC = LV_UP_CUR_LOAD_LOC
- AND X.SLAB_STAT = '2'
- AND ROWNUM = 1;
-
- IF (LV_UP_SLAB_NO <> 'XX' AND LV_UP_CUR_LOAD_LOC <> 'XX') THEN
-
- UPDATE TBF02_SCH_MILL B
- SET B.SLAB_NO_DOWN_LOCK = LV_UP_SLAB_NO,
- B.LOAD_LOC_DOWN_LOCK = LV_UP_CUR_LOAD_LOC,
- B.YARD_LOCK_YN = 'Y'
- WHERE B.SLAB_NO = P_SLAB_NO;
-
- UPDATE TBG02_SLAB_COMM B
- SET B.YARD_LOCK_YN = 'Y'
- WHERE B.SLAB_NO = LV_UP_SLAB_NO;
-
- SLAB_REP_EACHOTHER(P_SLAB_NO, LV_UP_SLAB_NO, P_REG_ID);
-
- END IF;
-
- END IF;
- END;
- /************************************************************************/
- /* procedure REP_UPSLAB Author: SunJiawang */
- /************************************************************************/
- /* DESCRIPTION 将上层板坯替换下层板坯,对订单信息互换 */
- /************************************************************************/
- /* create 090810
- /* IN P_SLAB_NO_DOWN 上层板坯
- /* IN P_SLAB_NO_UP 下层板坯
- /************************************************************************/
- PROCEDURE SLAB_REP_EACHOTHER(P_SLAB_NO_DOWN TBG02_SLAB_COMM.SLAB_NO%TYPE,
- P_SLAB_NO_UP TBG02_SLAB_COMM.SLAB_NO%TYPE,
- P_REG_ID VARCHAR) IS
-
- LV_ORD_NO_DOWN TBF02_SCH_MILL.ORD_NO%TYPE;
- LV_ORD_NO_UP TBF02_SCH_MILL.ORD_NO%TYPE;
- LV_ORD_SEQ_DOWN TBF02_SCH_MILL.ORD_SEQ%TYPE;
- LV_ORD_SEQ_UP TBF02_SCH_MILL.ORD_SEQ%TYPE;
- LV_REP_SUCCESS_YN VARCHAR(1) := '';
- BEGIN
-
- SELECT DECODE(ORD_FL, '1', A.ORD_NO, 'XX'),
- DECODE(ORD_FL, '1', A.ORD_SEQ, 'XX')
- INTO LV_ORD_NO_DOWN, LV_ORD_SEQ_DOWN
- FROM TBG02_SLAB_COMM A
- WHERE A.SLAB_NO = P_SLAB_NO_DOWN
- AND A.SLAB_STAT = '2'
- AND ROWNUM = 1;
-
- SELECT DECODE(ORD_FL, '1', A.ORD_NO, 'XX'),
- DECODE(ORD_FL, '1', A.ORD_SEQ, 'XX')
- INTO LV_ORD_NO_UP, LV_ORD_SEQ_UP
- FROM TBG02_SLAB_COMM A
- WHERE A.SLAB_NO = P_SLAB_NO_UP
- AND A.SLAB_STAT = '2'
- AND ROWNUM = 1;
-
- IF P_SLAB_NO_DOWN <> P_SLAB_NO_UP THEN
-
- IF (LV_ORD_NO_DOWN <> 'XX' OR LV_ORD_SEQ_DOWN <> 'XX') THEN
- NIE03_SERVEAS.CHK_IS_SYN;
- NIE03_SERVEAS.SERVE_HIS('TM',
- P_SLAB_NO_UP,
- LV_ORD_NO_DOWN,
- LV_ORD_SEQ_DOWN,
- P_REG_ID);
- NIE03_SERVEAS.SLAB_SERVE(P_SLAB_NO_UP,
- LV_ORD_NO_DOWN,
- LV_ORD_SEQ_DOWN,
- P_REG_ID);
- --调用进程 NIE012070
- OS_COMM.SAVE_ORD_STS('TM',
- P_SLAB_NO_UP,
- 'AutoRepSlabCurLoc');
- LV_REP_SUCCESS_YN := 'Y';
-
- END IF;
-
- IF LV_REP_SUCCESS_YN = 'Y' THEN
-
- IF (LV_ORD_NO_UP <> 'XX' AND LV_ORD_SEQ_UP <> 'XX') THEN
- OS_COMM.CHK_IS_SYN;
- NIE03_SERVEAS.SERVE_HIS('TM',
- P_SLAB_NO_DOWN,
- LV_ORD_NO_UP,
- LV_ORD_SEQ_UP,
- P_REG_ID);
- NIE03_SERVEAS.SLAB_SERVE(P_SLAB_NO_DOWN,
- LV_ORD_NO_UP,
- LV_ORD_SEQ_UP,
- P_REG_ID);
- --调用进程 NIE012070
- OS_COMM.SAVE_ORD_STS('TM',
- P_SLAB_NO_DOWN,
- 'AutoRepSlabCurLoc');
- END IF;
-
- END IF;
-
- END IF;
-
- END;
- /************************************************************************/
- /* procedure SLAB_REP Author: SunJiawang */
- /************************************************************************/
- /* DESCRIPTION 板坯充当功能 */
- /************************************************************************/
- /* create 090810
- /* IN P_MAT_NO 充当板坯
- /* IN P_ORD_NO 充当订单号
- /* IN P_ORD_SEQ 充当订单行
- /************************************************************************/
- /* PROCEDURE SLAB_REP (
- P_MAT_NO IN VARCHAR
- ,P_ORD_NO IN TBE02_ORD_PRC.ORD_NO%TYPE
- ,P_ORD_SEQ IN TBE02_ORD_PRC.ORD_SEQ%TYPE
- ,P_REG_ID IN VARCHAR
- )IS
- BEGIN
- \* UPDATE TBG02_SLAB_COMM A SET
- BEF_PROG_CD = CUR_PROG_CD,
- BEF_PROG_CD_PGM = CUR_PROG_CD_PGM,
- BEF_PROG_CD_DTIME = CUR_PROG_CD_DTIME,
- CUR_PROG_CD = 'RBA',
- CUR_PROG_CD_PGM = 'NIE03_SERVEAS',
- CUR_PROG_CD_DTIME = TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISS'),
- ORD_FL = '1',
- NONORD_CAUSE_CD = '',
- NONORD_OCR_DTIME = '',
- MOD_ID = P_REG_ID,
- MOD_DTIME = TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISS'),
- ORG_ORD_NO = DECODE(ORD_FL,'1',ORD_NO,''),
- ORG_ORD_SEQ = DECODE(ORD_FL,'1',ORD_SEQ,''),
- (ORD_NO, ORD_SEQ, CUST_CD, ORDCUST_CD, ORD_USE_CD, PRODNM_CD, SF_METHOD,
- SPEC_ABBSYM, DEVLMT_DTIME, INSTR_COIL_THK, INSTR_COIL_WTH, INSTR_COIL_INDIA,
- INSTR_COIL_WGT, INSTR_COIL_LEN, INSTR_COIL_OUTDIA, SLAB_INGR_DEC_GRD) =
- (SELECT ORD_NO, ORD_SEQ, CUST_CD, ORDCUST_CD, ORD_USEAGE_CD, PRODNM_CD, SCARPING_PROC_YN,
- SPEC_ABBSYM, DEL_TO_DATE, ORD_THK, ORD_WTH, ORD_INDIA,
- (A.SLAB_WGT * C.PROC_RATE / 100),
- (A.SLAB_WGT * C.PROC_RATE / 100) / (B.ORD_THK * B.ORD_WTH * 7.85) * 1000000,
- SQRT(4 * (A.SLAB_WGT * C.PROC_RATE / 100) / (B.ORD_WTH / 1000000 * 7.85 * 3.14 ) + (B.ORD_INDIA * B.ORD_INDIA)),
- DECODE(GF_NIB028720(A.SLAB_NO, ORD_NO, ORD_SEQ), 'YY', '1', '2')
- FROM TBE02_ORD_PRC B, (
- SELECT PROC_RATE FROM TBE01_PROC_RATE WHERE PROC_CD = 'R') C
- WHERE ORD_NO = P_ORD_NO
- AND ORD_SEQ = P_ORD_SEQ)
- WHERE SLAB_NO = P_MAT_NO;*\
-
- UPDATE TBG02_SLAB_COMM A SET
- BEF_PROG_CD = CUR_PROG_CD,
- BEF_PROG_CD_PGM = CUR_PROG_CD_PGM,
- BEF_PROG_CD_DTIME = CUR_PROG_CD_DTIME,
- -----------------------------------------------------------------------------------------
- BEF_STL_GRD = STL_GRD,--充当的时候记录牌号历史 MODIFY BY SJW 090813
- -----------------------------------------------------------------------------------------
- CUR_PROG_CD = 'RBA',
- CUR_PROG_CD_PGM = 'AutoRepSlabCurLoc',
- CUR_PROG_CD_DTIME = TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISS'),
- ORD_FL = '1',
- NONORD_CAUSE_CD = '',
- NONORD_OCR_DTIME = '',
- SLAB_INGR_DEC_GRD = '1',
- SLAB_SIZE_DEC_GRD = '1',
- EXTSHAPE_GRD = '1',
- MOD_ID = P_REG_ID,
- MOD_DTIME = TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISS'),
-
- --充当将当前订单写入原始订单
- ORG_ORD_NO = DECODE(ORD_FL,'1',ORD_NO,''),
- ORG_ORD_SEQ = DECODE(ORD_FL,'1',ORD_SEQ,''),
-
- (ORD_NO, ORD_SEQ, CUST_CD, ORDCUST_CD, ORD_USE_CD, PRODNM_CD, SF_METHOD,
- SPEC_ABBSYM, DEVLMT_DTIME, INSTR_COIL_THK, INSTR_COIL_WTH, INSTR_COIL_INDIA,
- INSTR_COIL_WGT, INSTR_COIL_LEN, INSTR_COIL_OUTDIA,STL_GRD) =
- (SELECT ORD_NO, ORD_SEQ, CUST_CD, ORDCUST_CD, ORD_USEAGE_CD, PRODNM_CD, SCARPING_PROC_YN,
- SPEC_ABBSYM, DEL_TO_DATE, ORD_THK, ORD_WTH, ORD_INDIA,
- (A.SLAB_WGT * C.PROC_RATE / 100),
- (A.SLAB_WGT * C.PROC_RATE / 100) / (B.ORD_THK * B.ORD_WTH * 7.85) * 1000000,
- SQRT(4 * (A.SLAB_WGT * C.PROC_RATE / 100) / (B.ORD_WTH / 1000000 * 7.85 * 3.14 ) + (B.ORD_INDIA * B.ORD_INDIA))
- , STL_GRD
- --DECODE(GF_NIB028720(A.SLAB_NO, ORD_NO, ORD_SEQ), 'YY', '1', '2')
- FROM TBE02_ORD_PRC B, (
- SELECT PROC_RATE FROM TBE01_PROC_RATE WHERE PROC_CD = 'R') C
- WHERE ORD_NO = P_ORD_NO
- AND ORD_SEQ = P_ORD_SEQ)
- WHERE SLAB_NO = P_MAT_NO;
-
- DELETE TBG02_SLAB_COMM_D
- WHERE SLAB_NO = P_MAT_NO;
-
- INSERT INTO TBG02_SLAB_COMM_D
- ( SLAB_NO, SLAB_CUT_SEQ, SLAB_THK, SLAB_WTH, SLAB_LEN,
- ORD_THK, ORD_WTH, ORD_LEN, ORD_WGT, COIL_INDIA,
- COIL_OUTDIA, ORD_NO, ORD_SEQ, ORD_FL
- )
- SELECT SLAB_NO, '01', SLAB_THK, SLAB_WTH, SLAB_LEN,
- INSTR_COIL_THK, INSTR_COIL_WTH, INSTR_COIL_LEN, INSTR_COIL_WGT, INSTR_COIL_INDIA,
- INSTR_COIL_OUTDIA, ORD_NO, ORD_SEQ, '1'
- FROM TBG02_SLAB_COMM
- WHERE SLAB_NO = P_MAT_NO;
- END;
- */
- /************************************************************************/
- /* procedure REP_UP_SLAB_INFOS Author: SunJiawang */
- /************************************************************************/
- /* DESCRIPTION 删除最处编制的计划 替换为上层板坯的轧制计划 */
- /************************************************************************/
- /* create 090810
- /************************************************************************/
- PROCEDURE REP_UP_SLAB_INFOS IS
-
- CURSOR LV_CUR_LOCK_SLAB_NO IS
- SELECT A.SLAB_NO_DOWN_LOCK
- FROM TBF02_SCH_MILL A
- ORDER BY A.ROLL_SLAB_SEQ ASC;
-
- LV_REC_LOCK_SLAB_NO LV_CUR_LOCK_SLAB_NO%ROWTYPE;
-
- BEGIN
-
- OPEN LV_CUR_LOCK_SLAB_NO;
-
- --记录好锁定板坯信息后,删除轧制计划临时表,将锁定的板坯编入轧制计划
- DELETE FROM TBF02_SCH_MILL;
- DELETE FROM TBF02_SCH_MILL_D;
-
- LOOP
- FETCH LV_CUR_LOCK_SLAB_NO
- INTO LV_REC_LOCK_SLAB_NO;
- EXIT WHEN LV_CUR_LOCK_SLAB_NO%NOTFOUND;
-
- I_SCH_MILL(LV_REC_LOCK_SLAB_NO.SLAB_NO_DOWN_LOCK);
-
- END LOOP;
- CLOSE LV_CUR_LOCK_SLAB_NO;
-
- --重新编制详细轧制计划 TBF02_SCH_MILL_D
- INSSCH_MILL_D;
-
- END;
- END UIF023010;
- /
|