|
|
@@ -0,0 +1,357 @@
|
|
|
+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;
|