| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357 |
- 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;
|