资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,07 六月 2025,金蝶HR产品培训-基于考勤系统,提纲,考勤系统安装简述,业务模块二次开发,导入模块扩展开发,考勤计算公式算法实现,1.考勤系统安装简述,考勤系统介绍,考勤系统网络拓扑图,一些术语区别,考勤系统组件部署图,常见安装问题,SQL Server设置,1.1 考勤系统介绍,采用传统的C/S架构,基于DotNET Framework 2.0平台,Remoting技术实现分布式通讯,ClickOnce实现无接触布署与更新,Web服务实现与HR系统解耦,异步和多线程来提高系统性能,1.2 考勤系统网络拓扑图,1.3 一些术语的区别,K3中间层,HR WebService站点,考勤中间层服务器(宿主在IIS或Window服务),考勤ClickOnce站点,考勤客户端,1.4 考勤系统组件部署(1),组织单元,COM+组件,WebService,站点,ClickOnce,站点,中间层,服务器,考勤客户端,考勤系统,K3中间层,考勤客户端,账套,Server,Client,注:WebService在V11以后版本名称为:k3HRWebService,1.4 考勤系统组件部署(2),考勤中间层服务器通过WebService站点来从K3中间层获取组织单元和账套,HR WebService站点:,通过Web服务获取K3中间层的组织单元账套,考勤ClickOnce站点:,可实现以网页形式来发布考勤客户端应用程序站点,支持自动更新,考勤中间层服务器:,实现考勤业务逻辑的组件,可宿主在IIS或Windows服务中,考勤客户端:,提供交互界面的可执行程序,1.5 常见安装问题(1),1.Web服务不可用,现象:,运行考勤客户端程序时,弹出,“,Web服务不可用,”,对话框,原因:,考勤Web服务站点没有安装或中间层指定的Web服务器路径不对,解决方法:,(1),安装考勤Web服务站点,(2)修改中间层服务器配置文件,指定一个可用的Web服务站点地址,1.5 常见安装问题(2),2.服务器地址格式错误,现象:,登录考勤客户端时,弹出,“,服务器地址格式错误,”,对话框,原因:,连接的考勤中间层服务器开启了两个以上相同端口的Windows服务程序,解决方法:,目前考勤中间层应用程序在TCP协议中用的端口号是8185,所以得关掉其中用到该端口号的程序,请参考附件,1.5 常见安装问题(3),3.ClickOnce站点不可用,现象:,安装ClickOnce程序后,通过IE无法访问ClickOnce站点进行安装,原因:,ClickOnce没有配置相关的文件清单,解决方法:,参考安装手册进行ClickOnce站点的配置即可,1.6 SQL Server设置,(业务数据库),磁盘空间必须足够大,故障还原模式,(1)完全-允许将数据库恢复到故障点状态,(2)大容量日志日志记录的-提供对媒体故障的防范,并对某些大规模或大容量复制操作提供最佳性能和最少的日志使用空间,(3)简单-允许将数据库恢复到最新的备份,取消,“,自动收缩,”,取消,“,残缺页检查,”,增长方式:指定M字节的方式,1.6 SQL Server设置,(维护计划),性能优化维护计划,对索引碎片进行整理,提高性能,更新统计信息,保证SQL SERVER生成正确的执行计划,每周执行一次,在业务不繁忙的时候执行,每月整理一次硬盘,依赖,SQL AGENT服务,1.7 我们走到哪里了,考勤系统是一个区别于现有K3和HRWeb系统的全新系统,考勤系统的Server端包括两个站点和一个Windows服务应用程序,考勤客户端程序可通过安装程序和ClickOnce方式来实现安装,管理好数据库以实现最优化性能,2 业务模块二次开发,考勤系统应用程序结构,考勤系统应用程序组件部署图,业务模块开发Step By Step,一些小技巧(Some Tips),系统环境变量,SQL Server 2005 升级问题,2.1 考勤系统应用程序结构,2.2 应用程序组件部署,DB,Server,Faade,Data Access,Server Common,Rule,Resource,业务接口类(BusinessFacade.Interface程序集),公共类(Common程序集),实体类(Model程序集),Client,ATS UI,Report UI,Other UI,Client Common,2.3 业务模块开发,加班管理,(1)Demo,1.导航菜单,2,.,流程图节点,3,.,加班管理窗体,2.3(2)创建新应用程序方案,创建三个工程:,(1)外观层:Kingdee.K3.HR.Demo.BusinessFacade,(2)接口层:Kingdee.K3.HR.Demo.BusinessFacade.Interface,(3)UI层Kingdee.K3.HR.Demo.UI,2.3(3)接口层的实现,声明远程服务接口,public interface IOverTimeBF,当业务模块较小时,可把实体类放在接口层实现,实体类要加上序列化标签,2.3(4)服务器端编码,远程服务对象要继承MarshalByRefObject类,实现接口,public class OverTimeBF:MarshalByRefObject,IOverTimeBF,DataAccess层实现与数据库的交互,BusinessRule层是可选的,别忘了在配置文件公开远程服务,2.3(5)UI层的界面布局,DevExpress的Xtra系列控件,UI层实现数据的验证,还有,远程服,务的注册,2.3(6)入口在哪里?,HRMain.exe通过获取DLL的描述信息反射来调用程序,V11之前的版本描述信息保存在HRMain.exe.config中,V11之后的版本保存在数据库中,详细描述请参考之前的附件文档中有详细的描述;,2.4 Some Tips(1),远程对象创建 Kingdee.K3.HR.ClientCommon.FactoryService.RemotingHelper类工厂,多语言处理,在DB层完成对当前语言字段的获取,Kingdee.K3.HR.Common.Resource.ResourceProxy,2.4 Some Tips(2),提示信息的显示,(1)两种方式状态栏提示和对话框提示,(2)同一个接口 Kingdee.K3.HR.ClientCommon.Public.DialogFactory,(3)TipMessage类,异常处理,KDApplicationException基类,2.4 Some Tips(3),考勤系统数据计算量大,如果长期没有进行数据库维护,会导致很多问题,如界面加载出错等等,这时候需要进行索引重建;,主要业务表数据分析脚本,参见附件:,2.5 系统环境变量,系统环境类Kingdee.K3.HR.Common.Environment,客户端IP、当前目录、最大最小时间,客户端信息类Kingdee.K3.HR.ClientCommon.ClientInfo,登录信息、用户、职员信息,系统约定颜色静态类Kingdee.K3.HR.ClientCommon.BackgroundColor,2.6 SQL Server2005升级问题,90 兼容模式下,不支持外部联接运算符*=和=*,ORDER BY 子句中的列别名不能使用表别名作为前缀,”,union,”,返回的记录集,不支持修改记录集的内容,累加赋值时数据类型的精度需相同,SQL Server 2005可识别,true,或,false,为布尔型,2.7 我们走到哪里了,考勤系统提供了可以方便快捷地加入新的业务模块的程序框架,新业务模块可以与现有各模块共用相同的界面风格、远程接口、消息处理方式等,编程时要注意SQL Server版本的问题,3.导入模块扩展开发,导入模块简介,导入操作流程,主要实现接口,3.1 导入模块简介,终端,终端,终端,指定格式文件,导入导出模块,Component,DB,读数,导出,导入,读数,计算分析,HR ATS,3.2 导入操作流程,自定义业务组件,实现自定义组件,3.3 主要实现接口,Kingdee.K3.HR.ATS.BusinessFacade.,IOTableHandler.IIOTableHandler 接口原型,HRMain.exe.Config文件加上配置结点,增加后界面,3.4 我们走到哪里了,利用考勤系统的导入模块可以扩展,加入自定义表的导入功能,自定义表中业务逻辑检验由用户自行实现,导入模块仍有待完善,4.考勤计算公式算法实现,考勤内置公式介绍,考勤计算公式组成,取职员打卡记录函数算法实现,计算考勤异常处理函数算法实现,4.1 考勤内置公式介绍,考勤计算,考勤汇总,假期额度生成,假期额度重算,考勤自动计算,实时重算假期额度,考勤重算,生成自然年度假期额度,4.1 公式函数涉及到的数据库表,表名,物理名,职员考勤汇总表,HR_ATS_EmpAttendTotal,职员考勤计算信息,HR_ATS_EmpCalcAttend,职员补签卡信息,HR_ATS_EmpEditAttend,职员考勤原始信息,HR_ATS_EmpOriginalAttend,职员排班信息,HR_ATS_EmpRoster,原始打卡信息,HR_ATS_OriginalityCard,职员考勤信息,HR_ATS_BaseInfo,停工单,HR_ATS_DownTime,停工明细,HR_ATS_DownTimeDetail,假期单,HR_ATS_Holiday,假期明细,HR_ATS_HolidayDetail,假期额度,HR_ATS_HolidayLimit,班次信息,HR_ATS_ShiftInfo,调休单,HR_ATS_Tian,调休明细,HR_ATS_TianDetail,出差单,HR_ATS_Trip,出差明细,HR_ATS_TripDetail,周期假期类型额度表(v12.1),HR_ATS_PeriodHolidaylimit,4.2 考勤计算公式组成(V10.4/v11),考勤智能排班,取职员打卡记录,原始考勤异常处理,补签卡计算,计算考勤异常处理,初始化冲消假期,取假期单计算,取出差单计算,取调休单计算,取停工单计算,考勤计算公式函数,算法流程20070907.xls,4.2 考勤计算公式组成(V12),增加按组织单元计算功能,增加对应函数,“,按指定范围获取职员,”“,清除指定范围职员临时表,”,性能优化:增加,“,取计算范围内的原始打卡记录,”,和,“,删除原始打卡记录临时表,”,,不再使用,HR_ATS_OriginalityCardTemp,修改请假出差计算方式,采用精确冲销,取消对应2个函数,替换为,“,取单据精确计算,”,4.2 考勤计算公式组成(V12.1),考勤计算时直接进行汇总,实现如下:,Exec p_HR_ATS_AttendTotal BeginDate,EndDate,UnitIDs,EmpIDs;,自定义:复制新增加考勤汇总公式,复制新增考勤计算,将新增加的考勤汇总公式物理名替换上面p_HR_ATS_AttendTotal 即可;,增加调休假处理:exec p_HR_ATS_TianHlidayCalc BeginDate,EndDate,UnitIDs,EmpIDs;自定义同上;,删除取停工、调休计算,停工调休统一为一种假期类型。,4.3 取职员打卡记录函数算法,函数原型:,取职员打卡记录(BeginDate,EndDate,Interval),功能:根据取卡规则,从原始打卡记录中获取职员考勤的上、下班时间,相关数据表,NO,数据表名,描述,1,HR_ATS_OriginalityCard,原始打卡记录,2,HR_ATS_OriginalityCardTemp(v12后 使用,#TempOriginalityCard),原始打卡记录临时表,3,HR_ATS_BaseInfo,员工考勤信息,4,HR_ATS_ShiftInfo,班次信息,5,HR_ATS_EmpRoster,职员排班信息,6,HR_ATS_EmpOriginalAttend,职员考勤原始信息,7,HR_ATS_EmpCalcAttend,职员考勤计算信息,4.3 计算考勤异常处理函数算法,函数原型:,计算考勤异常处理(BeginDate,EndDate),功能:计算一个时间段内的计算考勤记录的迟到、早退、旷工、加班,相关数据表,NO,数据表名,描述,1,HR_ATS_ShiftInfo,班次信息,2,HR_ATS_EmpCalcAttend,职员考勤计算信息,3,HR_ATS_EmpOriginalAttend,职员考勤原始信息,4,HR_ATS_OverTimeInfo,加班单信息,4.4 我们走到哪里了,考勤系统公式 的原形是存储过程,考勤计算公式是公式的关键,由多个函数组成,用户可以通过公式平台来定制公式,
展开阅读全文