房屋维修资金历史数据优化方法
2021-03-12唐俊杰
唐俊杰
(昆山市房屋维修资金管理中心,江苏昆山 215300)
0 引言
房屋维修资金是指用于共用设施设备与共用住宅部位改造、维修的资金。2008 年,财政部和建设部联合颁布《住宅专项维修资金管理办法》[1],在法律上对房屋维修资金的归集、支用等业务作出相应规定。房屋维修资金目前利用率不高,济南市的房屋维修资金利用率不到1%[2]。但是随着民法典将于2021 年正式实施,修改了房屋维修资金相关政策,同时老旧住宅小区共用设施设备、共用住宅部位等改造、维修的需求不断增多,房屋维修资金将会受到越来越多人的关注。
房屋维修资金在管理与使用过程中,存在以下突出问题:①投票表决困难。根据《住宅专项维修资金管理办法》,房屋维修资金需房屋总面积且总人数达三分之二以上的业主表决通过才能支用,而在实际操作中,业主的投票参与率不高[3],济南市需要一个月甚至几个月才能达到三分之二的要求[2];②业主身份难以确认。由于大部分城市都没有将房屋维修资金历史数据与房屋权属系统进行关联,很难确认业主身份,目前的做法是要求业主把房产证拿出来对照,或者到房屋权属系统进行核实,效率低下;③维修资金查询难。业主查询自己房屋的维修资金很困难,目前在很多城市,业主需携带房产证、身份证等证件去政府管理部门查询,给业主带来了很大的不便。为此,很多城市也提出了解决办法。例如:针对投票表决困难的问题,济南市制定合理的使用及监管程序,建立一个透明的决策平台[2],通过多种表决形式解决该问题,如委托表决、集合表决等[4];泰州市采用了“住房医保”模式,业主、物管企业自愿参保,借助系统解决投票难的问题[5]。针对业主身份难以确认、查询难的问题,四川省南充市将房屋维修资金对应的房屋数据与房屋权属系统进行数据关联,可达到确认业主身份的目的[6]。也有学者如陈淑云等[7]提出建立信息化管理平台,以提高管理透明度。
针对房屋维修资金在管理与使用过程中存在的问题,很多城市管理部门及学者都提出需要建立完整的信息化管理平台。但是平台建设成功与否,最主要的是需要实现与房屋权属部门的数据相关联,同时完善小区楼盘信息。
本文通过Apache、PHP、MySQL 等技术,以昆山市为例,优化了房屋维修资金历史数据,实现了与房屋权属部门的数据关联,完善了小区楼盘信息,为建立信息化管理平台奠定了重要的数据基础。
1 相关软件介绍
系统采用B/S 软件架构,以PHP 作为编程语言,数据库采用关系型数据库MySQL,InnoDB 作为数据库引擎,SQLyog 作为可视化的MySQL 数据库管理工具,UltraEdit作为文件编辑器,并采用AppServ 进行服务器环境部署。
2 系统设计
2.1 系统需求分析
系统需求分析是软件开发过程中最重要的环节之一[8]。昆山市房屋维修资金在管理与使用过程中也存在着与全国大部分城市相同的问题,即投票表决困难、业主身份难以确认、查询难等。
昆山市房屋维修资金历史数据规模较大,已缴款房屋数量达85 万户左右。昆山市房屋维修资金的归集流程为:①开发商凭借测绘公司的预测报告或实测报告及房屋明细到昆山市房屋维修资金管理中心(以下简称:管理中心)缴纳房屋维修资金;②开发商缴款后,由管理中心将测绘报告中的合计面积与开发商提供的合计面积进行对比,判定资金是否缴足,并开具缴款确认通知书;③开发商凭借缴款确认通知书到房管处领取房屋销售备案证;④开发商出售房屋,并为业主到房产交易中心办理房产证。
维修资金历史数据存在以下问题:①房屋维修资金缴存面积不一定等于房产交易中心面积,因为预测面积与实际办证面积略有差别;②房屋维修资金数据并未与房产交易中心的楼盘数据相关联;③房屋维修资金历史数据中没有明确小区的概念;④不需缴款的房屋数据不在房屋维修资金数据中,不利于日后的物业管理。
本文借助管理中心拥有的房管处备案小区与房屋维修资金缴款单号对应关系表,以房屋维修资金历史数据、房产交易中心全量数据为基础,开展数据优化。
2.2 系统总体设计
由一人负责数据优化任务的分配及检查,多人负责数据优化任务的实施。由于此次数据优化由管理中心自主完成,并没有高端服务器与经费支持,仅使用一台常规的办公电脑作为Web 服务器、多台办公电脑作为客户端完成数据优化工作。
由负责任务分配的工作人员从管理中心拥有的房管处备案小区与房屋维修资金缴款单号对应关系表中,以小区为单位,将小区名称分配给参与数据优化的工作人员。参与优化的工作人员通过房产交易中心数据查询系统及维修资金历史数据查询系统查询对应明细,通过调用数据优化模块,最终获得优化后的数据,并将其以Excel 形式保存。负责任务分配的工作人员再通过小区名称,从优化后的目录里获取小区所有明细,通过房屋唯一性检查后最终定稿。如果房屋唯一性检查有误,则退回修改,直至检查无误。
整个系统数据流如图1 所示。
2.3 系统结构设计
房屋维修资金历史数据优化包含3 部分:用户管理模块、数据查询模块、数据优化模块。
(1)用户管理模块。实现了对用户访问网页权限的控制,防止数据泄露。每个有权限访问Web 服务器的用户会在Web 服务器上得到一个可供其编辑的目录地址。
(2)数据查询模块。实现了用户通过房屋维修资金缴款单号、小区名称、缴款单位等维度查询房屋维修资金历史数据;通过小区名称、地块号等维度查询房产交易中心数据,通过该网页能够获取小区的全量数据,以弥补维修资金历史数据的不足。
(3)数据优化模块。通过该模块可获得小区所有房屋数据及缴款情况,且房屋数据与房产交易中心进行了关联,面积与房产交易中心保持一致,特例除外;同时保证了所有核对房屋的一致性,防止不同房屋与同一个房产交易中心房屋进行关联。
整个系统结构如图2 所示。
2.4 系统数据库设计
系统共涉及两张表:房产交易中心数据表jiaoyizhongx⁃in_room、房屋维修资金历史数据表fangyiwei_room。房产交易中心数据表记录了房产交易中心数据,房屋维修资金历史数据表记录了房屋维修资金历史数据。
(1)jiaoyizhongxin_room 表。该表用于存储房产交易中心房屋的基础信息,含字段RoomCode(房屋唯一码)、Land_No(地块号)、Build_No(幢号)、Room_No(房号)、H_Use(房屋用途)、CurFloor(楼层号)、Location(房屋地址)、B_Area(房屋面积)、District(房屋所在区镇)、Per⁃tain_Area(房屋附属面积)等。
Fig.1 System data flow图1 系统数据流
Fig.2 System structure图2 系统结构
(2)fangyiwei_room 表。该表用于存储房屋维修资金对应房屋的基础信息,含字段Louhao(楼号)、Danyuanhao(单元号)、Fanghao(房号)、Mianji(建筑面积)、Danjia(缴款单价)、Shoujiaojiner(缴款金额)、Jiaokuandanhao(缴款单号)等。
3 系统实现
3.1 用户管理模块
用户管理模块功能全部通过PHP 页面实现。用户登入权限管理功能的实现方法为:在相关网页上添加控制模块,每次用户通过客户端访问网页时,网页首先抓取客户端的IP 地址,然后检查该地址是否在预设范围内,如果IP不满足要求,则拒绝访问,最终实现对用户的访问控制。具体核心PHP 代码如下:
Web 服务器共享目录管理功能的实现方法为:在相关网页上添加参数设置模块,执行相关PHP 网页时,网页会根据用户客户端的IP 地址,从指定目录文件中读取数据,为接下来的逻辑处理作准备。具体核心PHP 代码如下:
此次由4 位工作人员负责数据优化,1 位工作人员负责任务分配,故通过PHP 网页简单地实现了用户登入权限管理以及Web 服务器共享目录管理功能。如果工作人员较多,建议在数据库里建立用户访问控制表,通过PHP 网页以及用户访问控制表实现用户管理模块。
3.2 数据查询模块
数据查询模块功能的实现有以下2 个步骤:
(1)历史数据导入。通过CSV 格式的数据文件,利用SQLyog 工具将维修资金历史数据、房产交易中心数据导入数据库中,并对维修资金历史数据表中的“缴款单号”字段建立索引,提高查询效率;房产交易中心数据表中没有“小区名称”字段,小区名称包含在“房屋地址”字段里,而索引不会提高模糊查询效率,故不对“房屋地址”建立索引。
(2)数据查询。维修资金历史数据查询、房产交易中心数据查询都是通过PHP 程序的mysql_connect 函数访问数据库[9],获取特定字段的数据明细,并将空值部分在网页上用“nodata”代替,为接下来读取数据作准备。如果使用空值,读取数据时则无法精准判断字段的实际意义。
3.3 数据优化模块
3.3.1 优化方案说明
此次数据优化未使用房屋维修资金历史数据与房产交易中心数据全量匹配,主要出于如下原因:
(1)房屋维修资金及房产交易中心存储的小区名字不规范,很容易匹配不到,即使匹配到,也无法保证该房屋的小区名字是否正确。
(2)此次数据关联不仅要关联房屋,同时还要将房产交易中心的房屋面积覆盖原房屋维修资金对应的房屋面积,但不能机械地覆盖,必须要验证覆盖后,面积乘以单价与实际财务金额基本一致,如果差别很大,则还是以缴款时的面积为准。
针对以上原因,此次数据优化采用以小区信息为主、财务信息为辅的方式进行数据优化。
3.3.2 数据优化
将房屋维修资金历史数据与房产交易中心数据进行匹配,匹配的关键字有3 个:小区名称、楼幢号、房号。匹配成功后,房产交易中心的房屋唯一编号会添加到匹配成功明细中,同时房屋面积以房产交易中心的数据为准。工作人员需将待匹配的维修资金明细、房产交易中心明细放到Web 服务器指定的目录文件中,jiaoyizhongxinroom.txt、fangyiweiroom.txt 分别用于存放房产交易中心房屋数据和房屋维修资金对应的房屋数据。通过反复执行程序erci⁃shuzhuan.php,最终得到小区的全量数据,其中包括未缴款的房屋数据。程序流程如图3 所示。
Fig.3 Data matching process图3 数据匹配流程
3.4 房屋唯一性检查
由于有些小区名字比较相似,工作人员查询房产交易中心数据时,可能会因为疏忽,没有把相似的小区房屋剔除,最后导致新的房屋维修资金数据中存在其它小区的房屋数据。为防止同一房产交易中心的房屋在不同小区内重复出现,设计程序loupanjiance.php 用来判断此类情况。程序用到两个文件:new_fangyiweiroom.txt、total.txt,分别用于保存待检查的数据和已检查的数据合集。昆山市房产交易中心的数据规模在130 万条左右,
推算total.txt 的数据也在该量级,故程序设计时必须考虑内存溢出的情况。程序每次从total.txt 读取3 000 行数据,并且只读取小区名称、房屋唯一码,以节省内存开销,主要代码如下:
该程序随着total.txt 数据量的增加,耗时也不断增加。以下列出了针对不同的total.txt 数据量程序所消耗的时间,供读者参考。
使用5 组数据作为样本,一般小区的房屋数量不会超过3 000 户,故new_fangyiweiroom.txt 始终保持3 000 户。当total.txt 的数据量为5 万条时,程序耗时25s;当total.txt的数据量为15 万条时,程序耗时80s;当total.txt 的数据量为30 万条时,程序耗时165s;当total.txt 的数据量为70 万条时,程序耗时418s;当total.txt 的数据量为130 万条时,程序耗时860s。如果对于程序耗时比较介意,该方法则不适用,可以考虑其它方法,如将数据导入数据库进行数据分析等。
4 结语
目前政府管理部门希望借助IT 技术实现对房屋维修资金的科学管理,然而数据作为科学管理的根基,很少有人提出对数据进行优化以及优化方法。有些政府管理部门虽然建立了新系统,但并未将数据与权属系统进行关联,相关数据则属于数据孤岛,很难去拓展其它特色业务。
本文分析了房屋维修资金历史数据普遍存在的问题及相关问题带来的影响,通过Web 技术,以较低的软硬件成本实现对房屋维修资金历史数据的优化,对中小型城市的数据优化工作可起到一定指导作用。但是本文提出的房屋唯一性检查程序耗时较长,在实际操作中,当total 数据量达到70 万条之后,建议将多个小区一并放到new_fan⁃gyiweiroom.txt 中进行检查,以减少遍历全量数据的次数。对于大城市、特大城市的房屋维修资金历史数据优化而言,由于程序的耗时问题,可能不适用于本文提出的方法。因此,如何提高程序运行效率是下一步的研究方向。