退休人员计算工具

一,背景介绍
平时工作中需要计算退休年龄,分为公务员,参公,事业三类。
以前都是手工计算的,因为人会不断更新流动,每次需要这些数据的时候,都需要重新计算一遍。
这样存在几个问题:
1,公务员,参公,事业有三个表格,每个表格的处理方法都不一样,一个任务需要做3遍。
2,数据量比较大,有上万人,以后可能是2w人,容易忽略一些特殊数据。
3,不同从业人员对业务和表格的理解不一样,算出来的结果会不一样,变得很依靠耐心。
这种重复性、有固定标准的操作,就交给机器好了。

二,操作方法
1,Excel表格预处理。
删除表头,删除身份证和手机号两列。
删除最末一行。
(如果自己在Excel里分析,需要对日期做个分列,全部调整为一种格式。)
表结构,还是不上传了,涉及隐私哦。

2,使用Navicat,导入表格到数据库。
选择了workbook和sheet以后,再选择Excel表格和sql table的key映射,因为之前我就是根据Excel生成sql table的,所以两个key是一致的,一直下一步就好了。
选择Excel或者Excel 2007Excel和sql table key映射
3,导入人员名单到程序。
4,选择退休时间,未来的任何一天,点击查询按钮。
在这里插入图片描述

5,导出花名册,可以选择输出按钮,也可以在视图层直接复制。
6,各种分析,可以扩展。
在这里插入图片描述

三,退休标准
(一)公务员和参公的标准
男性,60周岁退休。
女性,55周岁;如果是副处级以上,60周岁退休。
公务员分为党政群和公检法。党政群里面的职级级别是写了处级科级,方便直接判断。公检法,用的是另外一套职级序列,得要对照起来。
现在简单介绍一下这些序列:
1,党政群序列
职务级别:县处级副职,县处级正职,副省副局职,厅局级副职(保留),厅局级副职,厅局级正职。
职级级别:四级调研员,三级调研员,二级调研员,一级调研员,二级巡视员,一级巡视员。
2,公安序列
公安分为两类,执法警务警员和技术职务。
执法警务警员的职级级别:四级高级警长,三级高级警长,二级高级警长,一级高级警长,一级高级警长(市管),二级警务专员,一级警务专员。
公安技术职务:警务技术四级主任,警务技术三级主任,警务技术二级主任,警务技术一级主任,警务技术二级总监,警务技术一级总监。
3,法院检察院序列
法院检察院是用同一种序列的:四级高级法官检察官,三级高级法官检察官,二级高级法官检察官,一级高级法官检察官
(二)事业的标准
事业分为两类,一类是管理类,一类是专业技术类,还有一类是工勤类。
1,管理类的退休情况:
男性,60周岁退休。
女性,55周岁退休,管理6级以上的女性,60周岁。(管理6级对应的就是公务员的处级。)
2,专业技术类的退休情况:
男性,60周岁退休。
女性,55周岁退休,副高和以上级别的女性,60周岁退休。
3,工勤类
男性,60周岁退休。
女性,50周岁退休。(高级技师、高级工,怎么处理?)
TODO 工勤类,我好像忘记分析了。。。留个疑问。
bala bala,类型好多啊,好吃力啊。。。这些对应的高于处级的,全部都需要加入集合里判断。

四,表格格式
公务员,参公,事业因为字段不一样,目前系统里是分为三个表格。其中,参公和事业的表格是类似的,但是计算退休的标准不一样,参公参照公务员的标准来计算退休。所以这里就体现了2次复用,第1次复用是参公表格的加载和各种操作,复用事业模块;第2次是参公的退休和各种计算,复用公务员模块。
表格从系统中导出,先做预处理。删除表头,删除身份证和手机号两列。
如果自己在Excel里分析,需要对日期做个分列,全部调整为一种格式。这里导入到sql的时候,会将日期格式统一为一种格式。

五,程序原理
方法有很多种,可以直接在Excel里开发vba或者是使用python的,但是习惯了c#,就用c#了。
流程如下:
1,从数据库里读取表格,填充到datatable。
2,根据生日计算,计算退休日期,参考性别,参考职级或者职务,判断退休时期是否在参考日期以前。

				DateTime tuixiuDt;//其中男性60周岁退休,女性副处级以上(含副处)60周岁退休,副处级以下则是55周岁退休。if (strSex.Equals("男")){tuixiuDt = DateTime.Parse(strBirthday).AddYears(60);if (targetDt < tuixiuDt){//设置的时间<退休时间,那么还不能退休,所以跳过continue;}}else{if (!tuixiu_zhiwuJibieSet.Contains(strZhiwu) && !tuixiu_zhijiJibieSet.Contains(strZhiji)){//职务和职级都不满足,那么就是副处级一下;反之,只要有一个满足,就可以了。tuixiuDt = DateTime.Parse(strBirthday).AddYears(55);if (targetDt < tuixiuDt){continue;}}else{tuixiuDt = DateTime.Parse(strBirthday).AddYears(60);if (targetDt < tuixiuDt){continue;}}}

