CREATE OR REPLACE procedure mes_cx_rcl_zzpnew_hand is a number(4); b varchar(200); cxdata orderdetail_v@th_cx_link%rowtype; prod_name_cx varchar(200); sg_grade_cx varchar(200); sg_sign_cx varchar(200); wall_thickness_cx varchar(200); material_code_cx varchar(200); MATERIAL_NAME_cx varchar(200); outer_diam_cx varchar(200); --热处理 cursor oporder_cursor_rcl is SELECT * FROM (select t.judge_stove_no, (case when t.judge_stove_no like 'W%' then '是' else '否' end) resource_type, t.ZY_BATCH_ID 生产批号, T.STOVE_NO, '2026-02' acct_period, null high_tech_code, null high_tech_name, 0 high_prod_weight, 0 high_mate_weight, 0 estimated_unit_price, 0 estimated_cost, T.PRODUCNAME, t.gradename steel_no, T.DECISION, T.OUTDIAMETER || '*' || T.WALLTHICK spec, T.ORDER_NO || T.ORDER_SEQ orderid, (SELECT DECODE(MAX(S.ORDER_TYP), '120108', '双经销', '120109', '定销订购', '120107', '来料加工', '自用') FROM SLM_ORDER_HEAD S WHERE S.ORDER_NO = REGEXP_REPLACE(T.ORDER_NO, '/.*', '')) contract_type, MAX(T.STD_STYLE_DESC) 标准类别, MAX(T.GOWHERE_NAME) 物流去向, MAX(T.OUTPUT_STANDARD) 输出标准, MAX(T.STEELNAME) steel_level, MAX(T.MODEL_DESC) 扣型, T.PLINE_CODE, (SELECT C.PLINE_NAME FROM COM_BASE_PLINE C WHERE C.PLINE_CODE = T.PLINE_CODE) PLINE_NAME, sum(a.act_count) act_count, sum(a.act_weight) act_weight, null billet_code from PLN_ZY_RCL_M t, (select t.judge_stove_no, T.HEAT_PLAN_NO, sum(t.act_count) act_count, sum(decode(T.act_weight, '', t.act_theory_weight, t.act_weight)) act_weight from PORT_HTT_BATCH_SAMPLE_RESULT t where (t.group_flag = 0 OR T.GROUP_FLAG IS NULL) --AND T.INSTORE_FLAG = '0' AND T.PROCESS_SEQ = '1' AND T.MAT_STATUS IN ('00', '20') and t.bal_year_month <= '202602' and t.bal_year_month >= '202002' group by t.judge_stove_no, T.HEAT_PLAN_NO UNION ALL select t.judge_stove_no, T.HEAT_PLAN_NO, -SUM(T.ACT_COUNT) act_count, -sum(t.ACT_WEIGHT) act_weight from QCM_ZG_JUGDE_APPLY t where ((t.validflag = '20' and t.JUDGE_RESULT_CODE in ('40740701', '40740709')) OR T.INSTANCY_FLAG = '1') and t.is_flag = 0 and t.PROCESS_CODE = 'F' and t.bal_year_month <= '202602' and t.bal_year_month >= '202002' group by t.judge_stove_no, T.HEAT_PLAN_NO ) a where a.judge_stove_no = t.judge_stove_no AND T.HEAT_PLAN_NO = A.HEAT_PLAN_NO group by t.judge_stove_no, t.ZY_BATCH_ID, T.STOVE_NO, T.PRODUCNAME, T.DECISION, t.gradename, T.OUTDIAMETER, T.WALLTHICK, T.PLINE_CODE, T.ORDER_NO, T.ORDER_SEQ order by t.pline_code, t.judge_stove_no) WHERE act_count > 0 and orderid not like '%ZZBY%'; curoporder_rcl oporder_cursor_rcl%rowtype; begin open oporder_cursor_rcl; loop fetch oporder_cursor_rcl into curoporder_rcl; exit when oporder_cursor_rcl%notfound; select count(*) into a from orderdetail_v@th_cx_link t where t.contractno_num = curoporder_rcl.orderid and material_code is not null; if a > 0 then select prod_name,sg_grade,sg_sign,outer_diam,wall_thickness,material_code,MATERIAL_NAME into prod_name_cx,sg_grade_cx ,sg_sign_cx,outer_diam_cx ,wall_thickness_cx ,material_code_cx , MATERIAL_NAME_cx from orderdetail_v@th_cx_link t where t.contractno_num = curoporder_rcl.orderid and material_code is not null and rownum = 1; elsif substr(curoporder_rcl.orderid, 1, 2) in ('TH', 'XS') then select count(*) into a from orderdetail_v@th_cx_link t where substr(t.contractno_num, 3) = substr(curoporder_rcl.orderid, 3) and material_code is not null and rownum = 1; if a > 0 then select prod_name,sg_grade,sg_sign,outer_diam,wall_thickness,material_code,MATERIAL_NAME into prod_name_cx,sg_grade_cx ,sg_sign_cx,outer_diam_cx ,wall_thickness_cx ,material_code_cx , MATERIAL_NAME_cx from orderdetail_v@th_cx_link t where substr(t.contractno_num, 3) = substr(curoporder_rcl.orderid, 3) and material_code is not null and rownum = 1; end if; end if; if a > 0 then insert into HOT_HEAT_PRODUCTION_MES_GX (cx_no, contract_type, prod_variety, steel_level, steel_no, spec, prod_type, prod_weight, mate_weight, steel_waste, process, high_tech_code, high_tech_name, high_prod_weight, high_mate_weight, estimated_unit_price, estimated_cost, acct_period, mate_code, resource_type, billet_code, memo, flag, go_there, mate_name, orderid,judge_stove_no,PRE_PROCESS,DELIVERY_STATUS,INSERT_TIME) values (seq_mes_cx.nextval, curoporder_rcl.contract_type, prod_name_cx, sg_sign_cx, sg_grade_cx, outer_diam_cx || '*' || wall_thickness_cx, '在产品', null, curoporder_rcl.act_weight, null, '热处理', curoporder_rcl.high_tech_code, curoporder_rcl.high_tech_name, curoporder_rcl.high_prod_weight, curoporder_rcl.high_mate_weight, curoporder_rcl.estimated_unit_price, curoporder_rcl.estimated_cost, curoporder_rcl.acct_period, material_code_cx, curoporder_rcl.resource_type, material_code_cx || '1', '', '0', (case when material_code_cx like '%B' then '加工' when material_code_cx like '%C' then '热处理' else '' end), MATERIAL_NAME_cx, curoporder_rcl.orderid,curoporder_rcl.judge_stove_no,'热轧',SUBSTR(MATERIAL_NAME_cx,INSTR(MATERIAL_NAME_cx, ',', 1, 1) + 1, INSTR(MATERIAL_NAME_cx, ',', 1,2) - INSTR(MATERIAL_NAME_cx, ',', 1, 1) - 1),sysdate); else insert into HOT_HEAT_PRODUCTION_MES_GX (cx_no, contract_type, prod_variety, steel_level, steel_no, spec, prod_type, prod_weight, mate_weight, steel_waste, process, high_tech_code, high_tech_name, high_prod_weight, high_mate_weight, estimated_unit_price, estimated_cost, acct_period, mate_code, resource_type, billet_code, memo, flag, go_there, mate_name, orderid,judge_stove_no) values (seq_mes_cx.nextval, curoporder_rcl.contract_type, null, null, null, null, '在产品', null, curoporder_rcl.act_weight, null, '热处理', curoporder_rcl.high_tech_code, curoporder_rcl.high_tech_name, curoporder_rcl.high_prod_weight, curoporder_rcl.high_mate_weight, curoporder_rcl.estimated_unit_price, curoporder_rcl.estimated_cost, curoporder_rcl.acct_period, null, curoporder_rcl.resource_type, null, '', '0', (case when cxdata.material_code like '%B' then '加工' when cxdata.material_code like '%C' then '热处理' else '' end), null, curoporder_rcl.orderid,curoporder_rcl.judge_stove_no); end if; end loop; close oporder_cursor_rcl; commit; end mes_cx_rcl_zzpnew_hand;