多方式齐下捕粮食“硕鼠”
多方式齐下捕粮食“硕鼠”
一、应用背景
为深化粮食购销领域腐败问题专项整治工作,进一步推进审计监督与纪检监察监督巡视巡察监督的贯通融合,审计部门进行了粮食购销领域的专项审计调查。在此过程中,审计组需要处理大量的业务数据,涉及多家公司和大量的Excel表格。由于Python的pandas库提供了强大的数据处理和分析功能,可以高效地读取、处理和分析Excel文件,且在处理大规模数据时更具优势,因此审计组优选各种手段,认为Python和Excel结合非常有利于审计出成果。
二、应用功能
Python有很多用于和Excel交互的库,如pandas、openpyxl和xlrd等。这些库提供了丰富的API和功能,方便使用者进行Excel文件的读写和处理。Excel文件在不同的操作系统和软件版本中可能会有兼容性问题,而Python则不存在这个问题。
三、数据准备
被审计单位提供的各种检验检斤单、出入库数据、财务数据等,采集方式为直接拷贝,采集量约200M左右。
四、应用步骤
政策粮存储的轮入轮出过程中,检验检斤单是非常关键的环节,但这些单据往往以手工填写为主,导致审计查实问题时存在很大困难。尤其是非常多的手工单据让部分审计组望而却步或者直接略过此审计事项,具有一定的审计风险。用高速扫描仪快速的扫描后,通过Python脚本可以将PDF一次性转化为excel能很方便的解决这个问题。
步骤一:部署Python环境。安装Python代码编辑器,主要使用Jupyter Notebook 做数据分析。
步骤二:编写如下代码
import os
import glob
import pdfplumber
import pandas as pd
def save_pdf_to_excel(path):
try:
pdf = pdfplumber.open(path)
pages = pdf.pages
tables = []
for page in pages:
table = page.extract_table()
if table:
tables.extend(table)
data = pd.DataFrame(tables[1:], columns=tables[0])
file_name = os.path.splitext(os.path.basename(path))[0] + '.xlsx'
data.to_excel(file_name, index=False)
print('{} 成功'.format(path))
except Exception as e:
print('{} 错误,ERROR:{}'.format(path, str(e)))
raise
步骤三:将上述代码内容打包放到需要识别的文件夹中执行,即可得到结果。
从识别后的表格来看,效果还可以,表头和表尾有部分识别错误,但是不影响审计效果,标红的部分才是审计所需要的关键点。但是稍微复杂点的表格会报错,根据工作需要可以采取更专业的识别工具进行单独识别,例如微信小程序,但是速度大受影响。
步骤四:将识别后的表格里的审计所需关键数值提取出来。编写如下代码:
import xlrd
excel_content = xlrd.open_workbook("F:\\jyjjd\\检验检斤单001015.xls")
names = excel_content.sheet_names()
print(names)
for i in range(len(names)):
ret = excel_content.sheet_by_name(names[i])
# print(ret)
cell_data = ret.cell(4, 3).value ##(4,3)代表D5单元格
print(cell_data)
上面截图所示非常方便的将工作簿所有表格里所有车号检索出来,几百上千的车号也是几秒钟就能出结果。另根据需要改变代码参数可以分别提取表格内皮重、净重、毛重、杂质等等各种数据,审计分析易如反掌。
步骤五:将检验检斤单中提取的的车辆信息,经相关职能部门核实后,120份检验检斤单中的59辆运输工具均为小型汽车或摩托车,不具备承载成批粮食条件,涉嫌虚假收购粮食1256.85吨。
重复上述步骤还可以查处更多问题,例如:
1.提取储备油品种进行汇总发现2022年只采购了大豆油,不符合上级储备计划要求的桶装调和油、大豆油、菜籽油等品种。
2.提取地储小麦收购单据价格汇总得到所有收购价格区间是2.40元至2.52元/公斤,但入库都按照最高等级2.52元/公斤入库1764.64吨,获取差价6.49万元损害售粮者利益。
3.提取补杂保管单据数量并汇总合计后,与财务账进行比对发现分公司2号仓补杂相差5.84吨。
4.分别提取检斤单上车牌号与称重单上车牌号,发现不符涉及88.91吨。
5.提取车辆装卸表单时间,发现间隔不符合逻辑,两辆车上磅时间相差仅1秒钟;装载粮食车辆同一辆车在1分32秒内完成粮食的装卸。
6.储备粮损耗大、地储油混级储存、未保持空罐轮入、涉嫌套取出库装卸费、溢余掩盖损耗、溢余小麦出售移库和溢余报告单时间不符等等都可以进行提取,交由审计组集体分析能迅速找出问题。
五、应用成果
1. 移交纪检机关案件线索7起。
2.审计期间迫于审计造成的压力主动投案自首一人。