CREATE OR REPLACE procedure MES_CX_JG_zxNEW_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_jg IS select (select decode(max(s.order_typ), '120108', '双经销', '120109', '定销订购', '120107', '来料加工', '自用') from cxuser.slm_order_head s where s.order_no = regexp_replace(t.pro_order_no, '/.*', '')) contract_type, --合同类型 replace(t.PRO_ORDER_NO, '/', '') orderid, t.producname prod_variety, --品名、品种, t.steelname steel_level, --钢级, t.gradename steel_no, --钢号, t.spec_name spec, --规格, (case when t.target = 'A' then '产成品' else '半成品' end) prod_type, --产量类型 (case when t.target = 'A' then (sum(decode(t.act_weight, null, t.act_theory_weight, t.act_weight)) + nvl((select SUM(nvl(T2.act_weight, 0)) from ydm_zc_stocktakinglist t2 where t2.judge_stove_no = t.judge_stove_no and t2.STOCKTAKING_TYPE_CODE = '800603' and t2.BAL_YEAR_MONTH = '{0}'), 0)) else sum(decode(t.act_weight, null, t.act_theory_weight, t.act_weight)) end) prod_weight, --成品重量 nvl((select SUM(nvl(T2.act_weight, 0)) from ydm_zc_stocktakinglist t2 where t2.judge_stove_no = t.judge_stove_no and t2.STOCKTAKING_TYPE_CODE = '800603' and t2.BAL_YEAR_MONTH = '{0}'), 0) LC_WEIGHT, sum(nvl(t.input_weight, 0)) + sum(nvl(t1.coupling_wt, 0)) + sum(nvl(t1.coupling_fail_wt, 0)) mate_weight, NVL(round(sum(decode(t.act_weight, null, t.act_theory_weight, t.act_weight)) * 100 / NULLIF(sum(nvl(t.input_weight, 0)) + sum(nvl(t1.coupling_wt, 0)) + sum(nvl(t1.coupling_fail_wt, 0)), 0), 4), 0) as steel_waste, --消耗占比 case max(t.pline_code) when 'C108' then '车丝' else '加工' end as process, --工序 null high_tech_code, null high_tech_name, 0 high_prod_weight, 0 high_mate_weight, 0 estimated_unit_price, 0 estimated_cost, substr(bal_year_month, 0, 4) || '-' || substr(bal_year_month, 5, 2) acct_period, --换成取产销提供的视图 tzh 24.12.4 get_cp_code6(t.pro_order_no) mate_code, --物料编码 getislljg(t.judge_stove_no, replace(t.PRO_ORDER_NO, '/', '')) resource_type, t.judge_stove_no, --是否来料加工 null billet_code --钢坯编码 from cxuser.qcm_zg_jugde_apply t, (select t1.heat_plan_no, t1.judge_stove_no, t1.batch_no, sum(nvl(t1.coupling_wt, 0)) coupling_wt, sum(nvl(t1.coupling_fail_wt, 0)) coupling_fail_wt from cxuser.mch_twistingly_result_d t1 group by t1.heat_plan_no, t1.judge_stove_no, t1.batch_no) t1, (select a.basename, b.pline_code, b.pline_name from cxuser.com_base_info a, cxuser.com_base_pline b where a.basecode = b.factory_code) c where t.is_flag = '0' and t.is_all_scrap in ('0', '2') and ((t.validflag = '20' and t.target <> 'A' and t.judge_result_code in ('40740701', '40740705', '40740709')) or (t.validflag = '20' and t.target = 'A' and t.judge_tolresult_code in ('40740701', '40740705', '40740709')) or t.instancy_flag = '1') and t.process_code = 'G' and t.pline_name = c.pline_name(+) and t.heat_plan_no = t1.heat_plan_no(+) and t.judge_stove_no = t1.judge_stove_no(+) and t.batch_no = t1.batch_no(+) and t.bal_year_month in ('{0}') and t.PRO_ORDER_NO not like 'ZZBY%' group by t.producname, t.steelname, --钢级 t.gradename, --钢号 t.spec_name, --规格 t.target, bal_year_month, pro_order_no, t.judge_stove_no; curoporder_jg oporder_cursor_jg%rowtype; cnt number; begin cnt := 0; open oporder_cursor_jg; loop fetch oporder_cursor_jg into curoporder_jg; exit when oporder_cursor_jg%notfound; select count(*) into a from orderdetail_v@th_cx_link t where t.contractno_num = curoporder_jg.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_jg.orderid and material_code is not null and rownum = 1; elsif substr(curoporder_jg.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_jg.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_jg.orderid, 3) and material_code is not null and rownum = 1; end if; end if; if a > 0 then insert into hot_production_mes_jg (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, mate_name, orderid, judge_stove_no, PRE_PROCESS, DELIVERY_STATUS, INSERT_TIME, LC_WEIGHT) values (seq_mes_cx.nextval, curoporder_jg.contract_type, prod_name_cx, sg_sign_cx, sg_grade_cx, outer_diam_cx || '*' || wall_thickness_cx, curoporder_jg.prod_type, curoporder_jg.prod_weight, curoporder_jg.mate_weight, curoporder_jg.steel_waste, curoporder_jg.process, curoporder_jg.high_tech_code, curoporder_jg.high_tech_name, curoporder_jg.high_prod_weight, curoporder_jg.high_mate_weight, curoporder_jg.estimated_unit_price, curoporder_jg.estimated_cost, curoporder_jg.acct_period, material_code_cx, curoporder_jg.resource_type, (case when curoporder_jg.mate_code like '%B' then curoporder_jg.mate_code || '1' when curoporder_jg.mate_code like '%C' then curoporder_jg.mate_code || '2' when curoporder_jg.mate_code like '%H' OR curoporder_jg.mate_code like '%G' then curoporder_jg.mate_code || '3' end), '', '0', MATERIAL_NAME_cx, curoporder_jg.orderid, curoporder_jg.judge_stove_no, (case when curoporder_jg.mate_code like '%B' then '热轧' when curoporder_jg.mate_code like '%C' then '热处理' when curoporder_jg.mate_code like '%H' OR curoporder_jg.mate_code like '%G' then '加工' end), 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, curoporder_jg.LC_WEIGHT); else insert into hot_production_mes_jg (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, mate_name, orderid, judge_stove_no, LC_WEIGHT) values (seq_mes_cx.nextval, curoporder_jg.contract_type, curoporder_jg.prod_variety, curoporder_jg.steel_level, curoporder_jg.steel_no, curoporder_jg.spec, curoporder_jg.prod_type, curoporder_jg.prod_weight, curoporder_jg.mate_weight, curoporder_jg.steel_waste, curoporder_jg.process, curoporder_jg.high_tech_code, curoporder_jg.high_tech_name, curoporder_jg.high_prod_weight, curoporder_jg.high_mate_weight, curoporder_jg.estimated_unit_price, curoporder_jg.estimated_cost, curoporder_jg.acct_period, curoporder_jg.mate_code, curoporder_jg.resource_type, (case when curoporder_jg.mate_code like '%B' then curoporder_jg.mate_code || '1' when curoporder_jg.mate_code like '%C' then curoporder_jg.mate_code || '2' when curoporder_jg.mate_code like '%H' OR curoporder_jg.mate_code like '%G' then curoporder_jg.mate_code || '3' end), '', '0', null, curoporder_jg.orderid, curoporder_jg.judge_stove_no, curoporder_jg.LC_WEIGHT); end if; end loop; close oporder_cursor_jg; commit; end mes_cx_jg_zxnew_HAND;