DECLARE V_OUTSTOCK_DOC YDM_GP_OUTLIST.OUTSTOCK_DOC%TYPE := NULL; V_INSTOCK_DOC YDM_GP_INLIST.INSTOCK_DOC%TYPE := NULL; V_OUTSTOCK_SQE YDM_GP_OUTLIST.OUTSTOCK_SQE%TYPE := NULL; V_INSTOCK_SQE YDM_GP_INLIST.INSTOCK_SQE%TYPE := NULL; V_OCOUNT NUMBER := 1; V_ICOUNT NUMBER := 1; V_MAT_NO_COUNT NUMBER := 1; V_MAT_NO MAT_GP_M.MAT_NO%TYPE := NULL; V_BATHYEAR MAT_GP_M.BAL_YEAR_MONTH%TYPE := '#BAL_YEAR_MONTH#'; BEGIN --生成出库单号 SELECT 'OP' || TO_CHAR(SYSDATE, 'YYMMDD') || LPAD(NVL(MAX(SUBSTR(OUTSTOCK_DOC, 9)), 0) + 1, 5, 0) INTO V_OUTSTOCK_DOC FROM YDM_GP_OUTLIST T WHERE T.OUTSTOCK_TYPE_CODE = '800808' AND T.OUTSTOCK_DOC LIKE 'OP'||TO_CHAR(SYSDATE, 'YYMMDD')||'_____'; --出库流水号 SELECT TO_NUMBER(LPAD((NVL(MAX(SUBSTR(T.OUTSTOCK_SQE, 14)), 0) + 1), 4, 0)) INTO V_OCOUNT FROM YDM_GP_OUTLIST T WHERE T.OUTSTOCK_DOC = V_OUTSTOCK_DOC; --生成入库单号 SELECT 'IP' || TO_CHAR(SYSDATE, 'YYMMDD') || LPAD(NVL(MAX(SUBSTR(INSTOCK_DOC, 9)), 0) + 1, 5, 0) INTO V_INSTOCK_DOC FROM YDM_GP_INLIST T WHERE T.INSTOCK_TYPE_CODE = '800706' AND T.INSTOCK_DOC LIKE 'IP'||TO_CHAR(SYSDATE, 'YYMMDD')||'_____'; --入库流水号 SELECT TO_NUMBER(LPAD((NVL(MAX(SUBSTR(T.INSTOCK_SQE, 14)), 0) + 1), 4, 0)) INTO V_ICOUNT FROM YDM_GP_INLIST T WHERE T.INSTOCK_DOC = V_INSTOCK_DOC; --生成新炉号材料号序号 SELECT LPAD(NVL(MAX(SUBSTR(T2.MAT_NO, LENGTH(T2.MAT_NO) - 2)), 0) + 1, 3, 0) INTO V_MAT_NO_COUNT FROM (SELECT MAX(T.MAT_NO)MAT_NO FROM MAT_GP_M T WHERE T.JUDGE_STOVE_NO = '#JUDGE_STOVE_NO_GP#' UNION ALL SELECT MAX(T1.MAT_NO)MAT_NO FROM YDM_GP_INLIST T1 WHERE T1.JUDGE_STOVE_NO = '#JUDGE_STOVE_NO_GP#' UNION ALL SELECT MAX(T3.MAT_NO)MAT_NO FROM MAT_GP_TRACK T3 WHERE T3.JUDGE_STOVE_NO = '#JUDGE_STOVE_NO_GP#') T2; FOR MYROW IN (SELECT * FROM MAT_GP_M T WHERE T.JUDGE_ID = '#JUDGE_ID#') LOOP V_OUTSTOCK_SQE := V_OUTSTOCK_DOC || LPAD(V_OCOUNT, 4, 0); INSERT INTO YDM_GP_OUTLIST (OUTSTOCK_SQE, OUTSTOCK_DOC, OUTSTOCK_TYPE_CODE, OUTSTOCK_TYPE_NAME, MAT_NO, PRODUCT_FLAG, MAT_STATUS, STOVE_NO, FLAG_STOVE_NO, JUDGE_STOVE_NO, MATERIAL_NO, MATERIAL_NAME, GRADECODE, GRADENAME, DIMATER, ACT_LEN, FIX_NUM, FIX_LEN, ACT_COUNT, ACT_WEIGHT, PLINE_CODE, PLINE_NAME, BELONG_CODE, BELONG_NAME, BAL_YEAR_MONTH, OUTSTOCK_TIME, CREATE_NAME, CREATE_TIME, GROUD_NO, PRO_PLAN_ID, GX_PLAN_NO, FURNACENO, SEQUENCENO, GPTYPE, CIC, PIC, SIC, DIC, PRODUCCODE, PRODUCNAME, PRO_PLAN_ID_ZG, GX_PLAN_NO_ZG, IS_DEALER, BACK_FLAG,SUPPLY_UNIT_CODE,SUPPLY_UNIT) VALUES (V_OUTSTOCK_SQE, V_OUTSTOCK_DOC, '800808', '改判出库', MYROW.MAT_NO, MYROW.PRODUCT_FLAG, MYROW.MAT_STATUS, MYROW.STOVE_NO, MYROW.FLAG_STOVE_NO, MYROW.JUDGE_STOVE_NO, MYROW.MATERIAL_NO, MYROW.MATERIAL_NAME, MYROW.GRADECODE, MYROW.GRADENAME, MYROW.DIMATER, MYROW.ACT_LEN, MYROW.FIX_NUM, MYROW.FIX_LEN, MYROW.ACT_COUNT, MYROW.ACT_WEIGHT, MYROW.PLINE_CODE, MYROW.PLINE_NAME, MYROW.BELONG_CODE, MYROW.BELONG_NAME, V_BATHYEAR, TO_DATE('#CREATE_TIME#','YYYY-MM-DD HH24:MI:SS'), '#CREATE_NAME#', TO_DATE('#CREATE_TIME#','YYYY-MM-DD HH24:MI:SS'), MYROW.GROUD_NO, MYROW.PRO_PLAN_ID, MYROW.GX_PLAN_NO, MYROW.FURNACENO, MYROW.SEQUENCENO, MYROW.GPTYPE, MYROW.CIC, MYROW.PIC, MYROW.SIC, MYROW.DIC, MYROW.PRODUCCODE, MYROW.PRODUCNAME, MYROW.PRO_PLAN_ID_ZG, MYROW.GX_PLAN_NO_ZG, MYROW.IS_DEALER, MYROW.BACK_FLAG, MYROW.SUPPLY_UNIT_CODE, MYROW.SUPPLY_UNIT); V_INSTOCK_SQE := V_INSTOCK_DOC || LPAD(V_ICOUNT, 4, 0); V_MAT_NO := '#JUDGE_STOVE_NO_GP#'||LPAD(V_MAT_NO_COUNT,3,0); INSERT INTO YDM_GP_INLIST (INSTOCK_SQE, INSTOCK_DOC, INSTOCK_TYPE_CODE, INSTOCK_TYPE_NAME, MAT_NO, PRODUCT_FLAG, MAT_STATUS, STOVE_NO, JUDGE_STOVE_NO, PLINE_CODE, PLINE_NAME, MATERIAL_NO, MATERIAL_NAME, GRADECODE, GRADENAME, STD_CODE, STD_NAME, DIMATER, ACT_LEN, FIX_NUM, FIX_LEN, ACT_COUNT, ACT_WEIGHT, BELONG_CODE, BELONG_NAME, INSTOCK_TIME, IN_TIME_F, BAL_YEAR_MONTH, CREATE_NAME, CREATE_TIME, GROUD_NO, PRO_PLAN_ID, GX_PLAN_NO, IS_DEALER,BACK_FLAG,SUPPLY_UNIT_CODE,SUPPLY_UNIT) VALUES (V_INSTOCK_SQE, V_INSTOCK_DOC, '800706', '改判入库', V_MAT_NO, MYROW.PRODUCT_FLAG, MYROW.MAT_STATUS, MYROW.STOVE_NO, '#JUDGE_STOVE_NO_GP#', MYROW.PLINE_CODE, MYROW.PLINE_NAME, '#MATERIAL_NO#', '#MATERIAL_NAME#', '#GRADECODE#', '#GRADENAME#', MYROW.STD_CODE, MYROW.STD_NAME, '#DIMATER#', MYROW.ACT_LEN, MYROW.FIX_NUM, MYROW.FIX_LEN, MYROW.ACT_COUNT, MYROW.ACT_WEIGHT, MYROW.BELONG_CODE, MYROW.BELONG_NAME, TO_DATE('#CREATE_TIME#', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('#CREATE_TIME#', 'YYYY-MM-DD HH24:MI:SS'), V_BATHYEAR, '#CREATE_NAME#', TO_DATE('#CREATE_TIME#', 'YYYY-MM-DD HH24:MI:SS'), MYROW.GROUD_NO, MYROW.PRO_PLAN_ID, MYROW.GX_PLAN_NO, MYROW.IS_DEALER, MYROW.BACK_FLAG, MYROW.SUPPLY_UNIT_CODE, MYROW.SUPPLY_UNIT); UPDATE MAT_GP_M T SET T.MATERIAL_NO = '#MATERIAL_NO#', T.MATERIAL_NAME = '#MATERIAL_NAME#', T.GRADECODE = '#GRADECODE#', T.GRADENAME = '#GRADENAME#', T.DIMATER = '#DIMATER#', T.MAT_NO = V_MAT_NO, T.JUDGE_STOVE_NO = '#JUDGE_STOVE_NO_GP#', T.JUDGE_ID = '', T.LOCK_FLAG = '0' WHERE T.MAT_NO = MYROW.MAT_NO; UPDATE YDM_GP_BUTTRESS T SET T.MAT_NO = V_MAT_NO, T.JUDGE_STOVE_NO = '#JUDGE_STOVE_NO_GP#' WHERE T.MAT_NO = MYROW.MAT_NO; V_MAT_NO_COUNT := V_MAT_NO_COUNT + 1; V_OCOUNT := V_OCOUNT + 1; V_ICOUNT := V_ICOUNT + 1; END LOOP; UPDATE QCM_GP_JUDGE_CHANGE T SET T.AGREE_FLAG = '2', T.AGREE_NAME = '#AGREE_NAME#', T.AGREE_TIME = TO_DATE('#CREATE_TIME#','YYYY-MM-DD HH24:MI:SS'), T.AGREE_MEMO = '#AGREE_MEMO#' WHERE T.JUDGE_ID = '#JUDGE_ID#'; END; DECLARE BEGIN UPDATE QCM_GP_JUDGE_CHANGE T SET T.AGREE_FLAG = '4', T.AGREE_NAME = '#CREATE_NAME#', T.AGREE_TIME = TO_DATE('#CREATE_TIME#', 'YYYY-MM-DD HH24:MI:SS'), T.AGREE_MEMO = '#AGREE_MEMO#' WHERE T.JUDGE_ID = '#JUDGE_ID#'; UPDATE MAT_GP_M T SET T.LOCK_FLAG = '0', T.JUDGE_ID = '' WHERE T.JUDGE_ID = '#JUDGE_ID#'; END; SELECT * FROM QCM_JHY_ELEMENTS T WHERE T.STOVE_NO = ? ORDER BY T.SAMPLE_NO DESC