党的十八大以来,中央高度重视公务车管理,中共中央办公厅、国务院办公厅于2017年出台了《党政机关公务用车管理办法》。审计发现,公务车改革后,超编制、超标准配备公务用车,公车私用,车辆维修费中虚列名目等问题得到有效遏制,但依旧存在私车公养、违规停靠宾馆景区等违纪现象。为准确判断公务车运行轨迹合理合规性,笔者在公务用车审计中,借用百度地图开发平台,用Python调用百度接口抓取宾馆等敏感地址坐标,还原公务车运行轨迹,为审计判断提供可靠依据。本文结合公务用车使用审计案例,介绍相关方法的具体运用。
针对公务车改革后公务车管理违规问题表现形式的变化,调整审计思路,重点对公务车编制配备和公务用车使用流程、行驶过程的合规性进行审计。既关注运行轨迹是否合理合规,有无出现在娱乐场所等敏感地点,是否存在绕行或中途逗留风景名胜区,是否存在私车公养、使用公务车上下班,既享受公务交通补贴又享受公务用车,是否在指定位置定点停放,节假日是否封存,长期未使用效率低下的情况。
采集“互联网+公务用车管理智慧云服务监管平台”的车辆基本信息和运行轨迹数据作为基础数据。运用Python调用百度接口,从百度地图中抓取相关地点的名称、地址、经纬度。本次审计所需的六类数据汇总情况表如表1所示。数据采集、整理和分析的难点是获取百度地图AK(密钥),用Python获取所需地址坐标,根据经纬度计算坐标间的距离。
表1 所需数据的汇总情况表
公务车管理平台使用的是百度地图,百度地图使用的BD09坐标,是在火星坐标系(GCJ02)基础上再次加密形成。使用百度地图WEB服务的流程是:注册百度账号—认证成为开发者—获取AK—使用集成服务API。
1.登录百度地图开放平台(网址:http://lbsyun.baidu.com/),注册账号。
2.创建应用。填入自定义的应用名称“娱乐场所地点坐标拾取”,应用类型选择“服务端”,应用服务默认勾选全部,请求校验方式:IP白名单校验,IP白名单填入:0.0.0.0。
3.创建应用后,百度会分配给该应用唯一AK,该AK可以在“我的应用”中查看。
成功注册并获取到AK后,用Pyhton编写程序,利用百度Web服务API,以http/https形式对百度地图POI行业分类中的酒店、旅游景点、休闲娱乐等关键词发起检索请求,匹配出某市相关行业的名称、地址、经纬度,最后将检索到的地址用panda包完成数据切片入库,并将获取数据转换为CSV文件整理后导入SQL数据库。
经纬度坐标是角度值,不能直线点对点计算,而审计中需计算弧长。审计组以百度地图抓取到的酒店、餐饮等坐标点为中心点,对比公务车运行轨迹的坐标,计算公务车运行在中心点200米范围内,且运行速度为0的记录锁定为疑点。
1.公式的推导。弧长的计算公式是:L(弧长)=n(圆心角)× π(圆周率)× R(半径)÷180°=α(圆心角弧度数)×R,在已知两点坐标经纬度后,通过余弦定理计算出α,推导公式如下:
2.比对函数代码如下:
3.比对函数的运用及结果示例。比对函数用于审查是否有公务车停留酒店、餐饮等地,比对结果见图1,比对完后登陆“互联网+公务用车管理智慧云服务监管平台”平台核实,见图2。
图1 比对结果
图2 “互联网+公务用车管理智慧云服务监管平台”核实
selectb.单位名称,b.车牌号,b.定位时间,a.名称,a.地址,a.经度敏感地址经度,a.纬度敏感地址纬度,b.经度公务车经度,b.纬度公务车纬度
from基础表_敏感地址坐标a,基础表_车辆运行轨迹b
where行驶速度=0
//--使用find函数判断距离200米内公务车
anddbo.find(a.经度,a.纬度,b.经度,b.纬度)<2
审计组运用了经纬度距离比对法匹配位置、平台历史轨迹查询、数据统计模块来锁定疑点,查出了出入休闲娱乐场所、私车公养等6类问题。
将公务车行驶轨迹与宾馆、酒店、农庄等休闲娱乐场坐标匹配,筛选在休闲娱乐场所有停留(行驶速度=0),并停留时间超过10分钟的记录。经查某公务车在X酒店停留并多次出入。
主要审查是否存在单位油卡为私车加油的情况,来反映私车公养的问题。因绝大多数预算单位都采用购卡充值加油方式,审计组从石油公司调取相关单位加油记录,首先锁定异常的加油记录,再核实该车运行轨迹是否经过加油记录中的加油站。
1.按常理一辆车一天内不会多次加油,通过石油公司提供的加油记录明细找出同一单位、同一车辆、同一天多次加油记录。
2.加油量过大(超过60L)或过小(小于10L)的记录。
按照以上两条思路,收集单位、车牌号、加油时间、加油地址等信息,再比对运行轨迹,发现确实存在公务车未运行,但有加油记录的问题。经审查单位相关人员有为私人小轿车和摩托车加油的情况。
公务用车应严格执行定点停放制度。审计组通过被审单位调查收集到公务车的指定停放地点,再根据地点用Python抓取制定停放点的坐标经纬度,与停放地点坐标经纬度匹配来判断是否停放在单位指定地点,经审查某单位司机在某酒店送客后,整夜将车停放在酒店,未按规定将车停放到指定停车点。
公务车节假日期间除特殊工作需要外应当封存停驶。将公务车运行轨迹与节假日日期比对,判断是否有节假日出行的疑点。
主要审查是否有利用职务之便使用公务车接送出行的情况。将行驶轨迹与住宅区坐标匹配,筛选出一月内超出10次或一天2次以上出入同一小区,且停留(行驶速度=0)的记录。
从平台中提取公务车年出行次数和里程数,按单位分类汇总,找出一年中用车次数为0的记录。
(一)对进行了车改,安装了公务车GPS使用平台管理的单位可采取该方式进行审计,审计中重点关注车辆加油记录和敏感地点坐标提取,可快速锁定公务车违规行驶、停车的相关问题。
(二)利用Python通过百度地图开发平台的API接口自动采集百度地图中敏感地址的数据资源,解决批量智能采集所需地点坐标的问题。
(三)不足与应对措施。一是百度对地址坐标获取有数量限制,免费版每天只能调取6000条记录,导致不能按行政区划来获取,只能划分区域获取,建议购买非免费版;二是坐标比对不够精准,因为一个地址的建筑范围涉及多个经纬度,而获取到的只有一个经纬度,审计人员无法确定建筑的范围会导致比对不精准。