1 create or replace package body CountBankData_20150617 is
2 type cursorCommon is ref cursor; --游标类型
3 strSQL varchar2(7000); --sql语句变量
4 strTemp varchar2(3000);
5 strTmp varchar2(3000);
6
7 -- Author : ADMINISTRATOR
8 -- Created : 2005-3-3 8:50:34
9 -- Purpose :
10
11 -- Public type declarations
12 --type <TypeName> is <Datatype>;
13
14 -- Public constant declarations
15 --<ConstantName> constant <Datatype> := <Value>;
16
17 -- Public variable declarations
18 --<VariableName> <Datatype>;
19
20 -- Public function and procedure declarations
21 /*****************************************************************************--
22 --*******************************公共函数*************************************--
23 --*****************************************************************************/
24
25 /*-- 星期--*/
26
27 function getWeek(
28 strDate varchar2
29 )
30 return varchar2 is
31 sWeek varchar2(2);
32 begin
33 select decode(to_char(to_date(strDate,'yyyy-MM-dd')-1,'d'),1,'一',2,'二',3,'三',4,'四',5,'五',6,'六',7,'日')
34 into sWeek from dual;
35 return sWeek;
36 end ;
37 /*-- 合并日期--*/
38 function uniteDate(
39 gYear varchar2,
40 gMonth varchar2,
41 gDay varchar2
42 )
43 return varchar2 is
44 sDay varchar2(2);
45 sMonth varchar2(2);
46 strResult varchar2(10);
47 begin
48 if length(gMonth)=1 then
49 sMonth:='0'||gMonth;
50 else
51 sMonth:=gmonth;
52 end if;
53 if length(gDay)=1 then
54 sDay:='0'||gDay;
55 else
56 sDay:=gDay;
57 end if;
58 strResult:=gYear||'-'||sMonth||'-'||sDay;
59 return strResult;
60 end;
61
62 /*-- 取序号--*/
63 function getNextNumber(
64 gfieldName varchar2,
65 gLength number
66 )return varchar2 is
67 intCount number;
68 intafa007 number;
69 strResult varchar2(20);
70 begin
71 select Count(*) into intCount from fa02 where upper(afa006)=upper(gfieldName);
72 if intCount=0 then
73 strResult:=addZero('1',gLength);
74 insert into fa02 (afa006,afa007) values (upper(gfieldName),1);
75 else
76 select afa007 into intafa007 from fa02 where upper(afa006)=upper(gfieldName);
77 strResult:=addzero(TO_CHAR(intafa007+1),gLength);
78 update fa02 set afa007=afa007+1 where upper(afa006)=upper(gfieldName);
79 end if;
80 return strResult;
81 end;
82
83 --是否已经审核
84 function isAuditing(
85 gAAA010 Varchar2,
86 gBankOCode Varchar2,
87 gYear varchar2,
88 gMonth varchar2,
89 gDay varchar2
90 ) return boolean is
91 intCount number;
92 intn number;
93 begin
94 select count(*) into intn from DCJGZK where FYHDM=gBankOCode and FCJYEAR=gYear and FCJTERM=gMonth and FCJRI=gDay and aaa010=gAAA010;
95 if intn>0 then
96 select FIFCJ into intCount from DCJGZK where FYHDM=gBankOCode and FCJYEAR=gYear and FCJTERM=gMonth and FCJRI=gDay and aaa010=gAAA010;
97 if intCount=1 then
98 return true;
99 else
100 return false;
101 end if;
102 else
103 return false;
104 end if;
105 end;
106
107 --退回银行
108 procedure backbank(
109 gaaa010 AA11.AAA010%type,
110 gBankOCode varchar2,
111 gDate varchar2
112 ) is
113 begin
114 --先插入财政退回待查 再删待查表
115 delete from fc77 where AAA010=gaaa010 and AFC015=gDate and AFA101=gBankOCode;
116 INSERT INTO fc77
117 (AFC401,AAA010,AFC001,AFA031,AFA051,AFA101,AAA011,AFC002,AFC003,AFC004,AFC005,AFA052,
118 AFA053,AFC006,AFC007,AFC008,AFA032,AFC009,AFC010,AFC011,AFC012,AFC013,AFC014,AFC015,AFC016,FZPH,DCLX,AFC200,AFC201)
119 select AFC401,AAA010,AFC001,AFA031,AFA051,AFA101,AAA011,AFC002,AFC003,AFC004,AFC005,AFA052,
120 AFA053,AFC006,AFC007,AFC008,AFA032,AFC009,AFC010,AFC011,AFC012,AFC013,AFC187,AFC015,AFC016,FZPH,DCLX,AFC200,AFC201
121 from fc74 where AAA010=gAAA010
122 and AFC015=gDate
123 and AFA101=gBankOCode;
124
125 delete from fc74 where AAA010=gaaa010 and AFC015=gDate and AFA101=gBankOCode;
126 --将需要删除的bp01表中的数据备份到bp05中,再做删除操作先删除是为了防止重复备份 add at 2015年6月23日 15:25:56
127 delete from bp05 where (select f.aaa010 from bp05 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp05.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
128 insert into bp05(AFC501,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214) select AFC501,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214 from bp01 b where (select f.aaa010 from bp01 p,fpos02 f where p.abp205=f.aaa003 and p.abp205=b.abp205)=gaaa010 and b.abp101=gDate and b.abp203=gBankOCode;
129 delete from bp01 where (select f.aaa010 from bp01 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp01.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
130
131 --将需要删除的bp02表中的数据备份到bp06中,再做删除操作先删除是为了防止重复备份 add at 2015年6月23日 15:25:56
132 delete from bp06 where (select f.aaa010 from bp06 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp06.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
133 insert into bp06(AFC401,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214,ABP222,ABP223) select AFC401,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214,ABP222,ABP223 from bp02 b where (select f.aaa010 from bp02 p,fpos02 f where p.abp205=f.aaa003 and p.abp205=b.abp205)=gaaa010 and b.abp101=gDate and b.abp203=gBankOCode;
134 delete from bp02 where (select f.aaa010 from bp02 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp02.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
135
136 --将需要删除的bp04表中的数据备份到bp07中,再做删除操作先删除是为了防止重复备份 add at 2015年6月23日 15:25:56
137 delete from bp07 where (select f.aaa010 from bp07 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp07.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
138 insert into bp07(AFC401,AFC501,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214) select AFC401,AFC501,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214 from bp04 b where (select f.aaa010 from bp04 p,fpos02 f where p.abp205=f.aaa003 and p.abp205=b.abp205)=gaaa010 and b.abp101=gDate and b.abp203=gBankOCode;
139 delete from bp04 where (select f.aaa010 from bp04 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp04.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
140
141 delete from fc78 where AAA010=gaaa010 and afc015=gDate and AFA101=gBankOCode;
142 INSERT INTO fc78
143 (AFC306,AAA010,AFC041,AFA050,AFC061,AFC062,AFC063,AFC064,AFC065,
144 AFC066,AFA091,AFC067,AFC015,AFA101,AFC001,AAZ015)
145 select AFC306,AAA010,AFC041,AFA050,AFC061,AFC062,AFC063,AFC064,AFC065,
146 AFC066,AFA091,AFC067,AFC015,AFA101,AFC001,'0'
147 from fc75 where AAA010=gaaa010
148 and afc015=gDate and AFA101=gBankOCode;
149
150 delete from fc75 where AAA010= gaaa010
151 and afc015=gDate and AFA101=gBankOCode;
152
153 delete from fc79 where AAA010=gaaa010 and AFC015=gDate and AFC153=gBankOCode;
154 INSERT INTO fc79
155 (AFC001,AFA031,AFC163,AFC187,AFC183,AFC157,AFC181,AFA040,AFC180,AFA192,AFA051,AFA053,
156 AFC166,AFC155,AFC153,AFC154,AFA183,AFA184,AFA185,AFA032,AFA052,AFC015,AAA010,AFC200,AFC201,AFA260)
157 select AFC001,AFA031,AFC163,AFC187,AFC183,AFC157,AFC181,AFA040,AFC180,AFA192,AFA051,AFA053,
158 AFC166,AFC155,AFC153,AFC154,AFA183,AFA184,AFA185,AFA032,AFA052,AFC015,AAA010,AFC200,AFC201,AFA260
159 from fc76
160 where AAA010=gAAA010 and AFC015=gDate and afc153=gBankOCode;
161
162 delete from fc76 where AAA010=gaaa010 and AFC015=gDate and afc153=gBankOCode;
163 --删除单位间分成收入 add by zgz 20081210
164 delete from fc88 where AAA010=gaaa010 and afc015=gDate and afa101=gBankOcode and aaz100='1';
165 delete from fc88 where AAA010=gaaa010 and afc015=gDate and afc201=gBankOCode and aaz100='2';
166 -- delete from fc89 where fczqhnm=gaaa010 and fhkrq=gDate and fdsyhdm=gBankOCode;
167 --删除银行补录数据但未确认成功的
168 DELETE FROM fc84 WHERE AAA010=gaaa010 AND afc015=gDate AND afa101=gBankOcode AND fsfqr='0';
169 delete from DCJGZK where aaa010=gaaa010 and fyhdm=gBankOCode and fcjyear=substr(gdate,1,4) and fcjterm=substr(gdate,6,2) and fcjri=substr(gdate,9,2) ;
170 end;
171
172 --统计银行 利息收入
173 procedure CountBankData(
174 gAAA010 AA11.AAA010%type,
175 gYear varchar2,
176 gMonth varchar2,
177 gDay varchar2,
178 gResult in out varchar2
179 ) is
180 sDate varchar2(10);
181 sWeek varchar2(2);
182 sBankOCode fa22.afa101%type;
183 szcsrbs number;
184 szcsrje fc76.afc157%type;--正常收入
185 sdcsrbs number;
186 sdcsrje fc76.afc157%type;--待查收入
187 szhlxsr fc76.afc157%type;--财政专户利息收入
188 sdchlxsr fc76.afc157%type;--待查户利息收入
189 sdccmje fc76.afc157%type;--待查查明收入
190 sdccmbs number;
191 stfsrbs number;
192 stfsrje fc76.afc157%type;
193 zhstfsrbs number;
194 zhstfsrje fc76.afc157%type;
195 sdwjfcfcsr dcjgzk.dwjfcfcsr%type;
196 sdwjfcfrsr dcjgzk.dwjfcfrsr%type;
197
198 syhye fc76.afc157%type;
199 sdatatype varchar(50);
200 syhbm varchar(5);--银行编码
201 syhmc varchar(200);
202 sjkshm varchar(20);
203 slsh varchar(50);
204 serr varchar(100);
205 sczqh varchar(10);
206 szje fc76.afc157%type;
207 sxmhjje fc76.afc157%type;
208 --add at 2015年6月18日
209 fzcsrposbs number;--正常收入POS笔数
210 fzcsrposje bp01.abp201%type;--正常收入POS金额
211 fdcsrposbs number;--待查收入POS笔数
212 fdcsrposje bp02.abp201%type;--待查收入POS金额
213 fdccmposbs number;--待查查明收入POS笔数
214 fdccmposje bp04.abp201%type;--待查查明收入POS金额
215
216 intFXH NUMBER;
217 csrCommon cursorCommon;
218 csrCheck cursorCommon;
219 begin
220 gResult:='0';
221 sDate:= uniteDate(gYear,gMonth,gDay);
222 sWeek:=getWeek(sDate);
223 -- strSQL:='select * from fa22';
224 strSQL:='select BankOCode,(zcsrbs+fzcsrposbs) zcsrbs,(nvl(zcsrje,0)+nvl(fzcsrposje,0)) zcsrje,fzcsrposbs,nvl(fzcsrposje,0) fzcsrposje,fdcsrposbs,nvl(fdcsrposje,0) fdcsrposje,fdccmposbs,nvl(fdccmposje,0) fdccmposje,(dcsrbs+fdcsrposbs) dcsrbs,(nvl(dcsrje, 0)+nvl(fdcsrposje, 0)) dcsrje,nvl(zhlxsr,0) zhlxsr,nvl(dchlxsr,0) dchlxsr,'
225 ||' tfsrbs,nvl(tfsrje,0) tfsrje,zhtfsrbs,nvl(zhtfsrje,0) zhtfsrje, (nvl(zcsrje, 0) + nvl(dcsrje, 0) + nvl(dccmje, 0) - nvl(tfsrje, 0)- nvl(dwjfcfcsr, 0) + nvl(dwjfcfrsr, 0)) yhye,'
226 ||'(nvl(dccmje,0)+nvl(fdccmposje, 0)) dccmje,(dccmbs+fdccmposbs) dccmbs,nvl(dwjfcfcsr,0) dwjfcfcsr,nvl(dwjfcfrsr,0) dwjfcfrsr from '
227 ||' (select a.BankOCode,'
228 ||'(select count(*) from fc76 where AAA010= '''||gAAA010
229 ||''' and AFC015= '''||sDate||''' and AFC153=a.BankOCode) zcsrbs, '
230 ||' (select zcsrje from (select AFC153 BankOCode,sum(nvl(AFC181,0)) zcsrje from fc76 '
231 ||' where AFC015= '''||sDate||''' and AAA010= '''||gAAA010||''' group by AFC153) zc'
232 ||' where zc.BankOCode=a.BankOCode) zcsrje,'
233 --正常收入POS add at 2015年6月18日
234 ||'(select count(*) from bp01 where (select min(f.aaa010) from bp01 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp01.abp205)= '''||gAAA010
235 ||''' and abp101= '''||sDate||''' and abp202=a.BankOCode) fzcsrposbs, '
236 ||' (select fzcsrposje from (select abp202 BankOCode,sum(nvl(abp201,0)) fzcsrposje from bp01 '
237 ||' where abp101= '''||sDate||''' and (select min(f.aaa010) from bp01 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp01.abp205)= '''||gAAA010||''' group by abp202) zcp'
238 ||' where zcp.BankOCode=a.BankOCode) fzcsrposje,'
239 --待查收入POS
240 ||'(select count(*) from bp02 where (select min(f.aaa010) from bp02 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp02.abp205)= '''||gAAA010
241 ||''' and abp101= '''||sDate||''' and abp202=a.BankOCode) fdcsrposbs, '
242 ||' (select fdcsrposje from (select abp202 BankOCode,sum(nvl(abp201 ,0)) fdcsrposje from bp02 '
243 ||' where abp101 = '''||sDate||''' and (select min(f.aaa010) from bp02 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp02.abp205)= '''||gAAA010||''' group by abp202 ) dcp'
244 ||' where dcp.BankOCode=a.BankOCode) fdcsrposje,'
245 --待查查明收入POS
246 ||'(select count(*) from bp04 where (select min(f.aaa010) from bp04 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp04.abp205)= '''||gAAA010
247 ||''' and abp101= '''||sDate||''' and abp202=a.BankOCode) fdccmposbs, '
248 ||' (select fdccmposje from (select abp202 BankOCode,sum(nvl(abp201 ,0)) fdccmposje from bp04 '
249 ||' where abp101 = '''||sDate||''' and (select min(f.aaa010) from bp04 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp04.abp205)= '''||gAAA010||''' group by abp202 ) dccmp'
250 ||' where dccmp.BankOCode=a.BankOCode) fdccmposje,'
251
252 ||' (select count(*) from FC74 where AAA010= '''||gAAA010
253 ||''' and AFC015= '''||sDate||''' and AFA101=a.BankOCode and DCLX=''00'') dcsrbs, '
254 ||' (select dcsrje from (select AFA101 BankOCode,sum(nvl(AFC011,0)) dcsrje from FC74 '
255 ||' where AFC015= '''||sDate||''' and AAA010= '''||gAAA010||''' and dclx=''00'' group by AFA101) dc '
256 ||' where dc.BankOCode=a.BankOCode ) dcsrje,'
257 ||' (select dcsrje from (select AFA101 BankOCode,sum(nvl(AFC011,0)) dcsrje from FC74 '
258 ||' where AFC015= '''||sDate||''' and AAA010= '''||gAAA010||''' and dclx=''L1'' group by AFA101) dc '
259 ||' where dc.BankOCode=a.BankOCode ) zhlxsr,'
260 ||' (select dcsrje from (select AFA101 BankOCode,sum(nvl(AFC011,0)) dcsrje from FC74 '
261 ||' where AFC015= '''||sDate||''' and AAA010= '''||gAAA010||''' and dclx=''L2'' group by AFA101) dc '
262 ||' where dc.BankOCode=a.BankOCode ) dchlxsr,'
263 ||' (select count(*) from fc75 where AAA010= '''||gAAA010
264 ||''' and afc015= '''||sDate||''' and AFA101=a.BankOCode) tfsrbs, '
265 ||' (select tfje from (select AFA101 BankOCode,sum(nvl(AFC064,0)) tfje from FC75 '
266 ||' where afc015= '''||sDate||''' and AAA010= '''||gAAA010||''' group by AFA101) tf '
267 ||' where tf.BankOCode=a.BankOCode ) tfsrje, '
268
269 ||' (select count(*) from fc75 where AAA010= '''||gAAA010
270 ||''' and afc015= '''||sDate||''' and AFA101=a.BankOCode and afc066=''0'') zhtfsrbs, '
271 ||' (select tfje from (select AFA101 BankOCode,sum(nvl(AFC064,0)) tfje from FC75 '
272 ||' where afc015= '''||sDate||''' and AAA010= '''||gAAA010||''' and afc066=''0'' group by AFA101) tf '
273 ||' where tf.BankOCode=a.BankOCode ) zhtfsrje, '
274
275 ||' (select count(*) from FC84 where AAA010='''||gAAA010
276 ||''' and AFC015='''||sDate||''' and AFA101=a.BankOCode) dccmbs,'
277
278 ||'(select dccmje from (select AFA101 BankOCode,sum(nvl(AFC011,0)) dccmje from FC84 '
279 ||' where AFC015='''||sDate||''' and AAA010='''||gAAA010
280 ||''' group by AFA101) dccm where dccm.BankOCode=a.BankOCode ) dccmje, '
281
282 ||' (select afc183 from (select afc201 BankOcode,sum(nvl(afc183, 0)) afc183 from fc88 '
283 ||' where aaa010 ='''|| gAAA010
284 ||''' and afc015 ='''||sDate
285 ||''' and aaz100 = ''2'''
286 ||' group by Afc201) dwfc where dwfc.BankOCode = a.BankOCode) dwjfcfcsr, '
287
288 ||' (select afc183 from (select afa101 BankOcode,sum(nvl(afc183, 0)) afc183 from fc88 '
289 ||' where aaa010 ='''|| gAAA010
290 ||''' and afc015 ='''||sDate
291 ||''' and aaz100 = ''1'''
292 ||' group by Afa101) dwfc where dwfc.BankOCode = a.BankOCode) dwjfcfrsr '
293
294 ||' from '
295
296 ||' (select c.afa101 BankOCode from '
297 ||' (select fyhdm BankOCode from DCJGZK where FCJYEAR=to_number('''||gYear||''') '
298 ||' and FCJTERM=to_number('''||gMonth||''') '
299 ||' and FCJRI=to_number('''||gDay||''') and FIFCJ=0 '
300 ||' union '
301 ||' select AFC153 BankOCode from fc76 where AAA010='''||gAAA010||''' and AFC015='''||sDate||''' group by AFC153 '
302 ||' union '
303 ||' select AFA101 BankOCode from fc74 where AAA010='''||gAAA010||''' and AFC015='''||sDate||''' group by AFA101 '
304 ||' union '
305 ||' select AFA101 BankOCode from fc84 where AAA010='''||gAAA010||''' and fsfqr=''0'' and AFC015='''||sDate||''' group by AFA101 '
306 ||' union '
307 --正常、待查、待查查明 add at 2015年6月19日<start----->
308 ||' select abp202 BankOCode from bp01 where (select min(f.aaa010) from bp01 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp01.abp205)='''||gAAA010||''' and abp101 ='''||sDate||''' group by abp202 '
309 ||' union '
310 ||' select abp202 BankOCode from bp02 where (select min(f.aaa010) from bp02 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp02.abp205)='''||gAAA010||''' and abp101 ='''||sDate||''' group by abp202 '
311 ||' union '
312 ||' select abp202 BankOCode from bp04 where (select min(f.aaa010) from bp04 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp04.abp205)='''||gAAA010||''' and abp101='''||sDate||''' group by abp202 '
313 ||' union '
314 --<end----->
315 ||' select AFA101 BankOCode from fc75 where AAA010='''||gAAA010||''' and afc015='''||sDate||''' group by AFA101 '
316 ||' union '
317 ||' select afa101 BankOCode from fc88 where aaa010 = '''||gAAA010||''' and afc015 = '''||sDate||''' and aaz100 = ''1'' group by Afa101 '
318 ||' union '
319 ||' select afc201 BankOCode from fc88 where aaa010 = '''||gAAA010||''' and afc015 = '''||sDate||''' and aaz100 = ''2'' group by Afc201 '
320 ||' ) b,'
321 ||' fa22 c where b.BankOCode=c.afa101 and c.aaa010='''||gAAA010||''' ) a) ';
322
323 open csrCommon for strSQL;
324 fetch csrCommon into sBankOCode,szcsrbs,szcsrje,fzcsrposbs,fzcsrposje,fdcsrposbs,fdcsrposje,fdccmposbs,fdccmposje,sdcsrbs,sdcsrje,szhlxsr,sdchlxsr,stfsrbs,stfsrje,zhstfsrbs,zhstfsrje,syhye,sdccmje,sdccmbs,sdwjfcfcsr,sdwjfcfrsr;
325 while csrCommon%FOUND Loop
326
327 -- 是否已接收审核则不统计
328 if not isAuditing(gAAA010,sBankOCode,gYear,gMonth,gDay) then
329
330 --删除DCJGZK(会计核算_采集跟踪库)中某家银行指定日期的采集记录
331 delete from DCJGZK where aaa010=gAAA010 and fyhdm=sBankOCode and FCJYEAR=To_number(gYear) and FCJTERM=To_number(gMonth) and FCJRI=To_number(gDay);
332
333
334 if not (szcsrbs=0 and fzcsrposbs=0 and fdcsrposbs=0 and fdccmposbs=0 and sdcsrbs=0 and stfsrbs=0 and sdccmbs=0 and szhlxsr=0 and sdchlxsr=0 and sdwjfcfcsr=0 and sdwjfcfrsr=0) then
335
336
337 --校验fc76表和fc74表,如有错误则将该银行数据退回,Continue继续处理下面数据
338 strTemp:='select datatype,yhbm,yhmc, '''||sDate||''' as afc015, jkshm,zje,xmhjje,lsh,err,'''||gAAA010||''' as czqh from ('
339 ||' select ''正常收入数据'' as dataType,a.yhbm,yhmc,a.jkshm,a.zje,a.xmhjje,'''' lsh,''总金额不等于项目合计金额'' err from'
340 ||' (select fa22.AFA101 yhbm,fa22.AFA102 yhmc,fc76.AFC001 jkshm,fc76.AFC157 zje,sum(fc76.AFC181) xmhjje'
341 ||' from fc76,fa22 where fc76.AFC153=fa22.AFA101 and fc76.AAA010='''||gAAA010||''' and fa22.AAA010='''||gAAA010||''''
342 ||' and fc76.AFC015='''||sDate||''' and fc76.AFC153='''||sBankOCode||''' group by fa22.AFA101,fa22.AFA102,AFC001,AFC157) a'
343 ||' where a.ZJE<>a.XMHJJE '
344 ||' union all '
345 --bp01表《正常收入》中 总金额不等于项目合计金额的数据
346 ||' select ''正常收入数据'' as dataType,a.yhbm,yhmc,a.jkshm,a.zje,a.xmhjje,'''' lsh,''总金额不等于项目合计金额'' err from'
347 ||' (select fe20.afa051 yhbm,fe20.afa052 yhmc,fe20.afc001 jkshm,bp01.abp201 zje,fe20.afc157 xmhjje'
348 ||' from bp01,fe20 where bp01.afc501=fe20.afc501 and (select f.aaa010 from bp01 b,fpos02 f where b.abp205=f.aaa003 and b.abp205= bp01.abp205)='''||gAAA010||''''
349 ||' and bp01.abp101='''||sDate||''' and bp01.abp203='''||sBankOCode||''' group by fe20.afa051,fe20.afa052,fe20.afc001,bp01.abp201,fe20.afc157) a'
350 ||' where a.ZJE<>a.XMHJJE '
351 ||' union all '
352 ||' select ''待查收入数据'' as dataType,fa22.AFA101 yhbm,fa22.AFA102 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,fc74.AFC401 lsh,''缺收款人全称项'' as err'
353 ||' from fc74,fa22 where fc74.AFA101=fa22.AFA101 and fc74.AAA010='''||gAAA010||''' and fa22.AAA010='''||gAAA010||''' and fc74.AFC015='''||sDate||''' and fc74.AFA101='''||sBankOCode||''''
354 ||' and trim(fc74.AFC002) is null '
355 ||' union all '
356 ||' select ''待查收入数据'' as dataType,fa22.AFA101 yhbm,fa22.AFA102 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,fc74.AFC401 lsh,''缺收款人开户行项'' as err'
357 ||' from fc74,fa22'
358 ||' where fc74.AFA101=fa22.AFA101 and fc74.AAA010='''||gAAA010||''' and fa22.AAA010='''||gAAA010||''' and fc74.AFC015='''||sDate||''' and trim(fc74.AFC003) is null '
359 ||' union all '
360 ||' select ''待查收入数据'' as dataType,fa22.AFA101 yhbm,fa22.AFA102 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,fc74.AFC401 lsh,''缺收款人账号项'' as err'
361 ||' from fc74,fa22 '
362 ||' where fc74.AFA101=fa22.AFA101 and fc74.AAA010='''||gAAA010||''' and fa22.AAA010='''||gAAA010||''' and fc74.AFC015='''||sDate||''' and trim(fc74.AFC004) is null '
363 ||' union all '
364 --缺票号项 bp02表中的票号均为空
365 ||' select ''待查收入数据'' as dataType,fe20.afa051 yhbm,fe20.afa052 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,fe20.afc150 lsh,''缺票号项'' as err '
366 ||' from fe20 '
367 ||' where fe20.afc015 ='''||sDate||''' '
368 ||' union all '
369 --收款金额不大于0
370 ||' select ''待查收入数据'' as dataType,fe20.afa051 yhbm,fe20.afa052 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,bp02.AFC401 lsh,''bp02收费金额不大于0'' err'
371 ||' from bp02,fe20 '
372 ||' where bp02.abp203=fe20.afc153 and bp02.abp201<=0 and (select min(f.aaa010) from bp02 b,fpos02 f where b.abp205=f.aaa003 and b.abp205= bp02.abp205)='''||gAAA010||''' and bp02.abp101='''||sDate||''' and bp02.abp203='''||sBankOCode||''' '
373 ||' union all '
374 ||' select ''待查收入数据'' as dataType,fa22.AFA101 yhbm,fa22.AFA102 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,fc74.AFC401 lsh,''收费金额不大于0'' err'
375 ||' from fc74,fa22 '
376 ||' where fc74.AFA101=fa22.AFA101 and fc74.AFC011<=0 and fc74.AAA010='''||gAAA010||''' and fa22.AAA010='''||gAAA010||''' and fc74.AFC015='''||sDate||''' and fc74.AFA101='''||sBankOCode||''''
377 ||' ) order by dataType,yhbm,yhmc,jkshm,lsh ';
378
379 open csrCheck for strTemp;
380 fetch csrCheck into sdatatype,syhbm,syhmc,sdate,sjkshm,szje,sxmhjje,slsh,serr,sczqh;
381 if csrCheck%found then
382 strTmp:='delete from banktran where afc015='''||sdate||''' and yhbm ='''||syhbm||''' ';
383 execute immediate strTmp;
384 strTmp:='insert into banktran(datatype,yhbm,yhmc,afc015,jkshm,zje,xmhjje,lsh,err,aaa010) '
385 ||strTemp;
386 execute immediate strTmp;
387 -- 退回银行
388 backbank(gAAA010,sBankOCode,sDate);
389 gResult:='1';
390 else
391
392 --记跟踪采集数据
393 intFXH:=to_number(getnextnumber('FXH',20));
394 insert into dcjgzk (FXH,FCJYEAR,FCJTERM,FCJRI,FIFCJ,FXQ,FZCSRJE,FZCSRBS,SZCSRPOSJE,SZCSRPOSBS,SDCSRPOSJE,SDCSRPOSBS,SDCCMPOSJE,SDCCMPOSBS,
395 FDCSRJE,FDCSRBS,FTFSRJE,FTFSRBS,FCZZZS,fdccmje,fdccmbs,fyhdm,aaa010,fzhlxsr,fdchlxsr,zhftfsrbs,zhftfsrje,dwjfcfcsr,dwjfcfrsr) values (intFXH,To_number(gYear),To_number(gMonth),
396 To_number(gDay),0,sWeek,szcsrje,szcsrbs,fzcsrposje,fzcsrposbs,fdcsrposje,fdcsrposbs,fdccmposje,fdccmposbs,sdcsrje,sdcsrbs,stfsrje,stfsrbs,syhye,sdccmje,sdccmbs,sBankOCode,gAAA010,szhlxsr,sdchlxsr,zhstfsrbs,zhstfsrje,sdwjfcfcsr,sdwjfcfrsr);
397 end if;
398 close csrCheck;
399 end if;
400 end if;
401 fetch csrCommon into sBankOCode,szcsrbs,szcsrje,fzcsrposje,fzcsrposbs,fdcsrposje,fdcsrposbs,fdccmposje,fdccmposbs,sdcsrbs,sdcsrje,szhlxsr,sdchlxsr,stfsrbs,stfsrje,zhstfsrbs,zhstfsrje,syhye,sdccmje,sdccmbs,sdwjfcfcsr,sdwjfcfrsr;
402
403 End Loop;
404 close csrCommon;
405 commit;
406
407 exception --异常处理
408 when others then
409 gResult:='统计银行数据出现错误,请稍后重试!';
410 end;
411 end CountBankData_20150617;