2023年7月13日发(作者:)
K/3HR考勤系统实施
常见难点及解决方案
[K/3分析设计部] [吴纯]
[K/3Hr开发部] [李若愚]
导读
以近期的一些原型客户实际业务场景为例,总结考勤系统实施常见难点及解决方案,供实施
人员参考。本次总结以下三个需求应用背景及其解决方案:
1.中夜班次数统计:考勤汇总表能根据客户自定义的规则统计中班次数和夜班次数;
2.段内公出异常处理:减少考勤计算以后,段内请假造成的旷工异常;
3. 汇总统计请假时长:考勤汇总表根据请假单统计各类假期请假时长。
请注意:本文件只作为基础介绍之用,不属于您与金蝶签署的任何协议。本文件仅包括金蝶既定策略、产品及功能方面的信息,不能以本文件作为要求金蝶履行商务条款、产品策略以及开发义务的依据。本文件内容可能随时变更,恕不另行通知。金蝶对本文件可能存在的错误或疏漏不承担任何责任。
目 录
1.
2.
客户需求点: ............................................................................................................................................................... 3
客户业务及应用场景: ............................................................................................................................................. 3
中夜班次数统计: ............................................................................................................................................. 3
段内公出异常处理: ......................................................................................................................................... 3
汇总统计请假时长: ......................................................................................................................................... 4
2.1
2.2
2.3
3.
解决方案: ................................................................................................................................................................... 4
中班、夜班统计: ............................................................................................................................................. 4
公出假处理: ...................................................................................................................................................... 5
汇总统计请假时长: ......................................................................................................................................... 6
3.1
3.2
3.3
K/3HR考勤系统实施常见难点及解决方案
根据机构实施及客户对考勤系统实施与使用过程中的困难反馈,汇总了一些客户常用业务场景中较普遍的需求满足及异常处理的二次开发解决方案供机构实施参考,以降低考勤项目实施难度、缩短交付周期。以下的需求点及解决方案是以近期的一些原型客户实际业务场景为例,可能部分为较个性需求,供参考:
1. 客户需求点:
1.中夜班次数统计:考勤汇总表能根据客户自定义的规则统计中班次数和夜班次数;
2.段内公出异常处理:减少考勤计算以后,段内请假造成的旷工异常;
3. 汇总统计请假时长:考勤汇总表根据请假单统计各类假期请假时长。
2. 客户业务及应用场景:
2.1 中夜班次数统计:
客户需对中班、夜班给付不同的餐补,需根据不同的班次及加班时间在考勤汇总中统计出员工的中、夜班次数。具体场景如下:
场景一:
上中班员工统计中班次数(2种类型);
上夜班员工统计记夜班次数(7种类型)。
中班员工迟到或旷工,但上班时间>=3小时,且加班至23:00后,计中班1次,否则不计;
同理,夜班员工迟到或旷工,但0:00后连续上班且满3小时计夜班1次,否则不计。
举例:16:00-23:00中班班次,某员工上班时间是20:30-23:00,不足3小时,则不记中班次数,夜班同理。
场景二:
(1)非中夜班员工晚上加班超过23:00,且连续加班满3小时记中班次数1次;
(2)连续加班时中班、夜班次数不重复计,如0:00之后连续加班满3小时则只记夜班次数1次。
举例:中班员工继续加班满足场景二(2)的条件则只记夜班1次次。
2.2 段内公出异常处理:
为管控到段内的卡,系统段内取下班卡规则为取段内下班最早卡,客户业务中由于中途出门办事或中途调休出现较多因公段内卡造成旷工异常。
K/3HR考勤系统实施常见难点及解决方案
场景:某员工上的常白班班次为(8:00-11:30,13:00-17:00),该员工一天刷了6次卡(7:32,11:37,12:54,14:33,15:24,17:44)该员工下午出门办事(刷卡时间为14:33-15:24,出差单时间为14:15-15:45,实际出差时间小于出差单时间),考勤计算时会自动取此段最早下班卡为14:33,除出差单冲销的时长外,仍会计旷工1.75小时。)
开发思路说明:
增加假期类型--“公出假”,修改“取职员打卡记录”函数。在每段写临时表的前面,先判断每段中间有没有公出和调休的假单,如果有假单并且有打卡记录在假单的开始时间和结束时间点内,再判断一下后面的打卡记录是否正常下班,如果满足以上条件,就将这两次打卡记录从临时表中删除。目的是在考勤计算的同时不记这类异常。
2.3 汇总统计请假时长:
客户需要一段时间后汇总全员的某些假期的请假时长来辅助分析管理问题,如产假总时长、病假总时长、事假总时长等。
场景:以考勤汇总年假请假时长为例。
3. 解决方案:
3.1 中班、夜班统计:
(1)进入K3 GUI,HR数据字典设置中增加2个字段,分别是中班次数统计、夜班次数统计,并在数据库中把这两个字段对应的物理字段查找处来;
(2)复制新增汇总公式,保存,关闭公式设置;
(3)进入函数设置,新增统计中班夜班函数,将附件中内容复制到函数中,
并修改对应的物理字段,共有3处地方,如下图:
K/3HR考勤系统实施常见难点及解决方案
(4)进入公式设置,将新增加的函数添加到新增的汇总公式的{考勤汇总(@BeginDate,@EndDate)};之后,保存该公式。
3.2 公出假处理:
(1)复制新增考勤计算公式,关闭公式设置;
(2)进入函数设置,新增加公出假取卡处理函数,将附件中内容保存到该函数,如下图:
(3)进入公式设置,选择新增加的公式,将该函数添加到{取计算范围内的原始打卡记录(@BeginDate,@EndDate)};函数之后,如下图:
K/3HR考勤系统实施常见难点及解决方案
3.3
统计的数据。
汇总统计请假时长:
在K/3 GUI数据字典中为考勤汇总表新增加类试“年假假单请假时长”字段,字段取决于所需要(1)在K/3 GUI数据字典中为考勤汇总表新增加类试“年假假单请假时长”字段,字段取决于所需要统计的数据。
(2)进入考勤函数设置,新增加考勤汇总统计请假时长函数,名字按你需要的起,如:考勤汇总统计年假请假时长。
参数为:(@BeginDate,@EndDate)
函数体为:
/*****************************************************************
功能:汇总一个时间段内职员的考勤请假时长统计数据
参数:
@BeginDate DateTime 开始日期
@EndDate DateTime 结束日期
*****************************************************************/
--创建临时表,存放统计时长数据
K/3HR考勤系统实施常见难点及解决方案
Create Table #temp
(
)
--将某一假期的统计时长写入临时表。按时间单位为“天”的情况统计
Declare @shiftLen Decimal(6,2)
Select @shiftLen=FLaborHour From HR_ATS_ShiftInfo Where FshiftID=1000
Insert Into #temp(FEmpID,FAttendDay,FTotalLength)
select ,dDay,
sum( case
else
isnull(nullif(h,0),0)/isnull(nullif(Hour,0) ,@shiftLen)
)
from HR_ATS_EmpAttendTotal AttendTotal
Left join
(select ,ayTypeID,s,fday,
Date,h
from HR_ATS_Holiday a
inner join HR_ATS_HolidayDetail holidaydetail
On ayID = ayID
where ayTypeID=25 --取年假类型
And s=5 --假单为已审核状态
end
when fDay=1 then 0.5
FEmpID uniqueidentifier,
FAttendDay DateTime,
FTotalLength decimal(6,2)
) holiday
on dDay = Date and
=
Left Join HR_ATS_EmpRoster roster on = and
Date =
K/3HR考勤系统实施常见难点及解决方案
Left Join HR_ATS_ShiftInfo info on ID = ID
where dDay Between @BeginDate And @EndDate
group by ,dDay
--更新前先将自定义字段值清零
Update HR_ATS_EmpAttendTotal
set [年假假单请假时长]=0
where FAttendDay Between @BeginDate And @EndDate
--更新考勤汇总表中用户自定义字段的值
Update AttendTotal
set AttendTotal.[年假假单请假时长]=Length
from HR_ATS_EmpAttendTotal AttendTotal ,#temp temp
where = and
dDay=dDay
--删除临时表
Drop Table #temp
需要注意的几点:
a.若统计请假时长是按单位为“小时”统计时,则需要将以上统计的代码片段部分替换为,
--将某一假期的统计时长写入临时表。按时间单位为“小时”的情况统计
Insert Into #temp(FEmpID,FAttendDay,FTotalLength)
select ,dDay,
sum( case
when fDay=1 then
isnull(nullif(Hour,0) ,@shiftLen)/2
)
from HR_ATS_EmpAttendTotal AttendTotal
end
else isnull(nullif(h,0),0)
K/3HR考勤系统实施常见难点及解决方案
Left join
(select ,ayTypeID,s,fday,
Date,h
from HR_ATS_Holiday a
inner join HR_ATS_HolidayDetail holidaydetail
On ayID = ayID
where ayTypeID=25 --取年假类型
And s=5 --假单为已审核状态
) holiday
on dDay = Date and
=
Left Join HR_ATS_EmpRoster roster on = and
Date =
Left Join HR_ATS_ShiftInfo info on ID = ID
where dDay Between @BeginDate And @EndDate
group by ,dDay
b.本例中的 AttendTotal.[年假假单请假时长] 应为实际新增“年假假单请假时长”字段的物理名称。
C.如果统计的为其他假期类型的请假时长,只需更改 ayTypeID=25 相应的类型值和AttendTotal.[年假假单请假时长] 字段的物理名称即可。
(3)进入考勤公式设置,复制新增加考勤汇总公式,起名你所需要的,在考勤汇总函数后加上以下代码。修改该公式为:
{考勤汇总(@BeginDate,@EndDate)};
{考勤汇总统计年假请假时长(@BeginDate,@EndDate}};
(4)保存该公式,在考勤公式中使用该公式进行汇总计算,即可得到对应的数据。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689246138a225604.html
评论列表(0条)