| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357 |
- CREATE OR REPLACE procedure MES_CX_RZ_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_rz 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,
- --合同类型
- t.producname prod_variety,
- nvl(replace(PRO_ORDER_NO, '/', ''),
- replace(get_cp_order(t.judge_stove_no), '/', '')) orderid,
- --品名、品种
- 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(output_weight) mate_weight,
- --来料重量
- (case
- when sum(input_weight) <> 0 then
- round(sum(decode(t.act_weight,
- null,
- t.act_theory_weight,
- t.act_weight)) / sum(input_weight),
- 4) * 100
- else
- 0
- end) steel_waste,
- --消耗占比
- '热轧' 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(t.bal_year_month, 0, 4) || '-' ||
- substr(t.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,
- --是否来料加工
- get_pl_code(t.gradename,
- (select xxx.dimater
- from cxuser.ydm_gp_outlist xxx
- where xxx.stove_no = CASE
- WHEN t.stove_no IS NOT NULL THEN
- t.stove_no
- ELSE
- get_max_stove_no(t.judge_stove_no)
- END
- and rownum = 1) --规格
- ) billet_code --,stove_no,t.pro_order_no--钢坯编码,
-
- from cxuser.qcm_zg_jugde_apply t
- left join mil_plan t1
- on t.judge_stove_no = regexp_replace(t1.judge_stove_no, '-.*', '')
- and t1.back_slab_flag <> '2'
- and substr(t1.judge_stove_no, -2) = '01'
- left join pln_zy_zg_m t2
- on t2.heat_plan_no = t.heat_plan_no
- where t.is_flag = '0'
- and t.is_all_scrap in ('0', '1', '2', '7', '8')
- and ((t.validflag = '20' and t.target <> 'A' and
- t.judge_result_code in ('40740701', '40740709')) or
- (t.validflag = '20' and t.target = 'A' and
- t.judge_tolresult_code in ('40740701', '40740709')) or
- (t.validflag = '20' and t.target = 'A' and t.is_all_scrap = '1') or
- t.instancy_flag = '1')
- and t.process_code = 'D'
- -- AND T.PLINE_CODE = 'C072'
- and t.target = t1.target
- and t.bal_year_month in ('{0}')
- and nvl(replace(PRO_ORDER_NO, '/', ''),
- replace(get_cp_order(t.judge_stove_no), '/', '')) not like
- 'ZZBY%'
-
- group by t.producname,
- t.steelname,
- --钢级
- t.gradename,
- --钢号
- t.stove_no,
- t.spec_name,
- --规格
- t.target,
- t.bal_year_month,
- pro_order_no,
- t.judge_stove_no;
- curoporder_jg oporder_cursor_rz%rowtype;
- cnt number;
- begin
- cnt := 0;
- open oporder_cursor_rz;
- loop
- fetch oporder_cursor_rz
- into curoporder_jg;
- exit when oporder_cursor_rz%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 outer_diam,
- prod_name,
- sg_grade,
- sg_sign,
- wall_thickness,
- material_code,
- MATERIAL_NAME
- into outer_diam_cx,
- prod_name_cx,
- sg_grade_cx,
- sg_sign_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 outer_diam,
- prod_name,
- sg_grade,
- sg_sign,
- wall_thickness,
- material_code,
- MATERIAL_NAME
- into outer_diam_cx,
- prod_name_cx,
- sg_grade_cx,
- sg_sign_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_rz
- (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,
- 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,
- curoporder_jg.billet_code,
- '',
- '0',
- (case
- when curoporder_jg.mate_code like '%B' then
- '加工'
- when curoporder_jg.mate_code like '%C' then
- '热处理'
- else
- ''
- end),
- MATERIAL_NAME_cx,
- curoporder_jg.orderid,
- curoporder_jg.judge_stove_no,
- null,
- 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_rz
- (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,
- 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,
- curoporder_jg.billet_code,
- '',
- '0',
- (case when curoporder_jg.mate_code like '%B' then '加工' when
- curoporder_jg.mate_code like '%C' then '热处理' else '' end),
- null,
- curoporder_jg.orderid,
- curoporder_jg.judge_stove_no,
- curoporder_jg.lc_weight);
- end if;
- cnt := cnt + 1;
- if cnt = 6 then
- cnt := 100;
- end if;
- end loop;
- close oporder_cursor_rz;
- commit;
- exception
- when others then
- DBMS_OUTPUT.PUT_LINE('错误: ' || cnt || '条' || SQLERRM);
- end mes_cx_rz_zxnew_HAND;
|