s-HR人力编制逻辑,表结构及工具类总结

【适用版本】
s-HR V8.5SP1及以上版本
【注意事项】
s-HR V8.6.1.2之后新增多维编制,多维编制和人力编制关于编制,维度,起初人数等概念含义是一样的,但是多维编制可设置多个维度的控编,表结构和工具类也不同于人力编制,本文只介绍人力编制相关内容。
【功能说明】
1、编制概念
1.1 编制是什么?做什么?
其实大家都懂编制是什么意思,一个职位给多少编制就能入多少人,就这个意思。进而可以引申到组织的编制,以及其它维度的编制设置。
通过设置某一维度的编制,比如职位,可以控制职位的编制人数,方便细微的管控此职位的占编人数变化,达到集团人员管控的目的。
1.2 什么是占编制
目前系统业务对“占编制”的定义是:任职占编制并且用工关系状态占编制。需要注意的是“占编制”和“占人头”是两个概念,不要混淆。
任职占编制:可以通过EAS客户端 —> 员工变动操作配置查看,任职为主任职并且变动类型占编制即为任职占编制。
用工关系状态占编制: 可以通过员工基础资料数据维护 —> 用工关系状态 查看是否占编制。
获取当前的占编人数:可以通过员工信息维护页面的高级过滤

1.3 维度和频度
老编制系统编制的设置固定为三个维度,分别是组织、职位、用工关系
频度有两个,分别为年、月
即老编制系统支持3个维度和2个频度的组合控编
1.4 期初人数
编制期初人数指:上月月底时刻的人数,不是当前时间的占编人数,是以变动记录表为主体
比如当前是2020年12月份,则12的期初人数是取的2020-11-30 23:59:59 的占编人数
1.5 流入流出
流入流入指:当前组织或职位的人数流入或者流出,以流入流出表为主体
单据未生效则为预计流入流出,有在途数据;单据生效则变为实际流入流出,删除在途数据
1.6 汇总编制、直属编制
以组织来说,组织是有层级的。
A组织的汇总编制就是A组织包含下级的编制数,也就是A组织直属编制 + A组织下级组织编制之和。
A组织的直属编制就是字面的意思,就是A组织自身的编制数,不包含下级的编制,其实也就是组织下职位的编制之和的最大数量。
需要注意的是,编制表页面上展示的是汇总编制,如果只导入直属编制,那么在编制表页面是没有数据显示的。
1.7 定编明细
处理提单时,很多人问定编明细是什么意思?甚至有些人把编制数据写到定编明细字段中,然后问为什么编制没有生效…
据我理解及咨询德马,定编明细这个字段没有用处,没有实际的业务意义;
它可以被理解为或者用做 “备注”。比如原来打算给A组织设置10个编制,于是可以给定编明细设置为10,具体编制也为10,后来由于各种各样的理由,A组织的编制更改了很多次,变成了16,这时候可以不忘初心看到定编明细,明白了自己的初衷是10.
由此看到,定编明细确实没什么用,不用过多关注。
2、页面及对应功能
人力编制模块主要包括四个页面,分别是人力编制表、人力编制控制线、人员需求申请、人力编制动态预览。其中核心和最常用的是人力编制表、人力编制动态预览。

2.1 人力编制表
人力编制表可录入基于行政组织、职位、用工关系维度的人力编制,同时也支持年度、月度的人力编制维护,是编制系统最核心的部分,用于建立编制表并录入编制数据。
(PS: 用工关系维度的编制在实际业务中很少有人使用,主要还是组织维度、职位维度,或者组织+职位)

2.2 人力编制动态预览
人力编制动态预览可以查询各行政组织、职位、用工关系状态下的编制数、实际人数、流入流出及可用编制人数情况,各维度的编制情况一览无遗,是业务人员最常用的功能。

2.3 人力编制控制线
人力编制控制线支持自上而下人力编制,上级可以控制下级行政组织的编制总数不能超过控制线。
说白了就是可以给组织设置一条线,设置的编制数不能超过这条线,不选控制线的话,编制数就不限制填写。
(PS:控制线在实际业务上基本没人使用)

2.4 人员需求申请
用人部门提交人员需求申请,可支持增补人员申请及扩编申请流程。
人员需求申请的初衷是正规的增编流程,比如一个编制表已经填好了编制并启用了,A职位的占编人数已满,但是现在A职位需要再入职一个人,那么就可以走人员需求申请,通过工作流审批增加编制。当然了,编制表提供了变更的功能,可以直接改编制。
人员需求申请功能存在一定的缺陷,详见后文。

