A-A+
通达OA-人事档案数据丢失?添加操作日志
在企业人事管理系统中,因为有多个分公司,导致OA人事档案会有多个人力资源专业,他们拥有人事档案管理的权限,甚至出现管理员用户滥用的情况。
最近一家客户单位总是反馈说系统有问题数据总是丢失,我第一反应是想说明系统的可靠性和稳定性,真是幼稚,你怎么直观的给客户证明呢?其实解决办法很简单,记录操作日志几句代码就搞定,何必说那么多客户听不懂的,自己也讲不明白的。
我这个是最简单的方式,就是记录操作人、执行时间、执行的sql。虽然sql很专业,但里面的数据人人都能看懂是吧。为了方便定位,归档类型分2中,按“部门文件夹/员工姓名文档”和“年月文件夹/日文档”归档。
直接把下面代码放到MYOA\webroot\general\hr\manage\staff_info\update.php里面即可
//start 添加更新记录到操作日志 $logday = date('Y-m',time()); $logpath = 'D:/oalog/'.$logday.'/'; $logname = $logpath.date('Y-m-d',time()).'.txt'; if (! file_exists ( $logpath )) { mkdir ( $logpath, 0777, true ); } $log_contents = '时间:'.date('H:i:s').PHP_EOL; $log_contents .= '操作人:'.$_SESSION["LOGIN_BYNAME"].PHP_EOL; $log_contents .= '编辑用户USER_ID:'.$USER_ID.PHP_EOL; $log_contents .= '操作内容:'.$query.PHP_EOL.PHP_EOL; file_put_contents($logname, $log_contents, FILE_APPEND); //按人归档 $the_dep_name = GetDeptNameById($DEPT_ID); $logpath2 = 'D:/oalog/'.$the_dep_name.'/'; if (! file_exists ( $logpath2 )) { mkdir ( $logpath2, 0777, true ); } $log_contents2 = '时间:'.date('H:i:s').PHP_EOL; $log_contents2 .= '操作人:'.$_SESSION["LOGIN_BYNAME"].PHP_EOL; $log_contents2 .= '操作内容:'.$query.PHP_EOL.PHP_EOL; $filename = GetUserNameById($USER_ID).$USER_ID; $logname2 = $logpath2.$filename.'.txt'; file_put_contents($logname2, $log_contents2, FILE_APPEND); //end 记录操作日志
当然你也可以设置为按操作人归档。下面是人事档案附加数据的操作日志,比如:合同、奖惩、培训、工作经历、岗位轨迹、人事关系等等。放的位置和上面不一样,因为多,我就不一一列出了,因为非必须,只是贴上代码,代码需对应调整。
//start 添加更新记录到操作日志 $logday = date('Y-m',time()); $logpath = 'D:/staffinfo/contract/time/'.$logday.'/'; $logname = $logpath.date('Y-m-d',time()).'.txt'; if (! file_exists ( $logpath )) { mkdir ( $logpath, 0777, true ); } $log_contents = '时间:'.date('Y-m-d H:i:s',time()).PHP_EOL; $log_contents .= '操作人:'.$_SESSION["LOGIN_BYNAME"].PHP_EOL; $log_contents .= '编辑用户STAFF_NAME:'.$STAFF_NAME.PHP_EOL; $log_contents .= '编辑合同CONTRACT_ID:'.$CONTRACT_ID.PHP_EOL; $log_contents .= '操作内容:'.$query.PHP_EOL.PHP_EOL; file_put_contents($logname, $log_contents, FILE_APPEND); //按操作人归档 $logpath2 = 'D:/staffinfo/contract/operator/'; if (! file_exists ( $logpath2 )) { mkdir ( $logpath2, 0777, true ); } $log_contents2 = '时间:'.date('Y-m-d H:i:s',time()).PHP_EOL; $log_contents2 .= '操作人:'.$_SESSION["LOGIN_BYNAME"].PHP_EOL; $log_contents2 .= '操作内容:'.$query.PHP_EOL.PHP_EOL; $filename = $_SESSION["LOGIN_BYNAME"]; $logname2 = $logpath2.$filename.'.txt'; file_put_contents($logname2, $log_contents2, FILE_APPEND); //end 记录操作日志