一、创新成果简介 为简化房产税与城镇土地使用税征管数据审计过程,使每年要开展的固定审计内容达到“一键式”查询目的,武汉硚口区审计局使用pymssql开发简易房产税与城镇土地使用税征管查询系统,嵌入执行SQL查询语句,把查询征收房产税未征收城镇土地使用税、征收城镇土地使用税未征收房产税、房地产企业未交纳城镇土地使用税和房产税结果渲染到html模版的相应位置,直观地将查询结果展示在页面上,再与企业登记资料进行核实,核查漏征漏缴情况。税务审计查询系统的开发,不但简化了固有查询流程,而且能够帮助不熟悉数据审计的同志进行数据查询,另外,基于此次平台的开发,更改少许参数就能轻松解决类似问题,为数据审计小工具的开发打下良好基础。 二、开发工具流程
三、主要方法、技术及内容 (一)使用技术 对于做一个简单的网页实现在SQL Server中进行特定查询并且展示的功能,选用了python+flask web框架的方案。Flask使用方便,支持使用数据对html模板进行渲染后下发,便于实现这个系统功能。 Python访问SQL Server使用pymssql组件,其使用方便,可以很容易地把SQL查询语句从SQL Server查询到的内容转化为数组,和flask的html模版渲染很好配合。 Python环境的安装使用的是anaconda2,它可以让python2.7和python3.5并行存在,并且已经事先安装好很多依赖的库(比如flask),对于使用来说很方便。不过它没有自带pymssql,还是需要使用pip install pymssql的方式安装。 (二)架构 数据层使用SQLSERVER作为数据存储和管理工具;对数据的访问使用python+pymssql的方式,便于获取和更新数据;逻辑层使用python+flask的组合实现对用户web请求的处理和html页面渲染下发。使用者通过任意浏览器即可访问该系统。 (三)开发步骤 1.把数据附加到SQLSERVER中去,使数据首先能在SQLSERVER查询器中访问。 2.使用pymssql尝试链接SQLSERVER并取到数据,此时需要解决两个问题: (1)SQLSERVER默认是没有开启远程连接选项的,这样的话pymssql连不上SQLSERVER,必须手动开启允许远程连接SQLSERVER; (2)pymssql不支持SQLSERVER的windows身份验证方式,必须设置sa密码然后使用sa账户连接。 3.使用python和flask搭建最基础的网络框架,能返回一个简单的固定页面。 4.在第3步搭的框架基础上,对页面代码进行开发,使其展示两个下拉选择框(分别是“是否缴纳房产税”和“是否缴纳土地使用费”)和两个日期输入框(“起始时间”和“截止时间”),以及一个查询按钮,当点击查询按钮的时候,提交表单把这四个选项都发送到服务器进行请求。 5.对后台python代码进行开发,在收到四个选项参数后,根据参数来生成SQL语句。其中两个日期决定查询区间,不对SQL语句结构产生影响。而另两个参数“是否缴纳房产税”和“是否缴纳土地使用费”则影响SQL的整体结构,这两个参数一共有4种组合方式,对应代码中的4个SQL模版,然后把日期参数拼接进去,形成最终查询的SQL。 6.使用pymssql执行SQL语句并得到结果后,把结果渲染到html模版的相应位置的〈table〉标签下,把查询结果以表格的形式展示在页面上。为了方便查看查询到的记录总数,在所有结果上面一行显示结果条数。 7.同时,根据用户上报的参数,对四个选项的位置保持用户所选所填的值。形成最终html页面代码。将这个最终结果页面下发到终端。 (四)主要功能 1.查询征收房产税未征收城镇土地使用税数据。 2.查询征收城镇土地使用税未征收房产税数据。 3.查询房地产企业未交纳城镇土地使用税和房产税数据。 (五)使用方法 1.启动查询系统 (1)打开anaconda命令行,进入python源码所在目录(假设源码名称是server.py),执行命令:python server.py (2)启动后在浏览器输入http://127.0.0.1:5000/ 2.实现查询功能 (1)查询征收房产税未征收城镇土地:“是否缴纳房产税”选项选“是”,“是否缴纳土地使用税”选项选“否”,“起始日期”和“截止日期”填查询时间段,格式为八位年月日阿拉伯数字,如“20160101”。 (2)查询征收城镇土地使用税未征收房产税数据:“是否缴纳房产税”选项选“否”,“是否缴纳土地使用税”选项选“是”,“起始日期”和“截止日期”填查询时间段,格式为八位年月日阿拉伯数字,如“20160101”。 (3)查询房地产企业未交纳城镇土地使用税和房产税数据:“是否缴纳房产税”选项选“否”,“是否缴纳土地使用税”选项选“否”,“起始日期”和“截止日期”填查询时间段,格式为八位年月日阿拉伯数字,如“20160101”。