基于sqlserver触发器技术的停车一卡通自动扣费实现
2017-04-27于大江刘春杨锐陈翔宋伟
于大江 刘春 杨锐 陈翔 宋伟
摘要:2015年4月我院停车场整体外包,为实现员工停车出入场不停车,并计费自动扣费,需要对停车场停车管理系统与一卡通系统做实时对接并扣费同步,于是我们自主开发了停车场自动扣费管理系统。
关键词:停车场系统;一卡通系统;sqlserver;触发器
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)29-0025-02
2015年4月我院停车场整体外包,为鼓励员工不在医院停车,将更多的车位留给患者。医院对院内职工制订了不同于患者的停车扣费规则:员工停车20分钟内免费,超过20分钟每小时2元,上不封顶。同时未了方便职工停车,要求实现医院职工停车收费在一卡通系统中实现扣费功能,而不必出示一卡通或者缴纳现金。
实现方案讨论:接到任务后,我们初拟了两个方案,一是通过计划任务每天晚上自动扣费;二是通过计划任务实时扣费。经过反复讨论,为保证数据实时同步,我们最终采用了方案二。
该方案的实现思路是:
将停车系统已完成人出记录的停车数据通过触发器写入一卡通系统;根据停车数据,按照相应的算法计算出应扣金额和余额;将扣费记录写入扣费记录表,并更新余额表余额。
涉及两个两个触发器,一个跨库数据同步触发器,一个扣费减余额触发器,涉及五张表:员工信息余额表、消费记录表、停车记录表、一卡通与车牌对照表、扣费设备管理表。
后期消费统计,可根据虚拟扣费设备的扣费来统计停车消费信息。
具体实现步骤:
1)需保证停车系统服务器与一卡通服务器之间网络通畅,并IP地址固定
2)在停车系统数据库上建立sq|server间的dblink
exec sp_addlinkedserverITSV,",SQLOLEDB,远程服务器名或ip地址
exec sp_addhnkedsrvlogin'ITSV','false',null,'用户名','密码'
3)在一卡通数据上建立相应的数据表
①建立车牌号与一卡通对照表
接口通过触發器ParkOut将停车系统中的已出场停车记录实时同步到一卡通数据库,并通过车牌与一卡通对照关系表ParkOut_ear_query$将停车记录按规则换算出停车费用,再通过触发器out__park_Cost完成消费扣费及余额扣减。车辆出场即完成扣费。
该接口完美的实现医院职工停车收费在一卡通系统中实现扣费功能,而不必出示一卡通或者缴纳现金。
为方便增加和维护员工车牌信息,后期开发了车牌与一卡通对照系统来实现对照关系的维护功能。
可能存在的问题:
①只有出场时间,没有入场时间的,接口无法予以扣费。
②系统根据出场时间扣费,一直未出场的费用并不扣除,直至出场时方立即扣费,因此可能会将一卡通余额扣成负数。
③系统根据出场车牌号关联扣费,因停车系统提供的出场车牌号错误导致的漏扣费、误扣费由停车场负责。