3,将所有退休人员,保存到一个集合。

tuixiuList.Add(dt.Rows[i]);
queryDataTables.ImportRow(datarow);//复制行数据到新表     
queryDataTables.Rows[queryDataTables.Rows.Count - 1][queryDataTables.Columns.Count - 1] = tuixiuDt;

4,然后各种分析都可以做,不过没时间去做。

六,遇到的问题
1,数据不全,字段缺失,容易漏算。
总共有1w多人呢,肯定会存在有些人的有些字段是缺失的,导致你没法分析他们,所以结果只能做到95%以上的准确率。解决办法也有两种:
第一种思路是:整体情况计算好了以后,再回头手工处理这几个人,把他们字段补补全,然后再次导入系统做分析。
第二种思路是:不去管它,因为有些人的退休时间实际上是会变的,如果她在55岁的时候提拔到了副处级,就自动延长到60岁了。所以不用搞得那么精确,一般情况下,这种就够用了。
我个人是倾向第二种思路,抓住事物的本质就可以了,细节的东西别太去深究,允许误差和失败存在,这样才能把事情办好。而且还省力。

2,人员类型很多,如果能够统一下来就好了。
3,导入方法的优化。使用office自带的Excel dll,读取Excel表格的速度很慢,一个五千条记录的表格,可能需要十分钟加载(如果在笔记本上,时间还不止)。后来做了点优化,不在本程序中插入到数据库,**直接使用数据库工具navicat导入表格,1-2秒钟就好了。**估计原因:
1,少了视图对象的创建,直接使用文件io,所以速度就很快了。
2,office Excel dll,速度本来就不行。

七,后期扩展
1,有时间的话,就去做点扩展,可以扩展的地方还是很多的,例如:按照单位计算,按照级别计算,都可以的。前面一段时间研究其他东西去了,现在下班了继续回来搞搞it。
2,如果只是分析的话,其实不需要搞得那么麻烦,导入数据库,几段sql语句就搞定了,工作量会少很多。主要是那几个语句怎么设计,我忘记了,一时想不起来,所以就直接在代码里判断了。
3,还有好多任务没介绍,就这样好了。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1382227.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

通达OA SQL注入漏洞【CVE-2023-4165】

通达OA SQL注入漏洞【CVE-2023-4165】 一、产品简介二、漏洞概述三、影响范围四、复现环境POC小龙POC检测工具: 五、修复建议 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损…

百度地图标注公司那家好

目前传统的商业模式已经无法满足创业者的发展需求&#xff0c;想要有更好更快的发展可以通过网络来进行推广&#xff0c;腾讯地图标注这是一种全新的推广模式&#xff0c;现在每个人几乎都在用手机来进行。上网&#xff0c;在手机上下载各种各样的地图来寻找自己的目的地&#…

如何在UI自动化测试中加入REST API的操作

1、问题 当我们描述一个“好的自动化测试用例”时&#xff0c;经常出现标准是&#xff1a; 精确 自动化测试用例应该测试一件事&#xff0c;只有一件事。与测试用例无关的应用程序的某个部分中的错误不应导致测试用例失败。 独立 自动化测试用例不应该受测试套件中任何其他…

将QQ和微信的保存路径由C盘转移到其他盘

将QQ和微信的保存路径由C盘转移到其他盘 &#xff08;1&#xff09;QQ中的文件通过右键点击QQ头像——》选择系统设置——》选择文件管理——》选择更改目录 完成以后&#xff0c;需要重启一下QQ即可。 &#xff08;2&#xff09;右键点击微信——》选择设置——》选择文件…

pc版微信聊天记录备份迁移

1. 备份:定期备份文件夹 C:\Users\${username}\Documents\WeChat Files (${username}为微信安装的windows用户名) 2. 恢复&#xff1a; &#xff08;1&#xff09;. 新机器安装成功微信后先别启动 &#xff0c;将 备份的WeChat Files 文件夹复制到 C:\Users\${username}\Doc…

固态硬盘的合盘及数据转移

场景 1.在C盘空间不足时&#xff0c;我们会想到把其他的盘的数据分给C盘&#xff0c;这样就会涉及到数据转移的问题。 2.在硬盘分区合并的时候&#xff0c;有的两分区中间会有一个恢复分区&#xff0c;导致不能合并的情况。 解决 分盘 1.右键我的电脑&#xff0c;点击管理 …

6.2.0在线编辑:GrapeCity Documents for Word (GcWord) Crack

GrapeCity Word 文档 (GcWord) 支持 Office Math 函数以及转换为 MathML GcWord 现在支持在 Word 文档中创建和编辑 Office Math 内容。GcWord 中的 OMath 支持包括完整的 API&#xff0c;可处理科学、数学和通用 Word 文档中广泛使用的数学符号、公式和方程。以下是通过 OMa…

男宝宝起名的三大思路