3、主要实现类
3.1 人力编制表
com.kingdee.shr.costbudget.web.handler.StaffingListHandler
com.kingdee.shr.costbudget.web.handler.StaffingHandler (编制表的最重要handler)
com.kingdee.shr.costbudget.util.StaffingExcelUtil(Excel工具类,主要是全量导入的逻辑)
com.kingdee.shr.costbudget.util.StaffingHelper(编制工具类)
3.2 人力编制动态预览
com.kingdee.shr.costbudget.web.handler.StaffingStatHandler(动态预览页面的数据)
com.kingdee.shr.costbudget.util.StaffingStatHelper(期初人数、流入流出等重要的SQL)
3.3 人员需求申请
com.kingdee.shr.costbudget.web.handler.StaffingAddBillEditHandler(表单)
com.kingdee.shr.costbudget.web.handler.StaffingAddBillListHandler(列表)
3.4 人力编制控制线
目前业务来看并不重要:
com.kingdee.shr.costbudget.web.handler.StaffingControlEditHandler(表单)
com.kingdee.shr.costbudget.web.handler.StaffingControlListHandler(列表)
3.5 编制历史表处理
“变更中”状态的编制走的是历史表,不过尽量不要在变更中去处理提单,麻烦!等它生效
com.kingdee.shr.costbudget.web.handler.StaffingHisListHandler
com.kingdee.shr.costbudget.web.handler.StaffingHisViewHandler
4、主要数据表
4.1 编制重要表
T_HR_staffing 人力编制表
T_HR_staffingOrg 组织编制数据表
T_HR_staffingPost 职位编制数据表
T_HR_staffingLaborRelation 用工关系编制数据表(基本不用)
文章不会提供数据字典,如有需要可通过s-HR系统下载数据字典查看。
4.1.1 T_HR_Staffing
记录人力编制列表的信息,通过此表关联组织、职位编制表的具体数据
4.1.2 T_HR_StaffingOrg
记录组织的具体编制数据,通过字段FStaffing和人力编制表关联
查询数据:SELECT * FROM t_hr_staffingorg where FStaffing = '' and FAdminOrgUnit = '' and FMonth = 0 ; 再加一个FState就可以唯一确定一条数据。
FMonth = 0即查询年度编制,为1-12 即查询月份具体编制,查询根据频度来定。
表里面是设计了年度编制两个字段的,后面应该是弃用了,不要产生误解。
4.1.3 T_HR_StaffingPost
记录职位的具体编制数据,和组织编制表差不多,多了个职位字段,相当于编制具体到组织下面的职位了。组织、职位,组织+职位是最常用的控编组合。
4.2 相关重要表
T_BD_PersonHis 员工历史表
T_HR_EmpOrgRelation 员工变动记录表
这两张表是编制获取期初人数的关键表。
T_HR_EmpFlowInOut 流入流出表
计算编制流入流出的关键表。
T_HR_EmpPosChangeData 任职经历变化过程表(在途数据)
单据还没有正式生效时的在途数据,生效后事务删除,编制的计算要算入在途表的数据。
5、重要OSF和方法
5.1 GetStaffingStateService
编制最重要的OSF,各控编入口调用,返回控编结果。
参数说明:
adminOrg.id: 需要获取编制状态的 行政组织 id值 ,非必填
position.id: 需要获取编制状态的 职位id值,非必填
employeeModle.id: 需要获取编制状态的 用工关系的id值,非必填
hassub:是否包含下级
bizDate:取数参考时间,时间格式yyyy-MM-dd 或者:yyyy-MM-dd HHss。
返回值:
orgId: 缺编组织id
orgName: 缺编组织名称
positionId: 缺编职位id
positionName: 缺编职位名称
labelRelationId: 用工关系类型id
labelRelationName: 用工关系类型名称
isStaffingShort: 是否缺编
shortNumber: 缺编数量
5.2 SHRPersonCountOfPersonPlanService
获取当前编制人数及在途人数,GetStaffingStateService中有调用此OSF计算可用编制。
参数说明:
adminOrg.id: 需要获取编制状态的 行政组织 id值 ,非必填
position.id: 需要获取编制状态的 职位id值,非必填
employeeModle.id: 需要获取编制状态的 用工关系的id值,非必填
hassub:是否包含下级
bizDate:取数参考时间,时间格式yyyy-MM-dd 或者:yyyy-MM-dd HHss。
返回值:
subPersonCount : 在途需减少编制人数
addPersonCount: 在途需添加编制人数
personCount: 当前实际在编人数
5.3 SHRActionVerifyByPersonPlanCustomerTool工具类
编制校验拓展工具类:
此工具类封装了入编制和去编制的一些校验方法,以及单据提交审批、撤销、删除时需要处理编制数据的相关方法,如果入转调离使用
s-HR人力编制逻辑,表结构及工具类总结
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



