CREATE OR REPLACE PACKAGE UIF023100_TEST IS -- Author : SUNJIAWANG -- Created : 2009-2-13 17:09:40 -- Purpose : HCR_EDIT&SEND_TO_L2 --update time : 2009-03-07 08:30:40 --begin--- --check PROCEDURE INIT_ROLL_MANA_NO(P_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE, P_POSITION VARCHAR); PROCEDURE CHECK_ERROR(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE, P_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE, P_POSITION VARCHAR2); PROCEDURE CHECK_MILL_FL(P_CHARGE_MANA_NO IN TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE); PROCEDURE CHECK_CHARGE_IDX(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE); FUNCTION GET_COIL_NO RETURN TBF02_SPEC_MILL.COIL_NO%TYPE; PROCEDURE ADUST_ROLL_MANA_NO; PROCEDURE INSERT_SPEC_ROLL(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE); PROCEDURE HCR_INSERT(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE); PROCEDURE HCR_INSERT_MILL_IDX; PROCEDURE HCR_INSERT_SPEC_MILL; PROCEDURE HCR_U_SPEC_SLAB_MILL_FL; PROCEDURE HCR_U_SPEC_CHARGE_MILL_FL(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE); PROCEDURE HCR_INSERT_SPEC_MILL_EDT; PROCEDURE HCR_INSERT_SPECMILL_D; PROCEDURE HCR_EDIT(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE, P_ROLL_MANA_NO VARCHAR2, P_POSITION VARCHAR2, P_REG_ID VARCHAR2, P_TYPE OUT VARCHAR2, P_ST OUT VARCHAR2, P_EN OUT VARCHAR2, P_RTN_MSG OUT VARCHAR2); PROCEDURE CHECK_RZGYBZ(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE); PROCEDURE CALLL_E_INIT_OUT_PARAM(P_TYPE OUT VARCHAR2, P_ST OUT VARCHAR2, P_EN OUT VARCHAR2); CURSOR CUR_HCR(V_CHARGE_MANA_NO TBF01_SPEC_SLAB.CHARGE_MANA_NO%TYPE) IS SELECT CHARGE_SLAB_SEQ, A.SLAB_EDT_SEQ -- 板坯编制号 , REPLACE(SUBSTR(SLAB_MANA_NO, 1, 1), '3', 'J') || SUBSTR(SLAB_MANA_NO, 2) SLAB_MANA_NO -- 板坯号 , '' --A.COIL_NO -- 钢卷号 , '' --A.ROLL_EDT_SEQ -- 轧辊编制号 , '' --A.ROLL_MANA_NO -- 轧辊管理号 , '' --A.ROLL_NO -- 轧辊号 , '' --A.ROLL_SLAB_SEQ -- 轧辊内顺序 , '' LOT_NO -- LOT号 , 0 LOT_COIL_CNT -- LOT内钢卷个数 , 0 LOT_COIL_SEQ -- LOT内钢卷编号 , /* A.PRODNM_CD -- 产品代码*/ --------------------------------------------------------------------------------------------- N.PRDNM_CD PRODNM_CD -- 产品代码 --MODIFY BY SJW 090818 --DESC :扎制计划应该传送扎制模式 而不是产品代码(梅贵平要求) -------------------------------------------------------------------------------------------- , B.STL_GRD SPEC_STL_GRD, 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 宽度 , '' WTH_CHG_STS -- 宽度变更开始位置 , '' WTH_CHG_END -- 宽度变更部分长度 , C.THK_AIM -- 厚度目标 , (SELECT T.THK_GRP_CD FROM TBF02_ROLL_THK_GRP T -- 厚度组代码 WHERE T.PLT = 'H' AND A.ORD_THK >= T.MINI AND A.ORD_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.ORD_WTH >= T.MINI AND A.ORD_WTH < T.MAXI) WTH_GRP_CD, H.MILL_LEN -- 轧钢总长度 , H.MILL_WGT --A.MILL_WGT -- 轧钢总重量 , A.HCR_CLF -- 热送代号 , A.ORD_NO -- 合同号 , A.ORD_SEQ -- 订单号 , E.ORD_USEAGE_CD -- 订单用途代码 , A.SPEC_ABBSYM -- 标准号 , E.ORDCUST_CD --A.ORD_CUST_CD -- 客户代码 , E.CUST_CD -- 客户代码 , E.DEST_CD -- 目的地代码 , A.DELV_REQ_DATE -- 交货期 , E.UST_CD -- UST区分 , A.SLAB_RT -- 去向 , A.ORD_THK -- 订单厚度 , A.ORD_WTH -- 订单宽度 , A.ORD_WGT -- 订单重量 , A.ORD_WGT_MIN -- 订单单重下限 , A.ORD_WGT_MAX -- 订单单重上限 , E.ORD_INDIA --A.ORD_INDIA 订单内径 , E.ORD_OUTDIA -- ORD_OUTDIA 订单外径 , E.PACK_METHOD -- 包装方法 , A.CAST_MANA_NO -- 浇次号 , M.CCM_PRC_LINE --A.CCM_PRC_LINE -- 连铸机号 , '' PATH_MILL_CD -- 轧制工艺流程 , A.SPM_PROC_YN -- 平整分卷指定判断 , A.SLAB_CUT_CNT -- 钢卷分割数 , '' RHF_TGT_TEMP -- 目标加热温度 , B.EXTRACT_TGT_TEMP -- 目标出炉温度 , B.EXTRACT_MIN_TEMP -- 最小出炉温度 , B.EXTRACT_MAX_TEMP -- 最大出炉温度 , B.CHARGING_TGT_TEMP -- 出炉均热度(目标) , B.CHARGING_MAX_TEMP -- 出炉均热度(上限) , B.INFUR_MIN_HOUR -- 在炉时间(下限) , B.INFUR_MAX_HOUR -- 在炉时间(上限) , B.EQ_HT_MIN_HOUR -- 均热时间(下限) , B.EQ_HT_MAX_HOUR -- 均热时间(上限) , (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 = 'H') FUR_TME -- FUR_TME 炉内驻留时间 , '' MILL_TME --轧制时间 , '' FUR_IN_PRE_DTIME -- 计划加热炉装炉日期 , '' MILL_PRE_TME -- 计划轧制时间 , 0 SPEC_SLAB_EDT_SEQ -- 出钢板坯编制号 , A.STATUS_CD -- 状态区分 , '' FL --标识 FROM TBF01_SPEC_SLAB A, TBH01_OPRN_STD B, TBB01_ORD_PROD C, TBD00_STLGRD D, TBE02_ORD_PRC E, TBF01_CHARGE_IDX M, /* (SELECT B.ORD_NO, B.ORD_SEQ, B.SPEC_ABBSYM, B.SPEC_STL_GRD, A.PRDNM_CD FROM TBA01_ORD_COMM A, TBA01_ORD_LINE B WHERE B.ORD_NO = A.ORD_NO) N,*/ ---------------------------------------------------------------------------------------- (SELECT B.ORD_NO, B.ORD_SEQ, B.SPEC_ABBSYM, B.SPEC_STL_GRD, A.PRDNM_CD FROM TBB01_ORD_HEAD A, TBA01_ORD_LINE B WHERE B.ORD_NO = A.ORD_NO AND B.ORD_SEQ =A.ORD_SEQ) N, --MODIFY BY SJW 090818 --DESC :扎制计划应该传送扎制模式 而不是产品代码(梅贵平要求) ---------------------------------------------------------------------------------------- (SELECT SLAB_EDT_SEQ, SUM(ORD_WGT) MILL_WGT, SUM(ORD_LEN) MILL_LEN FROM TBF01_SPEC_SLAB_D GROUP BY SLAB_EDT_SEQ) H WHERE A.ORD_NO = C.ORD_NO AND A.ORD_SEQ = C.ORD_SEQ AND A.ORD_NO = E.ORD_NO AND A.ORD_SEQ = E.ORD_SEQ AND A.ORD_NO = N.ORD_NO AND A.ORD_SEQ = N.ORD_SEQ AND A.STL_GRD = D.FAC_STL_GRD AND N.PRDNM_CD = B.PRDNM_CD AND N.SPEC_STL_GRD = B.STL_GRD AND N.SPEC_ABBSYM = B.SPEC_ABBSYM AND A.CHARGE_EDT_SEQ = M.CHARGE_EDT_SEQ AND A.SLAB_EDT_SEQ = H.SLAB_EDT_SEQ AND A.STATUS_CD IN ('A', 'B') AND A.CHARGE_MANA_NO = V_CHARGE_MANA_NO AND A.HCR_CLF = 'H' ORDER BY A.CHARGE_SLAB_SEQ; REC_HCR CUR_HCR%ROWTYPE; END UIF023100_TEST; / CREATE OR REPLACE PACKAGE BODY UIF023100_TEST IS /************************************************************************/ /* PACKAGE UIF023100_TEST Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION CCR顺序调整 CCR指示到L2 */ /************************************************************************/ /* UPD_TIME | WHO | PROGRAM | CONTTENT /* 09-05-25 SUNJIAWANG CHECK_RZGYBZ ADD CHECK_RZGYBZ /* 09-06-29 SUNJIAWANG CURSOR 将扎制厚度目标更改为订单厚度传送到L2 /* 09-07-07 SUNJIAWANG -->MILL_FL = 'N' /* 09-07-07 SUNJIAWANG HCR_INSERT_SPECMILL_D 增加查询 STATUS_CD = 'B' /* 09-08-06 SUNJIAWANG CHECK_ROLL_STATUS 增加procedure CHECK_ROLL_STATUS /* 09-08-18 SUNJIAWANG CUR_HCR 扎制计划应该传送扎制模式 而不是产品代码(梅贵平要求) /************************************************************************/ --GOLAB PARMAETER V_ROLL_MANA_NO VARCHAR(5) := ''; -- new roll_mana_no V_ROLL_EDT_SEQ TBF02_SPEC_ROLL.ROLL_EDT_SEQ %TYPE := 0; -- new roll_edt_seq V_SEQ_NO TBF02_MILL_IDX.SEQ_NO%TYPE := 0; -- new seq_no V_SLAB_EDT_SEQ TBF02_MILL_IDX.SLAB_EDT_SEQ%TYPE := 0; V_ROLL_SLAB_SEQ TBF02_SPEC_MILL.ROLL_SLAB_SEQ%TYPE := 1; V_CURYEAR VARCHAR2(1) := ''; -- current year /************************************************************************/ /* procedure CHECK_MILL_FL Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION check the mill_fl of the HCR if mill_fl = 'Y' then HCR not allowed to edited */ /************************************************************************/ /* parentProcedure: CHECK_ERROR /************************************************************************/ PROCEDURE CHECK_MILL_FL(P_CHARGE_MANA_NO IN TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE) IS V_MILL_FL TBF01_SPEC_CHARGE.MILL_FL %TYPE := 'N'; --默认编制‘N’ VE EXCEPTION; BEGIN SELECT T.MILL_FL INTO V_MILL_FL FROM TBF01_SPEC_CHARGE T WHERE T.CHARGE_MANA_NO = P_CHARGE_MANA_NO; IF (V_MILL_FL = 'Y') THEN RAISE VE; END IF; EXCEPTION WHEN VE THEN COMM.REC_ERR.P_PRG_ID := 'CHECK_MILL_FL'; COMM.REC_ERR.P_OPERATE := 'I'; COMM.REC_ERR.P_ERR_PARAM1 := 'MILL_FL'; COMM.REC_ERR.P_TABLE := 'TBF01_SPEC_CHARGE'; COMM.REC_ERR.P_ERR_MSG := '该炉次已经被编制,不允许重复编制'; COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG); END; /************************************************************************/ /* procedure INIT_ROLL_MANA_NO Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION init the new roll_mana_no | 如果没有编制任何轧辊,新产生的轧辊管理号默认为'A0001',以此增加,当增加到 'A999'的时候,则新增加的轧辊管理号为‘B0001’如此类推至‘Z9999’ 为最大极限 之轧辊号 */ /************************************************************************/ /* parentProcedure: HCR_EDIT /************************************************************************/ PROCEDURE INIT_ROLL_MANA_NO(P_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE, P_POSITION VARCHAR) IS LV_CNT_ROLL INTEGER := 0; LV_MAX_ROLL_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE := ''; VE EXCEPTION; POS_VE EXCEPTION; BEGIN SELECT NVL(MAX(ROLL_MANA_NO), 'A0001') INTO LV_MAX_ROLL_NO FROM TBF02_SPEC_ROLL; SELECT COUNT(ROLL_MANA_NO) INTO LV_CNT_ROLL FROM TBF02_SPEC_ROLL; IF LV_CNT_ROLL = 0 THEN V_ROLL_MANA_NO := 'A0001'; --modify by sjw 090323 ELSIF P_ROLL_MANA_NO IS NULL THEN V_ROLL_MANA_NO := COMM.ADUST_ORDER(LV_MAX_ROLL_NO); ELSIF P_POSITION IS NOT NULL THEN V_ROLL_MANA_NO := COMM.ADUST_ORDER(P_ROLL_MANA_NO, P_POSITION); ELSE RAISE POS_VE; END IF; EXCEPTION WHEN VE THEN COMM.REC_ERR.P_ERR_MSG := 'ROLL_MANA_NO IS NULL'; COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG); WHEN POS_VE THEN COMM.REC_ERR.P_ERR_MSG := 'POSITION IS NULL'; COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG); END; /************************************************************************/ /* procedure CHECK_CHARGE_IDX Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION 检查HCR炉次的编制顺序 |后出来的炉次不能编制在先出来的 炉次前 ,以连铸结束时间为准 */ /************************************************************************/ /* parentProcedure: CHECK_ERROR /************************************************************************/ PROCEDURE CHECK_CHARGE_IDX(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE) IS V_PRE_CCM_END_DTIME TBF01_SPEC_CHARGE.PRE_CCM_END_DTIME%TYPE := ''; VE EXCEPTION; V_CNT NUMBER := -1; BEGIN SELECT A.PRE_CCM_END_DTIME INTO V_PRE_CCM_END_DTIME FROM TBF01_SPEC_CHARGE A WHERE A.CHARGE_MANA_NO = P_CHARGE_MANA_NO; --LOGIC --先出来的炉次应该编制在后出来的炉次前 SELECT COUNT(DISTINCT(C.CHARGE_MANA_NO)) INTO V_CNT FROM TBF02_SPEC_MILL A, TBF01_SPEC_CHARGE B, TBF01_SPEC_SLAB C WHERE A.SLAB_EDT_SEQ = C.MILL_SLAB_EDT_SEQ AND B.CHARGE_EDT_SEQ = C.CHARGE_EDT_SEQ AND B.MILL_FL = 'Y' AND C.MILL_FL = 'Y' AND A.STATUS_CD IN ('A', 'B') AND ((A.ROLL_MANA_NO >= V_ROLL_MANA_NO AND B.PRE_CCM_END_DTIME < V_PRE_CCM_END_DTIME) OR (A.ROLL_MANA_NO < V_ROLL_MANA_NO AND B.PRE_CCM_END_DTIME > V_PRE_CCM_END_DTIME)); IF V_CNT > 0 THEN RAISE VE; END IF; --exception EXCEPTION WHEN VE THEN COMM.REC_ERR.P_PRG_ID := 'UIF023100_TEST.CHECK_CHARGE_IDX'; COMM.REC_ERR.P_OPERATE := 'I'; COMM.REC_ERR.P_ERR_PARAM1 := 'V_PRE_CCM_END_DTIME'; COMM.REC_ERR.P_TABLE := 'TBF01_SPEC_CHARGE'; COMM.REC_ERR.P_ERR_MSG := '先出来的炉次应该编制在后出来的炉次前'; COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG); END; /************************************************************************/ /* procedure CHECK_ROLL_STATUS Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION HCR 不能够编制在轧制进行的物料之前 */ /************************************************************************/ /* parentProcedure: CHECK_ERROR /************************************************************************/ PROCEDURE CHECK_ROLL_STATUS(P_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE, P_POSITION VARCHAR2) IS LV_P_BEF_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE := ''; --转换为移动对象前的轧辊管理号 LV_MAX_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE := ''; LV_CNT_STATUS INTEGER := 0; LV_CNT_COIL_STAT INTEGER := 0; VE EXCEPTION; BEGIN SELECT MAX(ROLL_MANA_NO) INTO LV_MAX_ROLL_MANA_NO FROM TBF02_SPEC_MILL A WHERE A.STATUS_CD IN ('A', 'B'); IF (P_POSITION = 'B') THEN LV_P_BEF_ROLL_MANA_NO := P_ROLL_MANA_NO; ELSIF (P_ROLL_MANA_NO < LV_MAX_ROLL_MANA_NO AND P_POSITION = 'A') THEN SELECT A.ROLL_MANA_NO INTO LV_P_BEF_ROLL_MANA_NO FROM (SELECT ROLL_MANA_NO FROM TBF02_SPEC_ROLL WHERE ROLL_MANA_NO > P_ROLL_MANA_NO ORDER BY ROLL_MANA_NO ASC) A WHERE ROWNUM = 1; END IF; SELECT SUM(DECODE(A.STATUS_CD, 'B', 1, 0)), SUM(DECODE(B.COIL_STAT, '0', 1, 0)) INTO LV_CNT_STATUS, LV_CNT_COIL_STAT FROM TBF02_SPEC_MILL A, TBH02_COIL_COMM B WHERE B.SLAB_NO = A.SLAB_NO(+) AND B.COIL_NO = A.COIL_NO(+) AND A.ROLL_MANA_NO = LV_P_BEF_ROLL_MANA_NO AND A.STATUS_CD IN ('A', 'B'); IF (LV_CNT_STATUS > 0 OR LV_CNT_COIL_STAT > 0) THEN RAISE VE; END IF; EXCEPTION WHEN VE THEN COMM.REC_ERR.P_PRG_ID := 'UIF023100_TEST.CHECK_ROLL_STATUS'; COMM.REC_ERR.P_OPERATE := 'CHECK'; COMM.REC_ERR.P_ERR_PARAM1 := 'LV_P_BEF_ROLL_MANA_NO'; COMM.REC_ERR.P_TABLE := 'TBF02_SPEC_MILL'; COMM.REC_ERR.P_ERR_MSG := '不能够编制在轧制进行或上料的物料之前'; COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG); END; /************************************************************************/ /* procedure CHECK_ERROR Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION check the object error 检查HCR有没有被编制,被编制的炉次不能够再次被编制 检查炉次的顺序 ,后出来的炉次不能够编制在先出来的炉次之前 检查编制对象是不是有热轧工艺标准 */ /************************************************************************/ /* parentProcedure: HCR_EDIT /************************************************************************/ PROCEDURE CHECK_ERROR(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE, P_ROLL_MANA_NO TBF02_SPEC_ROLL.ROLL_MANA_NO%TYPE, P_POSITION VARCHAR2) IS BEGIN CHECK_ROLL_STATUS(P_ROLL_MANA_NO, P_POSITION); CHECK_MILL_FL(P_CHARGE_MANA_NO); CHECK_CHARGE_IDX(P_CHARGE_MANA_NO); CHECK_RZGYBZ(P_CHARGE_MANA_NO); END; /************************************************************************/ /* procedure ADUST_ROLL_MANA_NO Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION 调整炉次顺序 插入插辊后的轧辊号都要增加1 */ /************************************************************************/ /* parentProcedure: HCR_EDIT /************************************************************************/ PROCEDURE ADUST_ROLL_MANA_NO IS VE EXCEPTION; BEGIN UPDATE TBF02_SPEC_ROLL SET ROLL_MANA_NO = COMM.SEQ_INCREASE(ROLL_MANA_NO) WHERE ROLL_MANA_NO >= V_ROLL_MANA_NO; UPDATE TBF02_MILL_IDX T SET ROLL_MANA_NO = COMM.SEQ_INCREASE(ROLL_MANA_NO) WHERE ROLL_MANA_NO >= V_ROLL_MANA_NO; UPDATE TBF02_SPEC_MILL T SET ROLL_MANA_NO = COMM.SEQ_INCREASE(ROLL_MANA_NO) WHERE ROLL_MANA_NO >= V_ROLL_MANA_NO; EXCEPTION WHEN VE THEN COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG); END; /************************************************************************/ /* procedure INSERT_SPEC_ROLL Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION 编制对象插入TBFO2_SPEC_ROLL */ /************************************************************************/ /* parentProcedure: HCR_EDIT /************************************************************************/ PROCEDURE INSERT_SPEC_ROLL(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE) IS SLAB_CNT INTEGER := 0; SUM_SLAB_WGT INTEGER := 0; SUM_MILL_LEN INTEGER := 0; V_MAX_ROLL_EDT_SEQ TBF02_SPEC_ROLL.ROLL_EDT_SEQ %TYPE; BEGIN /*记录要插入到轧辊中的板坯数量*/ /* slab_cnt := slabCnt(p_charge_edt_seq); */ --INIT SELECT COUNT(SLAB_EDT_SEQ), SUM(A.SLAB_WGT), SUM(A.ORD_LEN) INTO SLAB_CNT, SUM_SLAB_WGT, SUM_MILL_LEN FROM TBF01_SPEC_SLAB A WHERE A.STATUS_CD IN ('A', 'B') AND A.CHARGE_MANA_NO = P_CHARGE_MANA_NO AND A.HCR_CLF = 'H'; SELECT NVL(MAX(ROLL_EDT_SEQ), 0) INTO V_MAX_ROLL_EDT_SEQ FROM TBF02_SPEC_ROLL; V_ROLL_EDT_SEQ := V_MAX_ROLL_EDT_SEQ + 1; --LOGIC INSERT INTO TBF02_SPEC_ROLL T (T.ROLL_EDT_SEQ, T.ROLL_MANA_NO, T.ROLL_SLAB_CNT, T.ROLL_SLAB_WGT, T.MILL_LEN, T.STATUS_CD, T.HCR_CLF, T.REG_DTIME, T.REG_ID) VALUES (V_MAX_ROLL_EDT_SEQ + 1, V_ROLL_MANA_NO, SLAB_CNT, SUM_SLAB_WGT, SUM_MILL_LEN, 'A', 'H', TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'), COMM.REC_USER.P_REG_ID); END; /************************************************************************/ /* procedure HCR_INSERT Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION 编制对象插入 */ /************************************************************************/ /* parentProcedure: HCR_EDIT /************************************************************************/ PROCEDURE HCR_INSERT(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO%TYPE) IS V_MAX_SEQ_NO TBF02_MILL_IDX.SEQ_NO%TYPE := 0; V_MAX_SLAB_EDT_SEQ TBF02_MILL_IDX.SLAB_EDT_SEQ%TYPE := 0; BEGIN --INIT SELECT NVL(MAX(SEQ_NO), 0) INTO V_MAX_SEQ_NO FROM TBF02_MILL_IDX; V_SEQ_NO := V_MAX_SEQ_NO + 1; SELECT NVL(MAX(SLAB_EDT_SEQ), 0) INTO V_MAX_SLAB_EDT_SEQ FROM TBF02_MILL_IDX; V_SLAB_EDT_SEQ := V_MAX_SLAB_EDT_SEQ + 1; --LOGIC --UPDATE SPEC_CHARGE_MILL_FL OPEN CUR_HCR(P_CHARGE_MANA_NO); LOOP FETCH CUR_HCR INTO REC_HCR; EXIT WHEN CUR_HCR %NOTFOUND; HCR_INSERT_MILL_IDX; HCR_INSERT_SPEC_MILL; --UPDATE SPEC_SLAB_MILL_FL AND MILL_SLAB_EDT_SEQ HCR_U_SPEC_SLAB_MILL_FL; --PARAMS++ V_SEQ_NO := V_SEQ_NO + 1; V_SLAB_EDT_SEQ := V_SLAB_EDT_SEQ + 1; END LOOP; IF (CUR_HCR %ROWCOUNT = 0) THEN RAISE COMM.VE_NULL; END IF; CLOSE CUR_HCR; -- HCR_INSERT_SPECMILL_D; HCR_INSERT_SPEC_MILL_EDT; EXCEPTION WHEN COMM.VE_NULL THEN COMM.REC_ERR.P_PRG_ID := 'UIF023100_TEST.HCR_INSET'; COMM.REC_ERR.P_TABLE := 'TBF02_SPEC_MILL & TBF02_MILL_IDX'; COMM.REC_ERR.P_OPERATE := 'I'; COMM.REC_ERR.P_ERR_MSG := '编制对象数据错误,没有记录!'; COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG); END; PROCEDURE HCR_INSERT_MILL_IDX IS BEGIN INSERT INTO TBF02_MILL_IDX T (T.SEQ_NO, T.SLAB_EDT_SEQ, T.SLAB_NO, T.ROLL_EDT_SEQ, T.ROLL_MANA_NO, T.STATUS_CD, T.L2_SEND, T.REG_DTIME) VALUES (V_SEQ_NO, V_SLAB_EDT_SEQ, REC_HCR.SLAB_MANA_NO, V_ROLL_EDT_SEQ, V_ROLL_MANA_NO, 'A', 'Y', TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')); END; PROCEDURE HCR_INSERT_SPEC_MILL IS V_MAX_ROLL_SLAB_SEQ TBF02_SPEC_MILL.ROLL_SLAB_SEQ%TYPE := 0; V_CUR_COIL_NO TBF02_SPEC_MILL.COIL_NO%TYPE := ''; BEGIN --INIT SELECT NVL(MAX(ROLL_SLAB_SEQ), 0) INTO V_MAX_ROLL_SLAB_SEQ FROM TBF02_SPEC_MILL WHERE ROLL_MANA_NO = V_ROLL_MANA_NO; V_CUR_COIL_NO := GET_COIL_NO; V_ROLL_SLAB_SEQ := V_MAX_ROLL_SLAB_SEQ + 1; INSERT INTO TBF02_SPEC_MILL VALUES (V_SLAB_EDT_SEQ, REC_HCR.SLAB_MANA_NO, V_CUR_COIL_NO, V_ROLL_EDT_SEQ, V_ROLL_MANA_NO, V_ROLL_MANA_NO, V_ROLL_SLAB_SEQ, REC_HCR.LOT_NO, REC_HCR.LOT_COIL_CNT, REC_HCR.LOT_COIL_SEQ, REC_HCR.PRODNM_CD, REC_HCR.SPEC_STL_GRD, REC_HCR.STL_GRD, REC_HCR.FAC_STL_GRP --STL_GRP_CD , REC_HCR.SLAB_THK, REC_HCR.SLAB_WTH, REC_HCR.SLAB_LEN, REC_HCR.SLAB_WGT, REC_HCR.SLAB_TAPER, REC_HCR.SLAB_WTH_HEAD, REC_HCR.SLAB_WTH_TAIL, REC_HCR.WTH_CHG_STS, REC_HCR.WTH_CHG_END, REC_HCR.THK_AIM, REC_HCR.THK_GRP_CD, REC_HCR.HOT_THK_AIM, REC_HCR.HOT_THK_MIN, REC_HCR.HOT_THK_MAX, REC_HCR.WTH_AIM, REC_HCR.WTH_MIN, REC_HCR.WTH_MAX, REC_HCR.WTH_GRP_CD, REC_HCR.MILL_LEN, REC_HCR.MILL_WGT, REC_HCR.HCR_CLF, REC_HCR.ORD_NO, REC_HCR.ORD_SEQ, REC_HCR.ORD_USEAGE_CD, REC_HCR.SPEC_ABBSYM, REC_HCR.ORDCUST_CD --ORD_CUST_CD , REC_HCR.CUST_CD, REC_HCR.DEST_CD, REC_HCR.DELV_REQ_DATE, REC_HCR.UST_CD, REC_HCR.SLAB_RT --ROUTE , REC_HCR.ORD_THK, REC_HCR.ORD_WTH, REC_HCR.ORD_WGT, REC_HCR.ORD_WGT_MIN, REC_HCR.ORD_WGT_MAX, REC_HCR.ORD_INDIA, REC_HCR.ORD_OUTDIA, REC_HCR.PACK_METHOD, REC_HCR.CAST_MANA_NO, REC_HCR.CCM_PRC_LINE, REC_HCR.PATH_MILL_CD, REC_HCR.SPM_PROC_YN, REC_HCR.SLAB_CUT_CNT, REC_HCR.RHF_TGT_TEMP, REC_HCR.EXTRACT_TGT_TEMP -- 目标出炉温度 , REC_HCR.EXTRACT_MIN_TEMP -- 最小出炉温度 , REC_HCR.EXTRACT_MAX_TEMP -- 最大出炉温度 , REC_HCR.CHARGING_TGT_TEMP -- 出炉均热度(目标) , REC_HCR.CHARGING_MAX_TEMP -- 出炉均热度(上限) , REC_HCR.INFUR_MIN_HOUR -- 在炉时间(下限) , REC_HCR.INFUR_MAX_HOUR -- 在炉时间(上限) , REC_HCR.EQ_HT_MIN_HOUR -- 均热时间(下限) , REC_HCR.EQ_HT_MAX_HOUR -- 均热时间(上限) , '' --rec_hcr.FUR_TME , '' --rec_hcr.MILL_TME , '' --rec_hcr.FUR_IN_PRE_DTIME , '' --rec_hcr.MILL_PRE_TME , '0' -- rec_hcr.SPEC_SLAB_EDT_SEQ , 'A' -- rec_hcr.STATUS_CD , '' -- FL , TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'), COMM.REC_USER.P_REG_ID, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'), COMM.REC_USER.P_REG_ID); END; /************************************************************************/ /* procedure HCR_U_SPEC_SLAB_MILL_FL Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION 修改HCR编制的状态 */ /************************************************************************/ /* parentProcedure: HCR_EDIT /************************************************************************/ PROCEDURE HCR_U_SPEC_SLAB_MILL_FL IS BEGIN UPDATE TBF01_SPEC_SLAB T SET T.MILL_SLAB_EDT_SEQ = V_SLAB_EDT_SEQ, T.MILL_FL = 'Y' WHERE T.SLAB_EDT_SEQ = REC_HCR.SLAB_EDT_SEQ; END; /************************************************************************/ /* procedure HCR_U_SPEC_CHARGE_MILL_FL Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION 修改HCR编制的状态 */ /************************************************************************/ /* parentProcedure: HCR_INSERT /************************************************************************/ PROCEDURE HCR_U_SPEC_CHARGE_MILL_FL(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE) IS BEGIN /*编制完成后,更新炉次参数表的编制状态*/ UPDATE TBF01_SPEC_CHARGE T SET T.MILL_FL = 'Y' WHERE T.CHARGE_MANA_NO = P_CHARGE_MANA_NO; END; PROCEDURE HCR_INSERT_SPEC_MILL_EDT IS CUR_MILL_EDT COMM.REF_CURSOR; TYPE REC_MILL_EDT_TYPE IS RECORD( SLAB_EDT_SEQ TBF02_SPEC_MILL_DET.SLAB_EDT_SEQ%TYPE, -- 板坯编制号 SLAB_NO TBF02_SPEC_MILL_DET.SLAB_NO%TYPE, -- 板坯号 FERR_MODE TBF02_SPEC_MILL_DET.FERR_MODE%TYPE, -- 铁素体轧制模式 FERR_CON_STA_TGT_TEMP TBF02_SPEC_MILL_DET.FERR_CON_STA_TGT_TEMP%TYPE, -- 开始铁素体轧制时温度 FERR_CON_END_TGT_TEMP TBF02_SPEC_MILL_DET.FERR_CON_END_TGT_TEMP%TYPE, -- 结束铁素体轧制时温度 EXTRACT_TGT_TEMP TBF02_SPEC_MILL_DET.EXTRACT_TGT_TEMP %TYPE, -- 板坯目标出炉温度 RM1_EXIT_TGT_TEMP TBF02_SPEC_MILL_DET.RM2_EXIT_TGT_TEMP%TYPE, -- R2出口目标温度【额定R2温度】 RM1_EXIT_MIN_TEMP TBF02_SPEC_MILL_DET.RM2_EXIT_MIN_TEMP%TYPE, -- 额定R2温度公差(-) RM1_EXIT_MAX_TEMP TBF02_SPEC_MILL_DET.RM2_EXIT_MAX_TEMP%TYPE, -- 额定R2温度公差(+) STRIP_AIM_THK TBF02_SPEC_MILL_DET.STRIP_AIM_THK%TYPE, -- 额定轧制厚度 STRIP_MAX_THK TBF02_SPEC_MILL_DET.STRIP_MAX_THK%TYPE, -- 额定轧制厚度公差(+) STRIP_MIN_THK TBF02_SPEC_MILL_DET.STRIP_MIN_THK%TYPE, -- 额定轧制厚度公差(-) STRIP_CHG_TGT_THK TBF02_SPEC_MILL_DET.STRIP_CHG_TGT_THK%TYPE, -- STRIP_CHG_MAX_THK TBF02_SPEC_MILL_DET.STRIP_CHG_MAX_THK%TYPE, -- STRIP_CHG_MIN_THK TBF02_SPEC_MILL_DET.STRIP_CHG_MIN_THK%TYPE, -- STRIP_AIM_WTH TBF02_SPEC_MILL_DET.STRIP_AIM_WTH%TYPE, -- 额定轧制宽度 STRIP_MAX_WTH TBF02_SPEC_MILL_DET.STRIP_MAX_WTH%TYPE, -- 额定轧制宽度公差(+) STRIP_MIN_WTH TBF02_SPEC_MILL_DET.STRIP_MIN_WTH%TYPE, -- 额定轧制宽度公差(-) STRIP_TGT_TEMP TBF02_SPEC_MILL_DET.STRIP_TGT_TEMP%TYPE, -- 额定精轧出口温度 STRIP_MIN_TEMP TBF02_SPEC_MILL_DET.STRIP_MIN_TEMP%TYPE, -- 额定精轧出口温度公差(+) STRIP_MAX_TEMP TBF02_SPEC_MILL_DET.STRIP_MAX_TEMP%TYPE, -- 额定精轧出口温度公差(-) CROWN_AIM_C39 TBF02_SPEC_MILL_DET.CROWN_AIM_C40%TYPE, -- 额定钢卷凸度 C40 CROWN_MAX_C39 TBF02_SPEC_MILL_DET.CROWN_MAX_C40%TYPE, -- 额定钢卷凸度最小值(+) CROWN_MIN_C39 TBF02_SPEC_MILL_DET.CROWN_MIN_C40%TYPE, -- 额定钢卷凸度最大值(-) FM_SYM_STRIP_FLATNESS_DEV TBF02_SPEC_MILL_DET.FM_SYM_STRIP_FLATNESS_DEV%TYPE, -- 对称平直度偏差 FM_ASY_STRIP_FLATNESS_DEV TBF02_SPEC_MILL_DET.FM_ASY_STRIP_FLATNESS_DEV%TYPE, -- 非对称平直度偏差 STRIP_WEDGE_MIN TBF02_SPEC_MILL_DET.STRIP_WEDGE_MIN%TYPE, -- 钢板契型最小值 STRIP_WEDGE_MAX TBF02_SPEC_MILL_DET.STRIP_WEDGE_MAX%TYPE, -- 钢板契型最大值 COOLING_MODE TBF02_SPEC_MILL_DET.COOLING_MODE%TYPE, -- 冷却方式代码 DUAL_PAHSE TBF02_SPEC_MILL_DET.DUAL_PAHSE%TYPE, -- "两阶段轧制标记铁素体 和 奥素体 轧制转换 标记" DUAL_TEMP TBF02_SPEC_MILL_DET.DUAL_TEMP%TYPE, -- 两阶段轧制时保持温度 DUAL_TIME TBF02_SPEC_MILL_DET.DUAL_TIME%TYPE, -- 两阶段轧制时间 UNCOIL_HEAD_LEN TBF02_SPEC_MILL_DET.UNCOIL_HEAD_LEN%TYPE, -- 头部开始计算 不冷却钢卷长度 UNCOIL_TAIL_LEN TBF02_SPEC_MILL_DET.UNCOIL_TAIL_LEN%TYPE, -- 尾部开始计算 不冷却钢卷长度 UNCOOL_AREA_LEN TBF02_SPEC_MILL_DET.UNCOOL_AREA_LEN%TYPE, -- 头部不冷却部分的长度 COOLING_RATE_TOP TBF02_SPEC_MILL_DET.COOLING_RATE_TOP%TYPE, -- 头部冷却速率 COOLING_RATE_BOT TBF02_SPEC_MILL_DET.COOLING_RATE_BOT%TYPE, -- 尾部冷却速率 COOL_EXIT_TGT_TEMP TBF02_SPEC_MILL_DET.COOL_EXIT_TGT_TEMP%TYPE, -- 额定卷取温度 COOL_EXIT_MAX_TEMP TBF02_SPEC_MILL_DET.COOL_EXIT_MAX_TEMP%TYPE, -- 额定卷取温度公差(+) COOL_EXIT_MIN_TEMP TBF02_SPEC_MILL_DET.COOL_EXIT_MIN_TEMP%TYPE, -- 额定卷取温度公差(-) SAMPLE_NO TBF02_SPEC_MILL_DET.SAMPLE_NO%TYPE, -- 取样代码 INSPECT_YN TBF02_SPEC_MILL_DET.INSPECT_YN%TYPE, -- 对质量的观察指令 BINDING_AMT_CIRC TBF02_SPEC_MILL_DET.BINDING_AMT_CIRC%TYPE, -- 横向打捆条数 BINDING_AMT_RADI TBF02_SPEC_MILL_DET.BINDING_AMT_RADI%TYPE, -- 纵向打捆条数 SMP_YS TBF02_SPEC_MILL_DET.SMP_YS%TYPE, -- 抗拉强度(TS) SMP_YP TBF02_SPEC_MILL_DET.SMP_YP%TYPE, -- 弯曲强度(YP) ALLOY_COMP_THK_DEV TBF02_SPEC_MILL_DET.ALLOY_COMP_THK_DEV%TYPE, -- 合金补正CODE DILAT_CURVE TBF02_SPEC_MILL_DET.DILAT_CURVE%TYPE, -- 膨胀曲线号 DIAMOND_FLAG TBF02_SPEC_MILL_DET.DIAMOND_FLAG%TYPE, -- 花纹板 区分 STS_FLAG TBF02_SPEC_MILL_DET.STS_FLAG%TYPE, -- 不锈钢 区分 ORD_NO TBF02_SPEC_MILL_DET.ORD_NO%TYPE, -- 生产合同号 COIL_LAYER TBF02_SPEC_MILL_DET.COIL_LAYER%TYPE, -- 钢卷堆放层次区分 HAEA_TAIL_CD TBF02_SPEC_MILL_DET.HAEA_TAIL_CD%TYPE, -- 切头切尾指示 PDI_COMM TBF02_SPEC_MILL_DET.PDI_COMM%TYPE, -- 热轧特殊指示 CHEM_CLF TBF02_SPEC_MILL_DET.CHEM_CLF%TYPE, -- 成分值区分 CHEM_AL TBF02_SPEC_MILL_DET.CHEM_AL%TYPE, -- Aluminium Al Content CHEM_AS TBF02_SPEC_MILL_DET.CHEM_AS%TYPE, -- Arsenic As Content CHEM_B TBF02_SPEC_MILL_DET.CHEM_B %TYPE, -- Boron B Content CHEM_BE TBF02_SPEC_MILL_DET.CHEM_BE%TYPE, -- Analysis of Beryllium CHEM_BI TBF02_SPEC_MILL_DET.CHEM_BI%TYPE, -- Bismuth Bi Content CHEM_C TBF02_SPEC_MILL_DET.CHEM_C %TYPE, -- Carbon C Content CHEM_CA TBF02_SPEC_MILL_DET.CHEM_CA%TYPE, -- Calcium Ca Content CHEM_CE TBF02_SPEC_MILL_DET.CHEM_CE%TYPE, -- Analysis of Cerium CHEM_CO TBF02_SPEC_MILL_DET.CHEM_CO%TYPE, -- Cobalt Co Content CHEM_CR TBF02_SPEC_MILL_DET.CHEM_CR%TYPE, -- Chromium Cr Content CHEM_CU TBF02_SPEC_MILL_DET.CHEM_CU%TYPE, -- Copper Cu Content CHEM_H TBF02_SPEC_MILL_DET.CHEM_H %TYPE, -- Hydrogen H Content CHEM_LA TBF02_SPEC_MILL_DET.CHEM_LA%TYPE, -- Analysis of Lanthanum CHEM_MG TBF02_SPEC_MILL_DET.CHEM_MG%TYPE, -- Magnesium Mg Content CHEM_MN TBF02_SPEC_MILL_DET.CHEM_MN%TYPE, -- Manganese Mn Content CHEM_MO TBF02_SPEC_MILL_DET.CHEM_MO%TYPE, -- Molybdenum Mo Content CHEM_N TBF02_SPEC_MILL_DET.CHEM_N %TYPE, -- Nitrogen N Content CHEM_NB TBF02_SPEC_MILL_DET.CHEM_NB%TYPE, -- Niobium Nb Content CHEM_NI TBF02_SPEC_MILL_DET.CHEM_NI%TYPE, -- Nickel Ni Content CHEM_O TBF02_SPEC_MILL_DET.CHEM_O %TYPE, -- Oxygen O Content CHEM_P TBF02_SPEC_MILL_DET.CHEM_P %TYPE, -- Phosphorus P Content CHEM_S TBF02_SPEC_MILL_DET.CHEM_S %TYPE, -- Sulphur S Content CHEM_SB TBF02_SPEC_MILL_DET.CHEM_SB%TYPE, -- Antimony Sb Content CHEM_SE TBF02_SPEC_MILL_DET.CHEM_SE%TYPE, -- Analysis of Selenium CHEM_SI TBF02_SPEC_MILL_DET.CHEM_SI%TYPE, -- Silicon Si Content CHEM_TI TBF02_SPEC_MILL_DET.CHEM_TI%TYPE, -- Titanium Ti Content CHEM_SN TBF02_SPEC_MILL_DET.CHEM_SN%TYPE, -- Tin Sn Content CHEM_TA TBF02_SPEC_MILL_DET.CHEM_TA%TYPE, -- Tantalum Ta Content CHEM_TE TBF02_SPEC_MILL_DET.CHEM_TE%TYPE, -- Analysis of Tellurium CHEM_PB TBF02_SPEC_MILL_DET.CHEM_PB%TYPE, -- Lead Pb Content CHEM_PD TBF02_SPEC_MILL_DET.CHEM_PD%TYPE, -- Analysis of Palladium CHEM_V TBF02_SPEC_MILL_DET.CHEM_V %TYPE, -- Vanadium V Content CHEM_W TBF02_SPEC_MILL_DET.CHEM_W %TYPE, -- Tungsten W Content CHEM_ZN TBF02_SPEC_MILL_DET.CHEM_ZN%TYPE, -- Zinc Zn Content CHEM_ZR TBF02_SPEC_MILL_DET.CHEM_ZR%TYPE, -- Zirconium Zr Content RESERVE_FIELD1 TBF02_SPEC_MILL_DET.RESERVE_FIELD1%TYPE, -- 预备 1 RESERVE_FIELD2 TBF02_SPEC_MILL_DET.RESERVE_FIELD2%TYPE, -- 预备 2 RESERVE_FIELD3 TBF02_SPEC_MILL_DET.RESERVE_FIELD3%TYPE, -- 预备 3 RESERVE_FIELD4 TBF02_SPEC_MILL_DET.RESERVE_FIELD4%TYPE, -- 预备 4 RESERVE_FIELD5 TBF02_SPEC_MILL_DET.RESERVE_FIELD5%TYPE -- 预备 5 ); REC_MILL_EDT REC_MILL_EDT_TYPE; -- CUR_MILL_EDT IS REF CURSOR; BEGIN OPEN CUR_MILL_EDT FOR SELECT F.SLAB_EDT_SEQ -- SLAB_EDT_SEQ 板坯编制号 , F.SLAB_NO -- SLAB_NO 板坯号 , B.FERR_MODE -- FERR_MODE 铁素体轧制模式 , B.FERR_CON_STA_TGT_TEMP -- FERR_CON_STA_TGT_TEMP 开始铁素体轧制时温度 , B.FERR_CON_END_TGT_TEMP -- FERR_CON_END_TGT_TEMP 结束铁素体轧制时温度 , B.EXTRACT_TGT_TEMP -- EXTRACT_TGT_TEMP 板坯目标出炉温度 , '' RM2_EXIT_TGT_TEMP -- RM2_EXIT_TGT_TEMP R2出口目标温度【额定R2温度】 , '' RM2_EXIT_MIN_TEMP -- RM2_EXIT_MIN_TEMP 额定R2温度公差(-) , '' RM2_EXIT_MAX_TEMP -- RM2_EXIT_MAX_TEMP 额定R2温度公差(+) , -- TO_CHAR(C.HOT_THK_AIM) STRIP_AIM_THK --额定轧制厚度 TO_CHAR(D.ORD_THK) STRIP_AIM_THK --额定轧制厚度 --UPDATE 090629 , TO_CHAR(C.HOT_THK_MAX - C.HOT_THK_AIM) STRIP_MAX_THK --额定轧制厚度公差(+) , TO_CHAR(C.HOT_THK_AIM - C.HOT_THK_MIN) STRIP_MIN_THK --额定轧制厚度公差(-) , '' -- STRIP_CHG_TGT_THK , '' -- STRIP_CHG_MAX_THK , '' -- STRIP_CHG_MIN_THK , TO_CHAR(C.WTH_AIM) STRIP_AIM_WTH --额定轧制宽度 , TO_CHAR(C.WTH_MAX - C.WTH_AIM) STRIP_MAX_WTH --额定轧制宽度公差(+) , TO_CHAR(C.WTH_AIM - C.WTH_MIN) STRIP_MIN_WTH --额定轧制宽度公差(-) , CASE WHEN (X.THK_MAX_LABEL = 'D' AND F.THK_AIM >= X.THK_MAX) THEN B.STRIP_TGT_TEMP2 WHEN (X.THK_MAX_LABEL = 'C' AND F.THK_AIM > X.THK_MAX) THEN B.STRIP_TGT_TEMP2 ELSE B.STRIP_TGT_TEMP1 END STRIP_TGT_TEMP -- COOL_EXIT_TGT_TEMP 额定卷取温度 , B.STRIP_MIN_TEMP -- STRIP_MIN_TEMP 额定精轧出口温度公差(+) , B.STRIP_MAX_TEMP -- STRIP_MAX_TEMP 额定精轧出口温度公差(-) , B.FM_ENT_TGT_CROWN_40 -- CROWN_AIM_C40 额定钢卷凸度 C40 , B.FM_ENT_MAX_CROWN_40 -- CROWN_MAX_C40 额定钢卷凸度最大值(+) , B.FM_ENT_MIN_CROWN_40 -- CROWN_MIN_C40 额定钢卷凸度最小值(-) , B.SYM_FLATNESS_DEV -- FM_SYM_STRIP_FLATNESS_DEV 对称平直度偏差 , B.ASY_FLATNESS_DEV -- FM_ASY_STRIP_FLATNESS_DEV 非对称平直度偏差 , B.STRIP_WED_MIN -- STRIP_WEDGE_MIN 钢板契型最小值 , B.STRIP_WED_MAX -- STRIP_WEDGE_MAX 钢板契型最大值 , NVL(B.COOL_MODE, '0') COOLING_MODE --冷却方式代码 , NVL(B.DUAL_PHASE_CLF, '0') -- DUAL_PAHSE 两阶段轧制标记 铁素体 和 奥素体 轧制转换 标记 , B.DUAL_PHASE_TEMP -- DUAL_TEMP 两阶段轧制时保持温度 , B.DUAL_PHASE_TIME -- DUAL_TIME 两阶段轧制时间 , B.NON_COOL_LEN_HEAD -- UNCOIL_HEAD_LEN 头部开始计算 不冷却钢卷长度 , B.NON_COOL_LEN_TAIL -- UNCOIL_TAIL_LEN 尾部开始计算 不冷却钢卷长度 , B.NON_COOL_LEN_NOR -- UNCOOL_AREA_LEN 头部不冷却部分的长度 , NVL(B.COOL_TOP_RATE, '50') COOLING_RATE_TOP --头部冷却速率 , NVL(B.COOL_BOT_RATE, '50') COOLING_RATE_BOT --尾部冷却速率 , CASE WHEN (X.THK_MAX_LABEL = 'D' AND F.THK_AIM >= X.THK_MAX) THEN B.COILING_TGT_TEMP2 WHEN (X.THK_MAX_LABEL = 'C' AND F.THK_AIM > X.THK_MAX) THEN B.COILING_TGT_TEMP2 ELSE B.COILING_TGT_TEMP1 END COILING_TGT_TEMP -- COOL_EXIT_TGT_TEMP 额定卷取温度 , B.COILING_MAX_TEMP -- COOL_EXIT_MAX_TEMP 额定卷取温度公差(+) , B.COILING_MIN_TEMP -- COOL_EXIT_MIN_TEMP 额定卷取温度公差(-) , '' -- SAMPLE_NO 取样代码 , '' -- INSPECT_YN 对质量的观察指令 , NVL(B.BINDING_WGT_CIR, '1') BINDING_AMT_CIRC --横向打捆条数 , NVL(B.BINDING_WGT_RAD, '1') BINDING_AMT_RADI --纵向打捆条数 , (SELECT CASE WHEN NVL(E.QLTY_MIN, 0) = 0 AND NVL(E.QLTY_MAX, 0) = 0 THEN 0 WHEN NVL(E.QLTY_MIN, 0) <> 0 AND NVL(E.QLTY_MAX, 0) = 0 THEN E.QLTY_MIN WHEN NVL(E.QLTY_MIN, 0) = 0 AND NVL(E.QLTY_MAX, 0) <> 0 THEN E.QLTY_MAX ELSE (E.QLTY_MIN + E.QLTY_MAX) / 2 END FROM TBB01_ORD_QLTY E WHERE E.ORD_NO = F.ORD_NO AND E.ORD_SEQ = F.ORD_SEQ AND E.DSN_KIND || QLTY_CD = (SELECT MAX(B.DSN_KIND) || MIN(B.QLTY_CD) FROM TBB01_ORD_QLTY B WHERE B.ORD_NO = F.ORD_NO AND B.ORD_SEQ = F.ORD_SEQ AND B.QLTY_CD LIKE 'EL%' AND B.DSN_KIND = (SELECT MAX(B.DSN_KIND) FROM TBB01_ORD_QLTY B WHERE B.ORD_NO = F.ORD_NO AND B.ORD_SEQ = F.ORD_SEQ AND B.QLTY_CD LIKE 'EL%'))) -- SMP_YS 抗拉强度(TS) , (SELECT CASE WHEN NVL(D.QLTY_MIN, 0) = 0 AND NVL(D.QLTY_MAX, 0) = 0 THEN 0 WHEN NVL(D.QLTY_MIN, 0) <> 0 AND NVL(D.QLTY_MAX, 0) = 0 THEN D.QLTY_MIN WHEN NVL(D.QLTY_MIN, 0) = 0 AND NVL(D.QLTY_MAX, 0) <> 0 THEN D.QLTY_MAX ELSE (D.QLTY_MIN + D.QLTY_MAX) / 2 END FROM TBB01_ORD_QLTY D WHERE D.QLTY_CD = 'TT07' AND D.ORD_NO = F.ORD_NO AND D.ORD_SEQ = F.ORD_SEQ AND D.DSN_KIND = (SELECT MAX(A.DSN_KIND) FROM TBB01_ORD_QLTY A WHERE A.ORD_NO = F.ORD_NO AND A.ORD_SEQ = F.ORD_SEQ AND A.QLTY_CD = 'TT07')) -- SMP_YP 弯曲强度(YP) , B.ALLOY_COMP -- ALLOY_COMP_THK_DEV 合金补正CODE , B.DILAT_CURVE -- DILAT_CURVE 膨胀曲线号 , '0' -- DIAMOND_FLAG 花纹板 区分 , '' -- STS_FLAG 不锈钢 区分 , F.ORD_NO || F.ORD_SEQ -- ORD_NO 生产合同号 , '1' -- COIL_LAYER 钢卷堆放层次区分 , '1' -- HAEA_TAIL_CD 切头切尾指示 , '' -- PDI_COMM 热轧特殊指示 , '1' -- CHEM_CLF 成分值区分 , G.CHEM_AL -- CHEM_Al Aluminium Al Content , G.CHEM_AS -- CHEM_As Arsenic As Content , G.CHEM_B -- CHEM_B Boron B Content , G.CHEM_BE -- CHEM_Be Analysis of Beryllium , G.CHEM_BI -- CHEM_Bi Bismuth Bi Content , G.CHEM_C -- CHEM_C Carbon C Content , G.CHEM_CA -- CHEM_Ca Calcium Ca Content , G.CHEM_CE -- CHEM_Ce Analysis of Cerium , G.CHEM_CO -- CHEM_Co Cobalt Co Content , G.CHEM_CR -- CHEM_Cr Chromium Cr Content , G.CHEM_CU -- CHEM_Cu Copper Cu Content , G.CHEM_H -- CHEM_H Hydrogen H Content , G.CHEM_LA -- CHEM_La Analysis of Lanthanum , G.CHEM_MG -- CHEM_Mg Magnesium Mg Content , G.CHEM_MN -- CHEM_Mn Manganese Mn Content , G.CHEM_MO -- CHEM_Mo Molybdenum Mo Content , G.CHEM_N -- CHEM_N Nitrogen N Content , G.CHEM_NB -- CHEM_Nb Niobium Nb Content , G.CHEM_NI -- CHEM_Ni Nickel Ni Content , G.CHEM_O -- CHEM_O Oxygen O Content , G.CHEM_P -- CHEM_P Phosphorus P Content , G.CHEM_S -- CHEM_S Sulphur S Content , G.CHEM_SB -- CHEM_Sb Antimony Sb Content , G.CHEM_SE -- CHEM_Se Analysis of Selenium , G.CHEM_SI -- CHEM_Si Silicon Si Content , G.CHEM_TI -- CHEM_Ti Titanium Ti Content , G.CHEM_SN -- CHEM_Sn Tin Sn Content , G.CHEM_TA -- CHEM_Ta Tantalum Ta Content , G.CHEM_TE -- CHEM_Te Analysis of Tellurium , G.CHEM_PB -- CHEM_Pb Lead Pb Content , G.CHEM_PD -- CHEM_Pd Analysis of Palladium , G.CHEM_V -- CHEM_V Vanadium V Content , G.CHEM_W -- CHEM_W Tungsten W Content , G.CHEM_ZN -- CHEM_Zn Zinc Zn Content , G.CHEM_ZR -- CHEM_Zr Zirconium Zr Content , '' -- RESERVE_FIELD1 预备 1 , '' -- RESERVE_FIELD2 预备 2 , '' -- RESERVE_FIELD3 预备 3 , '' -- RESERVE_FIELD4 预备 4 , '' -- RESERVE_FIELD5 预备 5 FROM TBF02_SPEC_MILL F, TBH01_OPRN_STD B, TBB01_ORD_PROD C, TBB01_ORD_HEAD D, TBH01_THK_STD X, (SELECT FAC_STL_GRD, MAX(DECODE(CHEM_CD, 'Al', CHEM_AIM)) CHEM_AL, MAX(DECODE(CHEM_CD, 'As', CHEM_AIM)) CHEM_AS, MAX(DECODE(CHEM_CD, 'B', CHEM_AIM)) CHEM_B, MAX(DECODE(CHEM_CD, 'Be', CHEM_AIM)) CHEM_BE, MAX(DECODE(CHEM_CD, 'Bi', CHEM_AIM)) CHEM_BI, MAX(DECODE(CHEM_CD, 'C', CHEM_AIM)) CHEM_C, MAX(DECODE(CHEM_CD, 'Ca', CHEM_AIM)) CHEM_CA, MAX(DECODE(CHEM_CD, 'Ce', CHEM_AIM)) CHEM_CE, MAX(DECODE(CHEM_CD, 'Co', CHEM_AIM)) CHEM_CO, MAX(DECODE(CHEM_CD, 'Cr', CHEM_AIM)) CHEM_CR, MAX(DECODE(CHEM_CD, 'Cu', CHEM_AIM)) CHEM_CU, MAX(DECODE(CHEM_CD, 'H', CHEM_AIM)) CHEM_H, MAX(DECODE(CHEM_CD, 'La', CHEM_AIM)) CHEM_LA, MAX(DECODE(CHEM_CD, 'Mg', CHEM_AIM)) CHEM_MG, MAX(DECODE(CHEM_CD, 'Mn', CHEM_AIM)) CHEM_MN, MAX(DECODE(CHEM_CD, 'Mo', CHEM_AIM)) CHEM_MO, MAX(DECODE(CHEM_CD, 'N', CHEM_AIM)) CHEM_N, MAX(DECODE(CHEM_CD, 'Nb', CHEM_AIM)) CHEM_NB, MAX(DECODE(CHEM_CD, 'Ni', CHEM_AIM)) CHEM_NI, MAX(DECODE(CHEM_CD, 'O', CHEM_AIM)) CHEM_O, MAX(DECODE(CHEM_CD, 'P', CHEM_AIM)) CHEM_P, MAX(DECODE(CHEM_CD, 'S', CHEM_AIM)) CHEM_S, MAX(DECODE(CHEM_CD, 'Sb', CHEM_AIM)) CHEM_SB, MAX(DECODE(CHEM_CD, 'Se', CHEM_AIM)) CHEM_SE, MAX(DECODE(CHEM_CD, 'Si', CHEM_AIM)) CHEM_SI, MAX(DECODE(CHEM_CD, 'Ti', CHEM_AIM)) CHEM_TI, MAX(DECODE(CHEM_CD, 'Sn', CHEM_AIM)) CHEM_SN, MAX(DECODE(CHEM_CD, 'Ta', CHEM_AIM)) CHEM_TA, MAX(DECODE(CHEM_CD, 'Te', CHEM_AIM)) CHEM_TE, MAX(DECODE(CHEM_CD, 'Pb', CHEM_AIM)) CHEM_PB, MAX(DECODE(CHEM_CD, 'Pd', CHEM_AIM)) CHEM_PD, MAX(DECODE(CHEM_CD, 'V', CHEM_AIM)) CHEM_V, MAX(DECODE(CHEM_CD, 'W', CHEM_AIM)) CHEM_W, MAX(DECODE(CHEM_CD, 'Zn', CHEM_AIM)) CHEM_ZN, MAX(DECODE(CHEM_CD, 'Zr', CHEM_AIM)) CHEM_ZR FROM TBB01_FAC_INGR GROUP BY FAC_STL_GRD) G WHERE F.ROLL_MANA_NO = V_ROLL_MANA_NO AND F.ORD_NO = D.ORD_NO(+) AND F.ORD_SEQ = D.ORD_SEQ(+) AND F.ORD_NO = C.ORD_NO(+) AND F.ORD_SEQ = C.ORD_SEQ(+) AND D.PRDNM_CD = B.PRDNM_CD(+) AND D.SPEC_ABBSYM = B.SPEC_ABBSYM(+) AND D.SPEC_STL_GRD = B.STL_GRD(+) AND X.THK_TGT(+) = B.THK_TGT AND F.STL_GRD = G.FAC_STL_GRD; LOOP FETCH CUR_MILL_EDT INTO REC_MILL_EDT; EXIT WHEN CUR_MILL_EDT%NOTFOUND; INSERT INTO TBF02_SPEC_MILL_DET VALUES (REC_MILL_EDT.SLAB_EDT_SEQ, REC_MILL_EDT.SLAB_NO, REC_MILL_EDT.FERR_MODE, REC_MILL_EDT.FERR_CON_STA_TGT_TEMP, REC_MILL_EDT.FERR_CON_END_TGT_TEMP, REC_MILL_EDT.EXTRACT_TGT_TEMP, REC_MILL_EDT.RM1_EXIT_TGT_TEMP, REC_MILL_EDT.RM1_EXIT_MIN_TEMP, REC_MILL_EDT.RM1_EXIT_MAX_TEMP, REC_MILL_EDT.STRIP_AIM_THK, REC_MILL_EDT.STRIP_MAX_THK, REC_MILL_EDT.STRIP_MIN_THK, REC_MILL_EDT.STRIP_CHG_TGT_THK, REC_MILL_EDT.STRIP_CHG_MAX_THK, REC_MILL_EDT.STRIP_CHG_MIN_THK, REC_MILL_EDT.STRIP_AIM_WTH, REC_MILL_EDT.STRIP_MAX_WTH, REC_MILL_EDT.STRIP_MIN_WTH, REC_MILL_EDT.STRIP_TGT_TEMP, REC_MILL_EDT.STRIP_MIN_TEMP, REC_MILL_EDT.STRIP_MAX_TEMP, REC_MILL_EDT.CROWN_AIM_C39, REC_MILL_EDT.CROWN_MAX_C39, REC_MILL_EDT.CROWN_MIN_C39, REC_MILL_EDT.FM_SYM_STRIP_FLATNESS_DEV, REC_MILL_EDT.FM_ASY_STRIP_FLATNESS_DEV, REC_MILL_EDT.STRIP_WEDGE_MIN, REC_MILL_EDT.STRIP_WEDGE_MAX, REC_MILL_EDT.COOLING_MODE, REC_MILL_EDT.DUAL_PAHSE, REC_MILL_EDT.DUAL_TEMP, REC_MILL_EDT.DUAL_TIME, REC_MILL_EDT.UNCOIL_HEAD_LEN, REC_MILL_EDT.UNCOIL_TAIL_LEN, REC_MILL_EDT.UNCOOL_AREA_LEN, REC_MILL_EDT.COOLING_RATE_TOP, REC_MILL_EDT.COOLING_RATE_BOT, REC_MILL_EDT.COOL_EXIT_TGT_TEMP, REC_MILL_EDT.COOL_EXIT_MAX_TEMP, REC_MILL_EDT.COOL_EXIT_MIN_TEMP, REC_MILL_EDT.SAMPLE_NO, REC_MILL_EDT.INSPECT_YN, REC_MILL_EDT.BINDING_AMT_CIRC, REC_MILL_EDT.BINDING_AMT_RADI, REC_MILL_EDT.SMP_YS, REC_MILL_EDT.SMP_YP, REC_MILL_EDT.ALLOY_COMP_THK_DEV, REC_MILL_EDT.DILAT_CURVE, REC_MILL_EDT.DIAMOND_FLAG, REC_MILL_EDT.STS_FLAG, REC_MILL_EDT.ORD_NO, REC_MILL_EDT.COIL_LAYER, REC_MILL_EDT.HAEA_TAIL_CD, REC_MILL_EDT.PDI_COMM, REC_MILL_EDT.CHEM_CLF, REC_MILL_EDT.CHEM_AL, REC_MILL_EDT.CHEM_AS, REC_MILL_EDT.CHEM_B, REC_MILL_EDT.CHEM_BE, REC_MILL_EDT.CHEM_BI, REC_MILL_EDT.CHEM_C, REC_MILL_EDT.CHEM_CA, REC_MILL_EDT.CHEM_CE, REC_MILL_EDT.CHEM_CO, REC_MILL_EDT.CHEM_CR, REC_MILL_EDT.CHEM_CU, REC_MILL_EDT.CHEM_H, REC_MILL_EDT.CHEM_LA, REC_MILL_EDT.CHEM_MG, REC_MILL_EDT.CHEM_MN, REC_MILL_EDT.CHEM_MO, REC_MILL_EDT.CHEM_N, REC_MILL_EDT.CHEM_NB, REC_MILL_EDT.CHEM_NI, REC_MILL_EDT.CHEM_O, REC_MILL_EDT.CHEM_P, REC_MILL_EDT.CHEM_S, REC_MILL_EDT.CHEM_SB, REC_MILL_EDT.CHEM_SE, REC_MILL_EDT.CHEM_SI, REC_MILL_EDT.CHEM_TI, REC_MILL_EDT.CHEM_SN, REC_MILL_EDT.CHEM_TA, REC_MILL_EDT.CHEM_TE, REC_MILL_EDT.CHEM_PB, REC_MILL_EDT.CHEM_PD, REC_MILL_EDT.CHEM_V, REC_MILL_EDT.CHEM_W, REC_MILL_EDT.CHEM_ZN, REC_MILL_EDT.CHEM_ZR, REC_MILL_EDT.RESERVE_FIELD1, REC_MILL_EDT.RESERVE_FIELD2, REC_MILL_EDT.RESERVE_FIELD3, REC_MILL_EDT.RESERVE_FIELD4, REC_MILL_EDT.RESERVE_FIELD5); END LOOP; COMM.IS_CUR_NULL(CUR_MILL_EDT); /* IF(CUR_MILL_EDT %ROWCOUNT = 0) THEN RAISE COMM.VE_NULL; END IF; CLOSE CUR_MILL_EDT;*/ EXCEPTION WHEN COMM.VE_NULL THEN COMM.REC_ERR.P_PRG_ID := 'UIF023100_TEST.HCR_INSET_SPEC_MILL_EDT'; COMM.REC_ERR.P_TABLE := 'TBF02_SPEC_MILL_EDT'; COMM.REC_ERR.P_OPERATE := 'I'; COMM.REC_ERR.P_ERR_PARAM1 := 'STL_GRD'; COMM.REC_ERR.P_ERR_MSG := '请检查牌号和热轧工艺标准'; COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG); END; PROCEDURE HCR_INSERT_SPECMILL_D IS CUR_SPEC_MILL_D COMM.REF_CURSOR; TYPE REC_SPEC_MILL_D_TYPE IS RECORD( P_SLAB_EDT_SEQ TBF02_SPEC_MILL_D.SLAB_EDT_SEQ%TYPE, P_SLAB_CUT_SEQ TBF02_SPEC_MILL_D.COIL_CUT_SEQ%TYPE, P_ORD_THK TBF02_SPEC_MILL_D.ORD_THK%TYPE, P_ORD_WTH TBF02_SPEC_MILL_D.ORD_WTH%TYPE, P_ORD_LEN TBF02_SPEC_MILL_D.ORD_LEN%TYPE, P_ORD_WGT TBF02_SPEC_MILL_D.ORD_WGT%TYPE, P_ORD_UNIT_WGT_MIN TBE02_ORD_PRC.ORD_UNIT_WGT_MIN%TYPE, P_ORD_UNIT_WGT_MAX TBE02_ORD_PRC.ORD_UNIT_WGT_MAX%TYPE, P_ORD_INDIA TBF02_SPEC_MILL_D.ORD_INDIA%TYPE, P_ORD_OUTDIA TBF02_SPEC_MILL_D.ORD_OUTDIA%TYPE, P_ORD_NO TBF02_SPEC_MILL_D.ORD_NO%TYPE, P_ORD_SEQ TBF02_SPEC_MILL_D.ORD_SEQ%TYPE, P_ORD_FL TBF02_SPEC_MILL_D.ORD_FL%TYPE); REC_SPECMILLD REC_SPEC_MILL_D_TYPE; BEGIN OPEN CUR_SPEC_MILL_D FOR SELECT B.SLAB_EDT_SEQ, A.SLAB_CUT_SEQ, A.ORD_THK, A.ORD_WTH, A.ORD_LEN, A.ORD_WGT, D.ORD_UNIT_WGT_MIN, D.ORD_UNIT_WGT_MAX, A.COIL_INDIA, A.COIL_OUTDIA, A.ORD_NO, A.ORD_SEQ, A.ORD_FL FROM TBF01_SPEC_SLAB_D A, TBF01_SPEC_SLAB C, TBE02_ORD_PRC D, (SELECT X.SLAB_EDT_SEQ FROM TBF02_SPEC_MILL X WHERE X.SLAB_EDT_SEQ NOT IN (SELECT SLAB_EDT_SEQ FROM TBF02_SPEC_MILL_D)) B WHERE A.ORD_NO = D.ORD_NO AND A.ORD_SEQ = D.ORD_SEQ AND C.SLAB_EDT_SEQ = A.SLAB_EDT_SEQ AND B.SLAB_EDT_SEQ = C.MILL_SLAB_EDT_SEQ AND C.STATUS_CD = 'B' --ADD BY SJW 090707 AND C.MILL_FL = 'Y' ORDER BY B.SLAB_EDT_SEQ ASC; LOOP FETCH CUR_SPEC_MILL_D INTO REC_SPECMILLD; EXIT WHEN CUR_SPEC_MILL_D %NOTFOUND; INSERT INTO TBF02_SPEC_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, STATUS_CD) VALUES (REC_SPECMILLD.P_SLAB_EDT_SEQ, REC_SPECMILLD.P_SLAB_CUT_SEQ, REC_SPECMILLD.P_ORD_THK, REC_SPECMILLD.P_ORD_WTH, REC_SPECMILLD.P_ORD_LEN, REC_SPECMILLD.P_ORD_WGT, REC_SPECMILLD.P_ORD_UNIT_WGT_MIN, REC_SPECMILLD.P_ORD_UNIT_WGT_MAX, REC_SPECMILLD.P_ORD_INDIA, REC_SPECMILLD.P_ORD_OUTDIA, REC_SPECMILLD.P_ORD_NO, REC_SPECMILLD.P_ORD_SEQ, REC_SPECMILLD.P_ORD_FL, 'A'); END LOOP; COMM.IS_CUR_NULL(CUR_SPEC_MILL_D); END; /************************************************************************/ /* procedure CALLL_E_INIT_OUT_PARAM Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION L2指示后返回要传送到进程处理的接口 */ /************************************************************************/ /* ParentProgram /************************************************************************/ PROCEDURE CALLL_E_INIT_OUT_PARAM(P_TYPE OUT VARCHAR2, P_ST OUT VARCHAR2, P_EN OUT VARCHAR2) IS BEGIN SELECT MAX(ROLL_MANA_NO) INTO P_EN FROM TBF02_SPEC_ROLL; P_TYPE := 'R'; P_ST := V_ROLL_MANA_NO; END; PROCEDURE HCR_EDIT(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE, P_ROLL_MANA_NO VARCHAR2, P_POSITION VARCHAR2, P_REG_ID VARCHAR2, P_TYPE OUT VARCHAR2, P_ST OUT VARCHAR2, P_EN OUT VARCHAR2, P_RTN_MSG OUT VARCHAR2) IS BEGIN COMM.INIT_RTN_MSG; INIT_ROLL_MANA_NO(P_ROLL_MANA_NO, P_POSITION); CHECK_ERROR(P_CHARGE_MANA_NO, P_ROLL_MANA_NO, P_POSITION); COMM.INIT_USER(P_REG_ID); ADUST_ROLL_MANA_NO; INSERT_SPEC_ROLL(P_CHARGE_MANA_NO); HCR_U_SPEC_CHARGE_MILL_FL(P_CHARGE_MANA_NO); HCR_INSERT(P_CHARGE_MANA_NO); CALLL_E_INIT_OUT_PARAM(P_TYPE, P_ST, P_EN); EXCEPTION 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 CHECK_RZGYBZ Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION 检查热轧工艺标准 */ /************************************************************************/ /* EXCEPTION VE when:缺乏热轧工艺标准:炉次成分实绩 /************************************************************************/ PROCEDURE CHECK_RZGYBZ(P_CHARGE_MANA_NO TBF01_SPEC_CHARGE.CHARGE_MANA_NO %TYPE) IS VE EXCEPTION; LV_CUR_NULL_CNT INTEGER := 0; --游标行记录 V_ERR_BZ_INFO VARCHAR2(1000) := ''; V_ERR_MSG VARCHAR2(1000) := ''; CURSOR CUR_ERR_BZ IS SELECT DISTINCT D.PRDNM_CD, D.SPEC_ABBSYM, D.SPEC_STL_GRD, E.FAC_STL_GRD, F.STL_GRD FROM TBF01_SPEC_SLAB F, TBH01_OPRN_STD B, TBB01_ORD_PROD C, (SELECT B.ORD_NO, B.ORD_SEQ, B.SPEC_ABBSYM, B.SPEC_STL_GRD, A.PRDNM_CD FROM TBA01_ORD_COMM A, TBA01_ORD_LINE B WHERE B.ORD_NO = A.ORD_NO) D, TBB01_FAC_INGR E WHERE F.ORD_NO = C.ORD_NO(+) AND F.ORD_SEQ = C.ORD_SEQ(+) AND F.ORD_NO = D.ORD_NO(+) AND F.ORD_SEQ = D.ORD_SEQ(+) AND D.PRDNM_CD = B.PRDNM_CD(+) AND D.SPEC_ABBSYM = B.SPEC_ABBSYM(+) AND D.SPEC_STL_GRD = B.STL_GRD(+) AND F.STL_GRD = E.FAC_STL_GRD(+) AND F.CHARGE_MANA_NO = P_CHARGE_MANA_NO AND (B.STL_GRD IS NULL OR B.SPEC_ABBSYM IS NULL OR E.FAC_STL_GRD IS NULL); REC_ERR_BZ CUR_ERR_BZ%ROWTYPE; BEGIN OPEN CUR_ERR_BZ; IF CUR_ERR_BZ %ISOPEN THEN LOOP FETCH CUR_ERR_BZ INTO REC_ERR_BZ; EXIT WHEN CUR_ERR_BZ %NOTFOUND; IF REC_ERR_BZ.FAC_STL_GRD IS NULL THEN V_ERR_BZ_INFO := REC_ERR_BZ.STL_GRD; V_ERR_MSG := ' 缺少厂内牌号 :' || V_ERR_BZ_INFO; COMM.REC_ERR. P_ERR_PARAM1 := 'FAC_STL_GRD'; ELSE V_ERR_BZ_INFO := ' PRDNM_CD: ' || REC_ERR_BZ.PRDNM_CD || ' SPEC_ABBSYM: ' || REC_ERR_BZ.SPEC_ABBSYM || ' SPEC_STL_GRD: ' || REC_ERR_BZ.SPEC_STL_GRD; V_ERR_MSG := '缺少热轧工艺标准:' || V_ERR_BZ_INFO; COMM.REC_ERR. P_ERR_PARAM1 := 'SPEC_STL_GRD'; COMM.REC_ERR. P_ERR_PARAM2 := 'SPEC_ABBSYM'; END IF; LV_CUR_NULL_CNT := LV_CUR_NULL_CNT + 1; END LOOP; CLOSE CUR_ERR_BZ; IF LV_CUR_NULL_CNT > 0 THEN RAISE VE; END IF; END IF; EXCEPTION WHEN VE THEN COMM.REC_ERR.P_ERR_MSG := V_ERR_MSG; COMM.REC_ERR.P_PRG_ID := 'UIF023100_TEST.CHECK_RZGYBZ'; COMM.REC_ERR.P_OPERATE := 'R'; COMM.CALL_ERRDO(COMM.REC_ERR.P_RTN_MSG); END; /************************************************************************/ /* procedure GET_COIL_NO Author: SunJiawang */ /************************************************************************/ /* DESCRIPTION 生成钢卷号 */ /************************************************************************/ FUNCTION GET_COIL_NO RETURN TBF02_SPEC_MILL.COIL_NO%TYPE IS V_MAX_COIL_NO TBF02_SPEC_MILL.COIL_NO %TYPE := ''; V_COIL_NO TBF02_SPEC_MILL.COIL_NO%TYPE := ''; BEGIN --INIT SELECT TO_CHAR(SYSDATE, 'y') INTO V_CURYEAR FROM DUAL; SELECT NVL(MAX(TO_NUMBER(SUBSTR(T.COIL_NO, 4, 6))), 0) INTO V_MAX_COIL_NO FROM TBF02_SPEC_MILL T WHERE T.COIL_NO LIKE 'R' || V_CURYEAR || '%'; V_COIL_NO := 'R' || V_CURYEAR || '-' || LPAD(TO_CHAR(V_MAX_COIL_NO + 1), 6, '0') || 'A010'; RETURN V_COIL_NO; END; END UIF023100_TEST; /