一卡通在每家公司都存在,不仅含考勤机,还会有门禁,订餐,食堂消费等。我们公司采用的是厦门舒特科技的一卡通系统,前后用了好几年了。

在我之前,一卡通的功能主要启用了考勤和消费这两大模块。

1、考勤机是每个子公司都有相应设备,员工每天上下班刷卡,然后每个区域子公司的人事部考勤同事开始每周排队,一人分一天下载考勤数据。如果所有人一起下载考勤数据的话,就会因为数据量巨大而导致网络堵塞,说到底是公司的小型VPN太差。

2、消费数据是由IT维护人员负责,每个月不定时IT维护人员会去下载所有区域的消费机的脱机数据,在月初的时候在一卡通系统里导出所有公司所有员工的消费数据,差不多会有十几万笔,再在Excel里做成汇总表,然后把这些数据发到公司一卡通的QQ群里供人事部同事下载人工导入HR系统。而月初的“补贴”也是由IT维护人员必做的不能忘记的一项工作。

然后,就以上这么点工作,敢接的,能接的人不多,坑实在是太多了,能说道的事情也太多了。

我认为公司一卡通系统有几个缺陷:

1、考勤数据都要由人事部轮流时间去人工下载再导入,而且经常因为账号卡死在里面而发生其他人没办法进去的情况。没办法实现自动下载和自动导入,增加了人工成本,IT 在其中的价值基本的不到体现;这其中主要的原因还是因为一卡通设备的问题。

2、消费机的数据整理全部都是IT来做,从管理上和安全要求来说,IT是不应该去直接接触数据的。耗费太多的时间和精力去整理这些数据,做着毫无价值和意义的事情。

自从今年3月份开始接手以来到现在,我逐渐摸通了一卡通系统的很多门道。既然之前信息化部门的头头造了这么多孽,我自然不能没有规划,一直想方设法把IT做的事情分到人事部门去做。

但这过程中我需要解决是写一个程序,让人事部可以自己自由查询消费数据,能够在程序上导出来汇总表。然后我再写一个可以自动发“补贴”的定时作业。

一、查询程序

因为对后台程序的数据库结构了解不多,但我还是懂得了消费表是哪张表,以及其他相关人员,设备等表。

于是我把查询消费表的功能写成了一个存储过程,通过传入时间和区域参数来查询消费记录。

还有汇总表的计算,因为要很长时间,所以我把计算功能做成一个存储过程,并用一张表存储计算结果:

然后,通过C#快速开发出一个查询程序出来,功能相对简单,但通过在Sql Server上做一个版本控制的存储过程,一旦我有修改程序,我就更新新的版本,之前的版本就自动失效,避免出现旧程序被使用的情况:

程序界面简单,如下:

二、设定自动排程计算每月消费汇总表

由于做成了存储过程,所以用排程去执行它就可以了!

三、自动发放补贴

PS:说到“补贴”,我就想笑。其实只是员工工资预支600元而已。

但做到自动发放补贴这里就比较艰难了。

因为发放补贴是要排除掉离职和非公司的人员,而且一卡通系统并不是执行标准的存储过程,而是把sql语句写到程序中了,所以根本不知道它是怎么执行的哪些表。

虽然我知道更新哪张表哪个字段可以实现发放补贴,但这样会有风险,因为我并不知道其中更多的逻辑。

打电话给舒特科技公司,告之说这个数据库规格书是要钱的!(顿时心中一万匹草泥马奔腾过)

后打算用Sql Server Profiler连接后台数据库,哪知道提示说:

我不知道公司信息管理部领导当初购买一卡通系统的时候到底是想的什么,居然还在用这么原始的系统存在!!后台数据库用的是sql server 2000,实在无力吐槽了!

于是我只好安装Sql Server 2008的Profiler工具,成功连接上系统,在里面做跟踪,经过大量的分析,总算知道了“发放补贴”这一逻辑:

里面使用大量的临时表,诸如这类语句:

IF OBJECT_ID('tempdb..#Subsidy') IS NULL

BEGIN

SELECT A.Person_ID,Person_No,Person_Name,Card_No,Dept_No, Dept_Name,Subsidy_Fund,Subsidy_Fund[PriTime_Fund], Subsidy_Fund[Use_Fund],Subsidy_Fund[Fact_Fund],Person_Name[Type_Name],   Birthday[Subsidy_Date],Person_No[Type_No],0[Data_Type],A.Person_ID[ID_KEY],Cast(0 as bit)[Is_OnlySubsidy]

INTO #Subsidy

FROM ST_Person A

LEFT JOIN ST_Department C ON C.Dept_ID=A.Dept_ID

LEFT JOIN ST_Card B ON B.Person_ID=A.Person_ID

WHERE 1<>1

END

ELSE

TRUNCATE TABLE #Subsidy

于是有了这些逻辑,接下来发放补贴的存储过程就好办多了:

此存储过程没有任何的参数传入,也自动过滤掉了不能发放补贴的所有部门!

设定排程工作,限定在每个月的1号凌晨跑,从此一劳永逸解决了我手工发放补贴的艰难动作!

一卡通的事情耗费了我不少的时间。主要是没有任何的数据库规格书,而且对很多的技术根本没法掌握得到。由此可以想到如果系统在立项和实施的时候,IT部门如果不介入或者专业度不够,很多文档如果没有提供,那未来要维护起来是多么的可怕,就是专门给后人挖坑和造虐的!想想现在的加密系统,不就是一个大坑吗?!

