OA与EHR系统集成方案

1.背景介绍

为实现员工请假、加班等人事流程流程化、考勤自动化目标,需要将OA中的人事流程与EHR系统做对接,做到员工只需要填写申请单,审核通过后自动进入EHR系统做考勤结算。在此次系统对接中,OA系统提供商为蓝凌科技,EHR系统提供商为同鑫科技。此次系统对接范围:人事请假流程、加班流程、补打卡流程、员工离职流程。

2.方案梳理

本次系统集成采用中间表的方式,步骤如下:

2.1 将OA数据库链接到EHR数据库,链接方法参照: 链接数据库

此处略写

2.2 将人事流程数据写入中间表。

请假流程、加班流程、补卡流程、离职流程均增加一张中间表用于存储请假、加班等实际业务数据。流程的发起在OA系统,经过审核,流程结束后写入到中间表。OA系统要确保中间表数据的正确性,因此在流程校验上要严格控制考勤流程校验,其次,遇到员工申请单写错的情况,也要有完善的处置办法,在OA里面增加考勤异常报修的流程,用来处理请错假、补错卡等考勤问题。

2.2.1 加班中间表
fd_idfd_cardfd_namefd_datefd_hours
id识别卡号员工姓名加班所属日期加班小时数

EHR系统计算加班时间是根据员工的排班来计算的,因此只需要知道员工的识别卡号以及加班所属日期和加班小时数即可,此处的中间表是加班申请流程所产生的数据,进入到EHR系统后将用来和考勤打卡数据做比较,一般取小值作为最终考勤结算的加班时数,比如张三实际加班3个小时,但是申请了4个小时,那么在结算的时候取3小时作为考勤结算的数据。当然中间表中也可以增加其他字段,根据实际情况而定。

2.2.2 请假中间表
fd_idfd_cardfd_namefd_typefd_starttimefd_endtime
id识别卡号员工姓名请假类型请假开始时间请假结束时间

EHR系统计算请假时间是根据员工的排班来计算的,因此这里只需要请假类型、开始时间和结束时间,

2.2.3 补卡中间表
fd_idfd_cardfd_namefd_typefd_starttimefd_endtime
id识别卡号员工姓名请假类型请假开始时间请假结束时间

EHR系统计算请假时间是根据员工的排班来计算的,因此这里只需要请假类型、开始时间和结束时间,

2.2.4 离职中间表
fd_idfd_cardfd_namefd_typefd_starttimefd_endtime
id识别卡号员工姓名请假类型请假开始时间请假结束时间

EHR系统计算请假时间是根据员工的排班来计算的,因此这里只需要请假类型、开始时间和结束时间,

2.3 EHR从中间表视图中取数据并写入到EHR系统。

使用OA系统的中间表生成对应的视图,然后在EHR系统中写同步中间表数据的存储过程,代码如下:

CREATE proc [dbo].[OAsj1910]
 as 
----OA签卡同步数据接口--- 
IF (SELECT object_id('tempdb..#tkqqk'))>0 
DROP TABLE #tkqqk
select * into #tkqqk from (select distinct fd_buKaShiJian,fd_shiBieKaHao,fd_xingMing,fd_gongZuoRiQi,fd_buKaLeiXing,fd_buKaYuanYin
 from   [kqoa].[ekpa].[dbo].[ekp_personnel_additional_hr] where fd_buKaShiJian>=getdate()-120)a

insert into t_hr_patchcard
(Time,id,EmpID,WorkDate,Sequence,ReasonID,PatchType,IsOverTime,AppStatus,Remark,CreatorCode,
Creator,CreateTime,ModifierCode,Modifier,ModifyTime,ApproverCode,Approver,ApproveTime,Attachment)
select   distinct t.fd_bukashijian,
((select case when max(id) is null then 1 else max(id)+1 end from t_hr_patchcard )+ ROW_NUMBER() over (order by e.code)) as id, 
e.id as empid,null,null,
case when t.fd_buKaYuanYin=1 then 1 when t.fd_buKaYuanYin=3 then 3 else 4 end ,
case when t.fd_bukaleixing=1 then 0 else 1 end, 
null,1,null,'OA','OA同步',getdate(),null,null,null,null,null,null,null  
  from  t_hr_employee e,#tkqqk t 
where e.code=t.fd_shibiekahao
and not exists(select 1 from t_hr_patchcard k where k.EmpID = e.ID and  k.Time =t.fd_bukashijian )

----OA加班申请过流程接口--
insert into t_hr_daychange
(ChangeDay,ID,EmpID,AppStatus,Remark,CreatorCode,Creator,CreateTime,
ModifierCode,Modifier,ModifyTime,ApproverCode,Approver,ApproveTime,sqjb)
select  distinct CONVERT(varchar,k.fd_jiabansuoshuriqi,23) AS ChangeDay , 
((select case when max(id) is null then 1 else max(id)+1 end from t_hr_daychange )+ ROW_NUMBER() over (order by e.code)) as id,
e.id as empid, 
1,null,'OA','OA同步',getdate(),null,null,null,null,null,null,sum(cast(k.fd_jiabanxiaoshishu as numeric(10,1)))
from T_HR_Employee e,[kqoa].[ekpa].[dbo].[ekp_personnel_overtime_hr]  k where e.code=k.fd_shibiekahao
and  not exists(select 1 from t_hr_daychange t where t.EmpID = e.ID 
and CONVERT(varchar(100), t.ChangeDay, 23) =CONVERT(varchar(100), k.fd_jiabansuoshuriqi, 23))
group by e.id,CONVERT(varchar,k.fd_jiabansuoshuriqi,23),e.code

