17,089
社区成员
发帖
与我相关
我的任务
分享
create or replace procedure P_REP_111004(p_czy varchar2,
p_unit number,
p_scale number,
p_usertype varchar2) is
--部门预算(财政)610002
--P_unit:0:万元,1:元
--p_isnew:0:新科目,1:旧科目
-- v_bmfl varchar2(20);
-- v_i number;
cursor c1 is
select a.dwdm,
a.bmfl,
a.zcgnfl,
a.xmfl,
a.Zfbhmc,
a.zfbhfs,
a.zfbhxh,
xmmc,
b.mxnr,
b.cgfs,
b.cgml,
b.sl,
b.mxxqrq,
b.bkfs,
b.ggxh,
a.bz,
a.xmbm,
d.MXHH,
d.ZCFL,
d.ZCPP,
d.JLDW,
b.DJ,
a.ZJE,
d.ZCYT,--资产用途
decode(substr(zjly, 1, 1),
'1',
decode(p_usertype, 1, dwtbmxje, 2, zgshmxje, czshmxje)) ysn,
decode(substr(zjly, 1, 1),
'2',
decode(p_usertype, 1, dwtbmxje, 2, zgshmxje, czshmxje),
0) ysw,
decode(substr(zjly, 1, 1),
'1',
0,
'2',
0,
decode(p_usertype, 1, dwtbmxje, 2, zgshmxje, czshmxje)) qt
from y_zcxm a, y_zcxm_mx b, y_zcxm_mx_zcmx d
where a.xmbm = b.xmbm and a.xmbm = d.xmbm
and a.xmzt = '0'
and b.mxzt = '0'
and a.shbz = '0'
and b.zfcgbz = '0'
and FN_BBSC(p_usertype, a.xmwz, a.xyshr, a.xmtblx, p_czy) = 'Y'
and exists (select 1
from t_report_bmfl c
where a.bmfl = c.bmfl
and c.czy = p_czy);
c1_rec c1%rowtype;
cursor c2 is
select a.dwdm,
a.bmfl,
a.zcgnfl,
a.xmfl,
a.Zfbhmc,
a.zfbhfs,
a.zfbhxh,
xmmc,
b.mxnr,
b.cgfs,
b.cgml,
b.sl,
b.mxxqrq,
b.bkfs,
b.ggxh,
a.bz,
a.xmbm,
d.MXHH,
d.ZCFL,
d.ZCPP,
d.JLDW,
b.DJ,
a.ZJE,
d.ZCYT,--资产用途
decode(substr(zjly, 1, 1),
'1',
decode(p_usertype, 1, dwtbmxje, 2, zgshmxje, czshmxje)) ysn,
decode(substr(zjly, 1, 1),
'2',
decode(p_usertype, 1, dwtbmxje, 2, zgshmxje, czshmxje),
0) ysw,
decode(substr(zjly, 1, 1),
'1',
0,
'2',
0,
decode(p_usertype, 1, dwtbmxje, 2, zgshmxje, czshmxje)) qt
from y_zcxm a, y_zcxm_mx b, y_zcxm_mx_zcmx d
where a.xmbm = b.xmbm and a.xmbm = d.xmbm
and a.xmzt = '0'
and b.mxzt = '0'
and a.shbz = '0'
and b.zfcgbz = '0'
and FN_BBSC(p_usertype, a.xmwz, a.xyshr, a.xmtblx, p_czy) = 'Y'
and exists (select 1
from t_report_bmfl c
where a.bmfl = c.bmfl
and c.czy = p_czy);
c2_rec c2%rowtype;
begin
delete from TEMP_REP_111004 where czy = p_czy;
Commit;
if (P_unit = 0) then
open c2;
loop
fetch c2 into c2_rec;
exit when c2%notfound;
insert into TEMP_REP_111004(ZGDW,DWDM,BMFL,ZCGNFL,MXJE,CGFS,CGML,SL,YSN,YSW,QT,CZY,XMFL,ZXSM,SHSM,GGXH,XMDATE,ZFLB,XMMC,MXNR,XMBM,pxh,JJZFBH,MXHH,ZCFL,ZCPP,JLDW,DJ,ZJE,ZCYT)
values (substr
(c2_rec.bmfl,1,3),c2_rec.dwdm,c2_rec.bmfl,c2_rec.zcgnfl,0,c2_rec.cgfs,c2_rec.cgml,c2_rec.sl,c2_rec.ysn,c2_rec.ysw,c2_rec.qt,P_czy,c2_rec.xmfl,c2_rec.bz,'',c2_rec.ggxh,
c2_rec.mxxqrq,c2_rec.bkfs,c2_rec.xmmc,c2_rec.mxnr,c2_rec.xmbm,'1',c2_rec.zfbhmc||c2_rec.zfbhfs||c2_rec.zfbhxh,c2_rec.MXHH,c2_rec.ZCFL,c2_rec.ZCPP,c2_rec.JLDW,c2_rec.DJ,c2_rec.ZJE,c2_rec.ZCYT);
end loop;
close c2;
else
open c1;
loop
fetch c1 into c1_rec;
exit when c1%notfound;
insert into TEMP_REP_111004(ZGDW,DWDM,BMFL,ZCGNFL,MXJE,CGFS,CGML,SL,YSN,YSW,QT,CZY,XMFL,ZXSM,SHSM,GGXH,XMDATE,ZFLB,XMMC,MXNR,XMBM,pxh,JJZFBH,MXHH,ZCFL,ZCPP,JLDW,DJ,ZJE,ZCYT)
values (substr
(c1_rec.bmfl,1,3),c1_rec.dwdm,c1_rec.bmfl,c1_rec.zcgnfl,0,c1_rec.cgfs,c1_rec.cgml,c1_rec.sl,c1_rec.ysn,c1_rec.ysw,c1_rec.qt,P_czy,c1_rec.xmfl,c1_rec.bz,'',c1_rec.ggxh,
c1_rec.mxxqrq,c1_rec.bkfs,c1_rec.xmmc,c1_rec.mxnr,c1_rec.xmbm,'1',c1_rec.zfbhmc||c1_rec.zfbhfs||c1_rec.zfbhxh,c1_rec.MXHH,c1_rec.ZCFL,c1_rec.ZCPP,c1_rec.JLDW,c1_rec.DJ,c1_rec.ZJE,c1_rec.ZCYT);
end loop;
close c1;
end if;
--生成单位汇总
insert into TEMP_REP_111004
(ZGDW,DWDM,BMFL,ZCGNFL,CGFS,CGML,SL,YSN,YSW,QT,CZY,XMFL,ZXSM,SHSM,GGXH,XMDATE,ZFLB,XMMC,MXNR,PXH,MXHH,ZCFL,ZCPP,JLDW,DJ,ZJE,ZCYT)
select zgdw,dwdm,bmfl,null,null,null,null,sum(ysn),sum(ysw),sum(qt),p_czy,null,null,null,null,null,null,null,null,'2',MXHH,ZCFL,ZCPP,JLDW,DJ,ZJE,ZCYT from TEMP_REP_111004
where czy=p_czy and pxh='1' group by zgdw,dwdm,bmfl;
--生成主管汇总
insert into TEMP_REP_111004
(ZGDW,DWDM,BMFL,ZCGNFL,CGFS,CGML,SL,YSN,YSW,QT,CZY,XMFL,ZXSM,SHSM,GGXH,XMDATE,ZFLB,XMMC,MXNR,PXH,MXHH,ZCFL,ZCPP,JLDW,DJ,ZJE,ZCYT)
select zgdw,null,0,null,null,null,null,sum(ysn),sum(ysw),sum(qt),p_czy,null,null,null,null,null,null,null,null,'3',MXHH,ZCFL,ZCPP,JLDW,DJ,ZJE,ZCYT from TEMP_REP_111004
where czy=p_czy and pxh='1' group by zgdw;
--生成单位汇总
insert into TEMP_REP_111004
(ZGDW,DWDM,BMFL,ZCGNFL,CGFS,CGML,SL,YSN,YSW,QT,CZY,XMFL,ZXSM,SHSM,GGXH,XMDATE,ZFLB,XMMC,MXNR,PXH,MXHH,ZCFL,ZCPP,JLDW,DJ,ZJE,ZCYT)
select null,null,null,null,null,null,null,sum(ysn),sum(ysw),sum(qt),p_czy,null,null,null,null,null,null,null,null,'4',MXHH,ZCFL,ZCPP,JLDW,DJ,ZJE,ZCYT from TEMP_REP_111004
where czy=p_czy and pxh='1';
commit;
end P_REP_111004;