男宝宝起名的三大思路 最近有个哥们正在为一件事情烦恼&#xff0c;开始的时候咱们都觉得挺奇怪的&#xff0c;这哥们现在可以说是家庭事业双丰收了&#xff0c;到底还有什么事儿能让他这么的烦恼呢?询问之下&#xff0c;这个哥们儿向我们吐了苦水&#xff0c;不为别的&#x…

九重鸿蒙浮屠塔,浮图塔测算(浮图塔黄历老黄历)

浮图塔是什么 // 浮图塔就是佛塔. ※浮图&#xff1a;梵语 1、佛陀(简称佛)的别名。 2、佛塔。亦作“佛图”、“浮屠”。 魏书˙卷一一四˙释老志&#xff1a;“自洛中构白马寺&#xff0c;盛 饰佛图&#xff0c;画迹甚妙&#xff0c;为四方式。 凡宫塔制度&#xff0c;犹依天竺…

关于阿里云服务器密码重置和使用方法

总是记不住密码&#xff0c;今天又重置了阿里云服务器的远程连接密码&#xff0c;在这里做个记录&#xff0c;方便以后查找。 一定注意&#xff0c;重置完实例密码要重启&#xff01; Windows 系统 默认的用户名为administrator 密码为重置密码 一定注意&#xff0c;重置完…

阿里云服务器密码重置

目录 一、进入阿里云官网管理控制台 二、选择重置实例密码​ 三、保存 四、网页远程连接服务器 一、进入阿里云官网管理控制台 首先进入阿里云官网&#xff0c;登录你的阿里云账号进入阿里云的管理控制台&#xff0c;然后进入ECS管理后台&#xff0c;如下图。 二、选择重置实例…

服务器密码忘记处理之二:重置密码

步骤1&#xff1a;进入BIOS。 不同的系统进入的方式不尽相同&#xff0c;我的环境是DELL服务器安装的Windows Server 2008 r2 Standard版&#xff0c;在重启的时候&#xff0c;一直按着delete键&#xff0c;进入BIOS。 步骤2&#xff1a;选择启动盘启动服务器。 步骤3&#…

重置目录服务还原模式(DSRM)密码

重置目录服务还原模式&#xff08;DSRM&#xff09;密码 重置操作命令说明 重置操作 命令说明 PS C:\Users\Administrator> ntdsutil C:\Windows\system32\ntdsutil.exe: Set DSRM Password 重置 DSRM 管理员密码: Reset Password on server NULL 请键入 DS 还原模式 Admin…

阿里云轻量服务器如何重置密码?

我们在开通阿里云轻量应用服务器的时候&#xff0c;是没有设置服务器密码的地方的&#xff0c;而且服务器也没有初始密码&#xff0c;所以就需要我们开通好轻量应用服务器后去重置下服务器密码&#xff0c;那么如何重置密码呢&#xff1f; 首先&#xff0c;打开轻量应用服务器…

腾讯云服务器如何修改和重置密码?

在上一篇我们介绍了如何购买腾讯云服务器,现在来讲讲购买服务器之后&#xff0c;如何重置和修改腾讯云服务器密码。步骤过程很简单&#xff0c;虽然我描述的有点详细。 【修改云服务器密码(Linux操作系统)】 远程连接 Linux 实例(实例就是你的服务器)时&#xff0c;提示用户名或…

mysql如何重置密码

1. 关闭MySQL服务 点击系统偏好设置->最下边点MySQL&#xff0c;在弹出页面中&#xff0c;关闭服务 2.打开终端 ① 进入mysql文件夹 cd /usr/local/mysql/bin 回车②获取权限 sudo su 回车&#xff0c;然后输入开机密码&#xff0c;回车③进入安全模式 ./m…

MySQL--忘记密码,重置密码重启服务密码失效(Windows)

一、问题说明 最近在Windows下操作mysql数据库&#xff0c;我装的是mysql5.7版本的&#xff0c;但是忘记了安装时设置的密码&#xff0c; 通过mysqld -nt --skip-grant-tables 跳过安全检查登录重置了密码 修改后使用新密码&#xff0c;能正常登陆成功&#xff0c;但老是发生…

重置Google云服务器密码

1、进入Google云实例面板 2、切换到root角色 sudo -i 3、修改root密码 passwd[qqqqqinstance-3 ~]$ sudo su [rootinstance-3 guser]# passwd Changing password for user root. New password: Retype new password:

移动邮箱(139):开启服务+密码登录

移动邮箱&#xff08;139&#xff09;&#xff1a;开启服务密码登录 官网&#xff1a;https://mail.10086.cn/ 帮助&#xff1a;http://help.mail.10086.cn/statichtml/0/Category/223/List_1.html 关联阅读&#xff1a; 139邮箱服务器地址是什么&#xff1f;如何开启POP3和IMA…

服务器server2012重置开机密码

准备工作 1.制作u盘启动&#xff08;pe&#xff09;该操作很简单&#xff08;大白菜、老毛桃等&#xff09; 2.下载操作系统镜像 重置密码方法 一、通过进入pe系统&#xff0c;使用管理密码工具操作步骤&#xff1a; 1.点击vmware操作系统设置——添加硬盘——选择scsi——…