----OA请假流程接口--

IF (SELECT object_id('tempdb..#tkqqj1'))>0 
DROP TABLE #tkqqj1
select * into #tkqqj1 from (select distinct fd_qingJiaKaiShiShiJian,fd_shiBieKaHao,fd_xingMing,
fd_qingJiaLeiXing,fd_qingJiaJieShuShiJian,fd_qingjiashishu
 from  [kqoa].[ekpa].[dbo].[ekp_personnel_leave_hr] 
 where fd_qingJiaKaiShiShiJian>=getdate()-180 )a

insert into  t_hr_absence
(BeginTime,ID,EmpID,AbsenceDay,BeginDate,EndDate,EndTime,IsMianKa,IsContinuous,TotalHour,
TypeID,AppStatus,Remark,CreatorCode,Creator,CreateTime,ModifierCode,Modifier,ModifyTime,
ApproverCode,Approver,ApproveTime,Attachment,PBeginDate,PEndDate,PBeginTime,PEndTime,
PTotalHour,LeaveStatus,OutTime,ReturnTime)
select  distinct k.fd_qingjiakaishishijian ,((select case when max(id) is null then 1 else max(id)+1 end from t_hr_absence )+ ROW_NUMBER() over (order by e.code)) as id,
e.id as empid,
null,null,null,k.fd_qingjiajieshushijian,1,null,k.fd_qingjiashishu,
case when k.fd_qingjialeixing=20 then 11 
     when k.fd_qingjialeixing=21 then 8 
	 when k.fd_qingjialeixing=1  then 1 
	 when k.fd_qingjialeixing=2  then 2 
	 when k.fd_qingjialeixing=3  then 3 
	 when k.fd_qingjialeixing=4  then 4 
	 when k.fd_qingjialeixing=5  then 10 
	 when k.fd_qingjialeixing=6  then 12 
	 when k.fd_qingjialeixing=7  then 6 
	 when k.fd_qingjialeixing=8  then 13 
	 when k.fd_qingjialeixing=9  then 14 
	 when k.fd_qingjialeixing=10  then 9 
	 when k.fd_qingjialeixing=23  then 7 
	 when k.fd_qingjialeixing=24  then 15 
	 else 5 end,
1,'','OA','OA同步',getdate(),'OA','OA同步',getdate(),'OA','OA同步',getdate(),null,null,null,null,null,null,0,null,null
from t_hr_employee e,#tkqqj1 k where e.code=k.fd_shibiekahao
--and k.fd_shibiekahao='2046149'
and not exists(select 1 from t_hr_absence t where t.EmpID = e.ID 
and t.BeginTime=k.fd_qingjiakaishishijian and t.Endtime= k.fd_qingjiajieshushijian)

DROP TABLE #tkqqj1   

接下来,需要写一个定时任务,按照一定的时间执行该存储过程。sqlserver设置定时任务

经过上述三个步骤,在EHR的前台界面中即可展示请假、加班、补卡等流程数据,在EHR系统计算考勤的时候将依照OA同步的数据和员工排班以及考勤打卡数据做处理,最终得出员工考勤报表。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EHR人力资源管理系统是一种用于企业人力资源管理的信息系统。它可以帮助企业有效控制雇用、培训、工资等成本,减少管理成本和开支。通过使用EHR系统,企业可以实现信息化管理,让人力资源管理延伸到每一位员工,从而有效控制人力成本。\[1\] 在EHR人力资源管理系统的实施过程中,常见的问题包括实施时间较长、需求调研和分析的复杂性、数据导入的困难等。实施过程中需要进行前期准备、需求调研、需求分析、客户化、数据导入、系统使用培训等多个环节,如果不注意,可能会导致系统上线失败。据业内人士称,EHR系统的实施失败率高达60%。\[2\] 另外,EHR人力资源管理系统投入使用后,员工和企业管理层可能会对系统抵触,认为使用麻烦。这是因为需要适应新的工作习惯。为了解决这个问题,实施EHR系统前,应该向企业全员强调业务流程重塑的重要性,并鼓励大家适应新系统。从高层开始对EHR系统的优势有肯定的认识,可以影响底层员工的态度,减少抵触情绪。\[3\] #### 引用[.reference_title] - *1* [eHR人力资源管理信息系统如何助力企业发展?](https://blog.csdn.net/eHR__/article/details/119252499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [eHR人力资源管理系统实施过程中的常见问题有哪些?](https://blog.csdn.net/weixin_42393526/article/details/119689922)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值