转载于:https://www.cnblogs.com/saper/p/5625289.html

公司消费一卡通“变法”记相关推荐

  1. [转帖] 中国手机设计公司IDH 大史记

    2000年左右开始,国内的手机市场需求大增,对品牌商和深圳的手机集成商而言,手机市场的爆发增长他们很敏感,对于产品成本.上市速度乃至个 性化时尚化的追求,伴随着产业链和分工的发展, Design Ho ...

  2. 安装智能消费机服务器连接,消费一卡通系统/消费机布线安装方法

    [导读] 一. 消费机工程布线要求: 1. 选用120欧姆的8芯双屏蔽网线(通常采用),线路截面积0.75平方毫米.根据布线环境及长度,再选择不同的屏蔽材质及抗拉强度不同的线材. 2. 所用的两芯线必 ...

  3. 介绍篇 小贷公司 消费金融公司 P2P 助贷具体区别是什么

    最重要的事情开始都会讲:建模是始终服务于业务的,没有业务的评分卡就没有灵魂 发布时间 2019年9月 最重要的事情最后都会讲:建模是始终服务于业务的,没有业务的评分卡就没有灵魂

  4. 挨踢人生路--记我的10年18家工作经历 - 第16家公司,英国公司――第一次当经理...

    挨踢人生路--记我的10年18家工作经历 - 前言 挨踢人生路--记我的10年18家工作经历 - 从大学说起――不得不说的一些事情 挨踢人生路--记我的10年18家工作经历 - 第1家公司,在老家的工 ...

  5. 北京黄记煌餐饮管理有限责任公司签约Ebistrategy亦策软件

    随着大数据在各行各业的渗透,餐饮业也被搅动着大数据的神经.餐饮业作为传统行业,很多企业的数据都是碎片化的,报表.供应链.CRM系统都是分开储存的,团购网站.支付平台虽然也有提供数据平台,但很难做到数据 ...

  6. 互联网金融概念--关于小贷公司和消费金融公司

    小额贷款公司与消费金融公司区别 什么是小额贷款公司.什么是消费金融公司?   [小额贷款公司] 是指由自然人.企业法人与其他社会组织投资设立,不吸收公众存款,经营小额贷款业务的有限责任公司或股份有限公 ...

  7. 网友对各产家“一卡通”系统产品的评论

    <!--printpage.asp##帖子可打印页面--> --一卡通系统(http://www.1000bbs.com/list.asp?boardid=53) ----谁能推荐一些知名 ...

  8. KB奇遇记(3):糟糕的IT现状

    2015年8月3号,终于告别了过去来到了KB. 公司给安排的住房是一间套房里的小房间,小的简直连坐的地方都没有了,中间一个大床将房间隔了两边,显得特别狭小.由于是刚来,我也不好要求太多.但就这个小房间 ...

  9. 挨踢人生路--记我的10年18家工作经历 - 后记

    挨踢人生路--记我的10年18家工作经历 - 前言 挨踢人生路--记我的10年18家工作经历 - 从大学说起――不得不说的一些事情 挨踢人生路--记我的10年18家工作经历 - 第1家公司,在老家的工 ...

最新文章

  1. [Unity WWW] 跨域访问解决方法
  2. 面试结尾——你有什么问题?
  3. 肝!精心整理了 50 个数据源网站!
  4. 天津理工上机c语言报告5,天津理工大学c语言上机报告7.doc
  5. python sqlite3
  6. html获取文件路径_HTML 文件路径
  7. POJ2987 Firing 最大权闭合图
  8. 批量查进程linux,linux 批量删除进程与查看进程详解
  9. pytorch 方法笔记
  10. UML类图各符号含义
  11. Teamviewer 曝重大安全漏洞,攻击者可任意控制用户或属乌龙事件!(内附安全处理建议)...
  12. FF14 界面 字变得很小 一种适用于高分辨率笔记本或屏幕下FF14窗口或无边框模式的性能优化方法
  13. Java类图(记录/转)
  14. ROS中的diagnostics模块
  15. 偶然 --徐志摩
  16. apk很小 白屏时间长_小精灵启动后会白屏很久
  17. python算法工程师需要学什么_一个优秀的算法工程师必须具备哪些素质?
  18. 20230304 CF855 div3 vp
  19. UVA10566 Crossed Ladders(计算几何+二分)
  20. 陕西省计算机证书查询官方网站,陕西省专业技术人员资格证书查询系统正式上线...

热门文章

  1. java中按钮的接口_Java接口基础
  2. python access 源码_连接的微软Access数据库,这是一个轻量级的Python模块(MDB格式)...
  3. 实战 es6_腾讯云 Elasticsearch 实战篇(二十二) ES6.8权限使用配置
  4. 基于Java+SpringBoot+vue+element实现新冠疫情物资管理系统详细设计
  5. linux修改密码最短生存时间,Linux基础命令---修改用户密码
  6. java多线程中出现的异常分别有哪些_java多线程试题
  7. 自动填充html_第 11 篇:自动生成文章摘要
  8. vscode删除文件夹,VSCode:删除文件中的所有注释
  9. pycharm和pythonIDE安装详解
  10. 【课题报告】OpenCV 抠图项目实战(10)PyQt5 使用