住房公积金计算机审计经验,本文主要内容关键词为:住房公积金论文,经验论文,计算机论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
在对某市住房公积金的审计中,根据公积金管理信息化程度较高、业务量大的特点,我们开展了计算机审计。通过采集转换被审计单位公积金业务数据、编制SQL查询语句、调阅相关原始档案资料,查出某市公积金管理中心超基数超比例归集公积金、一个职工设立两个以上住房公积金账户、住房公积金重复贷款、向夫妻双方同时发放住房公积金贷款、超额发放公积金贷款、超限期发放住房公积金贷款、住房公积金贷款首付比例低于30%、住房公积金贷款还贷支出超比例、担保人在担保期间提取公积金等问题。
一、数据采集
某市住房公积金管理软件采用的是北京金天鹏软件科技有限公司开发的住房公积金管理系统,其数据库服务器的操作系统为Unix环境,采用的数据库管理系统为DB2,版本为V9.1,数据库大小为18G。采集的方法是首先在审计人员的笔记本电脑上安装DB2 Runtime Client(如果审计人员无此软件,可以要求被审计单位技术人员提供),将审计人员的笔记本电脑接入被审计单位网络中,然后通过建立到被审计单位住房公积金管理系统后台数据库的ODBC连接或通过建立IBM OLE DB Provider for DB2连接的方式,利用SQL Server2000的DTS工具,将数据采集到审计人员笔记本电脑的SQL Server2000数据库中。
二、审计中用到的表及主要字段说明
我们通过对被审计单位提供的金天鹏住房公积金管理系统数据库字典的分析,结合此次住房公积金审计的计算机审计方案,确定在审计中用到的表及主要字段说明如下:
三、计算机审计思路及过程
(一)超基数超比例归集公积金
根据某市住房公积金管理的相关规定,职工缴存住房公积金的基数不得超过职工工作地所在设区城市统计部门公布的上一年度职工月平均工资的3倍,缴存比例不得高于12%。但一些金融、保险、石化、烟草等收入较高的行业,缴费基数及比例高于上述规定。针对这一现象,我们通过对数据的分析,查出某市住房公积金管理中心超比例或超基数归集住房公积金的违纪问题。审计过程为(注:该市2008年度职工月平均工资为2176.5元):
1.计算每个职工的个人月最高缴存额和单位月最高缴存额。SQL语句为:
CREATEVIEW职工最高缴存额AS
SELECT*,个人月最高缴存额=CEILING(CASE WHEN A011>2176.5*3 THEN 2176.5*3 ELSE A011 END*CASE WHENA063>0.12THEN 0.12ELSEA063END),单位月最高缴存额=CEILING (CASE WHEN A011>2176.5*3 THEN 2176.5*3 ELSE A011 END*CASE WHEN A064>0.12 THEN0.12ELSE A064 END)FROM CZJBK
2.查询某市住房公积金管理中心超比例或超基数归集住房公积金的违纪问题。SQL语句为:
表名:GZJBK(职工基本信息表)
表名.GZBJK(职工汇补缴明细表)
表名:GZDKK(贷款人贷款账户情况表)
表名:GZSHK(贷款人申请贷款基本情况表)
表名:BM_ZYDB(借款人质押担保情况表)
表名:GZZQK(职工支取情况明细表)
SELECT*,个人全年超额归集=(CASE WHEN A034>个人月最高缴存额THEN A034—个人月最高缴存额ELSE 0END)*12,单位全年超额归集=(CASEWHENA035>单位月最高缴存额THEN A035—单位月最高缴存额EISEOEND)*12
FROM职工最高缴存额WHERE (A034>个人月最高缴存额OR A035>单位月最高缴存额)
(二)一个职工设立两个以上住房公积金账户
根据《住房公积金管理条例》规定:“每个职工只能有一个住房公积金账户”。通过对数据的分析发现,有些职工在工作调动后,存在新老单位都同时为其缴纳住房公积金的情况。审计过程:
1.生成一个职工有两个以上公积金账户的信息表。SQL语句为:
SELECT*INTO一人有两个以上账户
FROM GZJBK W
WHERE CASE WHEN LEN (A008)=18 THEN LEFT(A008,6)+SUBSTRING(A008,9,9)ELSE A008 END IN(SELECT CASE WHEN LEN(A008)=18 THENLEFT(A008,6)+SUBSTRING(A008,9,9)ELSE A008 END
FROM GZJBK WHERE LEN(A008)IN(15,18)
GROUP BY CASE WHEN LEN(A008)=18 THEN LEFT(A008,6)+SUBSTRING(A008,9,9)EISE A008 END
HAVING COUNT(DISTINCT REPLACE(A002,'',''))=1AND COUNT(*)>1)
ORDER BY CASE WHEN LEN (A008)=18 THEN LEFT(A008,6)+SUBSTRING(A008,9,9)ELSE A008 END
语句说明:由于被审计单位住房公积金数据库中一些基础资料不全,因此在语句中仅对职工身份证号正确地进行检索,同时还要考虑同一人15位与18位身份证号之间的相互转换,否则就会遗漏一部分审计线索。
2.统计每个缴存账户开始缴存时间和最后缴存时间。SQL语句为:
SELECT A001账号,MIN(C008)开始缴存时间,MAX(C009)最后缴存时间INTO各账户汇缴时间统计FROMGZBJK WHERE C010>0 GROUP BY A001
3.统计一人多个账户的缴存情况。SQL语句为:
CREATE VIEW一人多个账户缴存情况AS
SELECTA.A.A002姓名,A.A001账户一,A.A004单位一.A.A008身份证一,B.开始缴存时间账户一开始缴存时间,B.最后缴存时间账户一最后缴存时间,C.A001账户二,C.A004单位二,C.A008身份证二,D.开始缴存时间账户二开始缴存时间,D.最后缴存时间账户二最后缴存时间
FROM一人有两个以上账户AJOIN各账户汇缴时间统计BONA.A001=B.账号
JOIN一人有两个以上账户C ON CASE WHEN LEN(A.A008)=18 THEN LEFT (A.A008,6)+SUBSTRING (A.A008,9,9)ELSE A.A008 END=
CASE WHEN LEN(C.A008)=18 THEN LEFT(C.A008,6)+SUBSTRING(C.A008,9,9)ELSE C.A008 END AND REPLACE(A.A002,'','')=REPLACE(C.A002,'','''')
JOIN各账户汇缴时间统计DONC.A001=D.账号
WHEREA.A001<>C.A001 ANDB.最后缴存时间>=D.开始缴存时间AND B.开始缴存时间<=D.开始缴存时间
4.统计一人多个账户重复缴存时间情况。SQL语句为:
CREATE VIEW一人多个账户重复缴存时间情况AS
SELECT*,重复缴存开始时间=账户二开始缴存时间,重复缴存结束时间=CASE WHEN账户一最后缴存时间<账户二最后缴存时间THEN账户一最后缴存时间ELSE账户二最后缴存时间END FROM一人多个账户缴存情况
5.一个职工因工作调动等原因新开设了公积金账户后,原公积金账户应停止缴费,所以应将重复缴存账户一的重复缴存金额统计出来,作为重复缴存公积金的违纪金额。SQL语句为:
CREATE VIEW账户一重复缴存记录AS
SELECTA001,KS=CASE WHEN C008 BETWEEN重复缴存开始时间AND重复缴存结束时间THEN C008 ELSE重复缴存开始时间END,JS=CASE WHEN C009 BETWEEN重复缴存开始时间AND重复缴存结束时间THEN C009 ELSE重复缴存结束时间END,JCE=CASE WHEN C008 BETWEEN重复缴存开始时间AND重复缴存结束时间AND C009 BETWEEN重复缴存开始时间AND重复缴存结束时间THENC010 WHEN C008 BETWEEN重复缴存开始时间AND重复缴存结束时间THEN C010/(DATEDIFF(MONTH,C008+'01',C009+'01'+1)*(DATEDIFF(MONTH,C008+'01',重复缴存结束时间+'01')+1)WHEN C009 BETWEEN重复缴存开始时间AND重复缴存结束时间THEN C010/(DATEDIFF(MONTH,C008+'01',C009+'01')+1)*(DATEDIFF(MONTH,重复缴存开始时间+'01',C009+'01')+1)END
FROM GZBJK A JOIN一人多个账户重复缴存时间情况BONA.A001=B.账户一
WHERE C008 BETWEEN重复缴存开始时间AND重复缴存结束时间OR C009 BETWEEN重复缴存开始时间AND重复缴存结束时间
6.汇总账户一的重复缴存额。SQL语句为:
CREATE VIEW账户一重复缴存汇总AS
SELECT A001,SUM(JCE)JCE
FROM账户一重复缴存记录
GROUP BY A001
7.生成审计取证记录。SQL语句为:
SELECT A.*,重复缴存额=B.JCE
FROM一人多个账户重复缴存时间情况A.JOIN账户一重复缴存汇总B ON A.账户一=B.A001
(三)住房公积金重复贷款
根据相关政策规定,同一职工不得同时有多笔住房公积金贷款。我们通过对数据分析发现,某市住房公积金管理中心存在贷款审核不严或人情贷款现象,造成一些职工住房公积金重复贷款,增加了住房公积金贷款风险。SQL语句为:
SELECT E001合同号,E002贷款人,E003身份证号,E004_单位,E005公积金账号,E023贷款额,E051贷款发放日,E025贷款期限INTO重复贷款
FROM GZDKK
WHERE CASE WHEN LEN (E003)=18 THEN LEFT(E003,6)+SUBSTRING(E003,9,9)ELSEE003 ENDIN(SELECT CASE WHEN LEN(E003)=18 THEN LEFT(E003,6)+SUBSTRINC(E003,9,9)ELSE E003 END
FROM GZDKK WHERE E043<>'结清状态'
GROUP BY CASE WHEN LEN (E003)=18 THEN LEFT(E003,6)+SUBSTRING(E003,9,9)ELSE E003 END
HAVING COUNT(*)>1)
ORDER BY CASE WHEN LEN(E003)=18 THEN LEFT(E003,6)+SUBSTRING(E003,9,9)ELZEE003 END,贷款发放日
(四)向夫妻双方同时发放住房公积金贷款
根据住房公积金个人贷款的相关规定,住房公积金管理机构不得向夫妻双方同时发放住房公积金贷款。我们通过对数据分析发现,某市住房公积金管理中心存在向夫妻双方同时发放住房公积金贷款的违纪问题。审计过程为:
1.查询住房公积金贷款审核情况。SQL语句为:
CREATE VIEW贷款审核情况AS
SELECT D.E001贷款合同号,D.G002贷款人姓名,D.G007贷款人性别,D.G004贷款人单位,D.G013贷款人身份证号,P.G002配偶姓名,P.0004配偶单位,P.G013配偶身份证号
FROM GZSHK D JOIN GZSHK P ON D.E001=P.E001
WHERE RIGHT(D.G011,1)='1'AND RIGHT(P.G011,1)='2'
AND D.E001 IN(SELECT E001 FROM GZDKK)
语句说明:字段G011为借款人编号,其中最后一位为“1”时代表主贷人,为“2”时代表配偶。
2.查询向夫妻双方同时发放住房公积金贷款情况。SQL语句为:
SELECT贷款人姓名,贷款人性别,贷款人单位,贷款人身份证号,贷款合同号,D.E023贷款金额,D.E025贷款期限,D·E051贷款发放日期,配偶姓名,配偶单位,配偶身份证号,P·E001配偶贷款合同号,P.E023配偶贷款金额,P.E025配偶贷款期限,P.E051配偶贷款发放日期
FROM贷款审核情况A JOIN GZDKK D ON A.贷款合同号:D.E001
JOIN GZDKK P ON CASE WHEN LEN(A.配偶身份证号)=18 THEN LEFT(A.配偶身份证号,6)+SUBSTRING(A.配偶身份证号,9,9)ELSE A.配偶身份证号END=CASE WHEN LEN(P.E003)=18 THEN LEFT (P.E003,6)+SUBSTRING(P.E003,9,9)ELSE P.E003 END
WHERE LEN(配偶身份证号)>=15
语句说明:因为该市住房公积金管理中心在录入贷款审核信息时,将有的配偶身份证号未录入,因此SQL语句加了一个配偶身份证号长度必须大于等于15的条件。
(五)超额发放公积金贷款
根据某市住房公积金个人贷款管理办法的规定,住房公积金贷款额度的控制标准为:
1.购买普通商品住房、经济适用房、集资建房、二手房的,贷款额度最高不超过购房款的70%。
2.单笔贷款额度最高不得超过50万元,其中单身职工单笔贷款额度最高不得超过40万元。
3.装修房屋面积在90平方米以下(含90平方米)的装修贷款最高额度为5万元,面积在90平方米以上的装修贷款最高额度为8万元。
我们通过对数据的分析发现,某市住房公积金管理中心存在超额发放住房公积金贷款的违纪问题。审计过程为:
1.查询审计的2009年度每笔贷款的最高限额。SQL语句为:
CREATE VIEW贷款限额计算AS
SELECT GZDKK.E001合同号,E002贷款人,E004_单位,E005公积金账号,G085房屋总价,E023贷款额,E051贷款发放日,E025贷款期限,贷款限额=CASEWHEN E189='04'THEN CASE WHEN G083>90 THEN 80000 ELSE 50000 END WHEN CEILING(G085*0.7)>CASE WHEN G018='已婚'THEN 500000 EISE 400000 END THEN CASE WHEN G018='已婚'THEN 500000 ELSE 400000 END ELSE CEILING(G085*0.7)END
FROM GZDKK JOIN GZSHK ON GZDKK.E001=GZSHK.E001
WHEREYEAR(E051)=2009 AND E189 LIKE'0[1-4]'
语句说明:字段E189为购房类型编码,其中:01为“商品房”,02为“经济适用房”,03为“二手房”,04为“房屋维修”。
2.查询超限额发放公积金贷款的记录。SQL语句为:
SELECT*,超额发放贷款=贷款额-贷款限额
FROM贷款限额计算
WHERE贷款额>贷款限额
(六)超限期发放住房公积金贷款
根据某市住房公积金个人贷款管理办法的规定:“住房公积金贷款期限不得超过法定离(退)休之后5年以内,最长不得超过25年”。我们通过对数据的分析发现,某市住房公积金管理中心存在超限期发放住房公积金贷款的违纪问题。审计过程为:
1.查询住房公积金贷款人的基本情况。SQL语句为:
CREATE VIEW贷款情况AS
SELECT A002姓名,A004单位,A006性别,A010出生日期,法定退休时间=DATEADD(YEAR,CASE WHEN A006='男'THEN 60 ELSE 55 END,A010),E001贷款合同号,E023贷款额,E025贷款期限,E051贷款日期
FROM GZDKK D JOIN GZJBK J ON D.E005=J.A001
2.查询每个贷款人的最长贷款期限。SQL语句为:
CREATE VIEW贷款期限AS
SELECT*,最长贷款期限=CASE WHEN DATEDIFF(YEAR,贷款日期,法定退休时间)+5>25 THEN 25 ELSEDATEDIFF(YEAR,贷款日期,法定退休时间)+5 END
FBOM贷款情况
3.查询超限期发放住房公积金贷款的情况。SQL语句为:
SELECT*
FROM贷款期限
WHERE贷款期限>最长贷款期限
(七)住房公积金贷款首付比例低于30%
根据某市住房公积金个人贷款管理办法的规定,发放住房公积金贷款的条件之一为:必须已经支付不低于所购住房全部价款30%的首期付款。我们通过对数据的分析发现,某市住房公积金管理中心存在发放首付比例低于30%的住房公积金贷款的违纪问题。SQL语句为:
SELECT GZDKK.E001合同号,E002贷款人,E003身份证号,E004单位,E005公积金账号,G085房屋总价,E023贷款额,E051贷款发放日,E025贷款期限,应交首付款=CEIL-ING(G085*0.3),G093已交首付款,少交首付款=CEILING(G085*0.3)-G093
FBOM GZDKK JOIN GZSHK ON GZDKKE001=GZSHK.E001
WHERE YEAR(E051)=2009 AND G093<G085*0.3 ANDE189 LIKE '0[123]'
(八)住房公积金贷款还贷支出超比例
根据某市住房公积金个人贷款管理办法的规定:“贷款人家庭收入在3000元(含3000元)以内的,月供支出与收入比严格控制在50%以下(含50%);家庭收入在3000元至5000元(含5000元)之间的,月供支出与收入比严格控制在60%以下(含60%);家庭收入在5000元以上的,月供支出与收入比严格控制在70%以下(含70%)”。我们通过对数据的分析发现,某市住房公积金管理中心由于审核不严,存在办理住房公积金贷款时,贷款人还贷支出超比例的情况。SQL语句为:
SELECT GZDKK.E001合同号,E002姓名,E003身份证号,E004,单位,E005公积金账号,E023贷款额,E051贷款发放日期,E025贷款期限,G120月还本息合计,G067家庭月收入,最高还款额=CASE WHEN G067<=3000 THEN G067*0.5WHEN G067<=5000 THEN G067*0.6 ELSE G067*0.7 ENDFROM GZDKK JOIN GZSHK ON GZDKK.E001=GZSHK.E001
WHERE YEAR(E051)=2009 AND G120>CASE WHENG067<=3000 THEN G067*0.5 WHENG067<=5000 THENG067*0.6 ELSE G067*0.7 END
(九)担保人在担保期间提取公积金
根据住房公积金贷款的相关规定,职工在用自己的住房公积金账户为其他住房公积金贷款人贷款担保期间,不得提取自己账户内的公积金。但在实际执行过程中,住房公积金管理机构存在违规办理担保人在担保期间提取公积金的现象。通过对数据的分析,查出某市住房公积金管理中心违规办理担保人在担保期间提取公积金的违纪问题。审计过程为:
1.查询公积金担保信息。SQL语句为:
CREATE VIEW公积金担保AS
SELECT E001贷款合同号,E002贷款人,E004-贷款人工作单位,E023贷款额,E051贷款日期,E025贷款期限,A001担保人公积金账号,A002担保人,A004担保人工作单位
FROM BM_ZYDB A JOIN GZDKK B ON A.G000=B.G000
2.查出某市住房公积金管理中心违规办理担保人在担保期间提取公积金的违纪问题。SQL语句为:
SELECT A.*,D005担保人提取公积金日期,D008提取金额
FROM公积金担保A JOIN GZZQK B ON A.担保人公积金账号=B.A001
WHERE D005 BETWEEN贷款日期 AND DATEADD(YEAR,贷款期限,贷款日期)
标签:公积金论文; 贷款期限论文; 住房公积金贷款论文; 公积金缴存论文; 缴存比例论文; 贷款人论文; 审计方法论文;