php版本 悟空crm自主开发HR人力资源模块(定制开发)

PHP开发好的人力资源管理功能,人事行政部门可以轻松管理、人员招聘、简历管理、offer管理、人员面试等等日常工作,帮助企业提升工作效率

1、自己开发的部分CRM核心代码披露:

// 员工提醒 (转正之前一周显示提醒)

 public function remind()
    {
        $sdate = date('Y-m-d');
        $edate = date('Y-m-d', strtotime('+1 week', strtotime(date('Y-m-d'))));
        // echo $date;exit;
        $data = model('Offer')->alias('o')
                ->join('hrm_option ho', 'ho.id=o.classId')
                ->field('o.*,ho.op_txt as classId_txt')
                ->where('o.zzzr','>=', $sdate)
                ->where('o.zzzr','<=', $edate)
                ->where('o.check_status', 2)
                ->order('o.zzzr asc')
                ->select();
        return resultArray(['data' => $data]);
    }

//用户信息导出

 public function excelExport()
    {
        $param = $this->param;
        $userInfo = $this->userInfo;
        $param['user_id'] = $userInfo['id'];
        $action_name = '导出';
        // $action_name = '导出全部';
        // if ($param['customer_id']) {
        //     $param['customer_id'] = ['condition' => 'in', 'value' => $param['customer_id'], 'form_type' => 'text', 'name' => ''];
        //     $action_name = '导出选中';
        // }
        $excelModel = new \app\admin\model\Excel();
        // 导出的字段列表
        $fieldModel = new \app\admin\model\Field();
        $field_list = $param['fieldList'];
        // 文件名
        $file_name = 'offer_' . date('Ymd');

        $model = model('Offer');
        $temp_file = $param['temp_file'];
        unset($param['temp_file']);
        $page = $param['page'] ?: 1;
        unset($param['page']);
        unset($param['export_queue_index']);
        RecordActionLog($userInfo['id'], 'hrm_offer', 'excelexport', $action_name, '', '', '导出offer');
        return $excelModel->batchExportCsv($file_name, $temp_file, $field_list, $page, function ($page, $limit) use ($model, $param, $field_list) {
            $param['page'] = $page;
            $param['limit'] = $limit;
            $data = $model->getDataList($param);
            $data['list'] = $model->exportHandle($data['list'], $field_list, 'hrm_offer');
            return $data;
        });

    }

2、人力资源的菜单

在这里插入图片描述

3、创建招聘需求:

在这里插入图片描述

4、简历管理的列表页:

在这里插入图片描述

5、面试者的个人信息都会记录到系统的,实现企业无纸化办公:

在这里插入图片描述

6、面试者的面试记录过程都会记录到系统里面的:

在这里插入图片描述

7、面试转态,是否通过还是被pass都会记录下来的

在这里插入图片描述

<?php

namespace app\hrm\model;

use app\admin\controller\ApiCommon;
use app\admin\model\User;
use app\admin\traits\FieldVerificationTrait;
use think\Db;
use app\admin\model\Common;
use think\response\Json;

class Miansjl extends Common
{
    use FieldVerificationTrait;

	protected $name = 'hrm_miansjl';
    protected $createTime = 'create_time';
    protected $updateTime = 'update_time';
	protected $autoWriteTimestamp = true;

}
public function getDataList($request)
{
    # 格式化参数
    $request    = $this->fmtRequest( $request );
    $requestMap = $request['map'] ? : [];

    # 普通筛选
    $searchMap = [];
    if(isset($request['khmcId']) && $request['khmcId']){ //客户名称
        $searchMap['bring.khmcId'] = ['=', $request['khmcId']];
    }
    if(isset($request['zprq']) && $request['zprq'] && isset($request['zprq2']) && $request['zprq2']){ //发布日期
        $searchMap['bring.create_time'] = [ ['>=',$request['zprq']], ['<=',$request['zprq2']], 'and'];
    }else if(isset($request['zprq']) && $request['zprq']){
        $searchMap['bring.create_time'] = ['>=',$request['zprq']];
    }else if(isset($request['zprq2']) && $request['zprq2']){
        $searchMap['bring.create_time'] = ['<=',$request['zprq2']];
    }
    if(isset($request['zpzw']) && $request['zpzw']){ //招聘职位
        $searchMap['bring.zpzw'] = ['like', '%'.$request['zpzw'].'%'];
    }
    if(isset($request['chengs']) && $request['chengs']){ //城市
        $searchMap['bring.chengs'] = ['like', '%'.$request['chengs'].'%'];
    }
    if(isset($request['zpzyId']) && $request['zpzyId']){ //招聘专员
        $searchMap['bring.zpzyId'] = ['=', $request['zpzyId']];
    }
    if(isset($request['is_zt']) && $request['is_zt']){ //状态
        $searchMap['bring.is_zt'] = ['=', $request['is_zt']-1];
    }
    
    if(isset($requestMap['is_zt']) && $requestMap['is_zt']){ //状态
        $searchMap['bring.is_zt'] = ['=', $requestMap['is_zt']];
    }
    
    if(isset($requestMap['ids']) && $requestMap['ids']){
        $searchMap['bring.id'] = ['in', $requestMap['ids']];
    }
    if(isset($requestMap['khmcId']) && $requestMap['khmcId']){ //客户名称
        $searchMap['bring.khmcId'] = ['=', $requestMap['khmcId']];
    }
    if(isset($requestMap['postName']) && $requestMap['postName']){ //招聘职位
        $searchMap['bring.zpzw'] = ['like', '%'.$requestMap['postName'].'%'];
    }

    # 排序
    // if ($order_type && $order_field && $order_field != 'owner_user_structure_name') {
    //     $order = $fieldModel->getOrderByFormtype('crm_customer','customer',$order_field,$order_type);
    // } else {
        $order = 'bring.update_time desc';
    // }

	$list = db('hrm_bring')->alias('bring')
            ->where($map)
            ->where($searchMap)
            ->limit($request['offset'], $request['length'])
            // ->field($indexField)
            ->orderRaw($order)
            ->select();

    $totalRow = db('hrm_bring')->alias('bring')
            ->where($map)
            ->where($searchMap)
            ->count();

    foreach($list as $key=>$row){
        $list[$key]['create_time_txt'] = date('Y-m-d H:i:s', $row['create_time']);

        $khmcId_name = db('crm_customer')->where(['customer_id' => $row['khmcId']])->value('name');
        $khmcId_info = [
            'customer_id' => $row['khmcId'],
            'name' => $khmcId_name,
        ];

        $list[$key]['khmcId_name'] = $khmcId_name;
        // $list[$key]['khmcId'] = $khmcId_info;

        if(!$row['jjcdId']) $list[$key]['jjcdId'] = '';

        $zpzyId_name = db('admin_user')->where(['id' => $row['zpzyId']])->value('realname');
        $list[$key]['zpzyId_name'] = $zpzyId_name;
        
        $nUserId_name = db('admin_user')->where(['id' => $row['nUserId']])->value('realname');
        $list[$key]['nUserId_name'] = $nUserId_name;

        // 招聘人数(需求人数)
        $rs = intval($row['rs']);
        if($rs>0){
            // 入职人数
            $list[$key]['sjmzrs'] = Resume::alias('resume')
                                    ->join('(select msztId,nParentId,msrqsjian,create_time from 5kcrm_hrm_miansjl where id in (select max(id) from 5kcrm_hrm_miansjl group by nParentId)) ms', 'ms.nParentId=resume.id', 'left')
                                    ->where('resume.bring_id', $row['id'])
                                    ->where('ms.msztId','142')
                                    ->where('ms.msrqsjian','<=',strtotime($row['qwmzsj'].' 23:59:59'))
                                    ->count();

            // 满足率计算= 入职人数/需求人数 (只计算在新增需求--期望满足时间期内)
            $list[$key]['xqmzl'] = round($list[$key]['sjmzrs'] / $rs * 100, 2);

            $mslist_temp = Resume::alias('resume')
                                    ->join('(select msztId,nParentId,msrqsjian,create_time from 5kcrm_hrm_miansjl where id in (select max(id) from 5kcrm_hrm_miansjl group by nParentId)) ms', 'ms.nParentId=resume.id', 'left')
                                    ->where('resume.bring_id', $row['id'])
                                    ->where('ms.msztId','142')
                                    ->order('ms.msrqsjian asc')
                                    ->limit($rs)
                                    ->select();
            $list[$key]['sjmzsj'] = isset($mslist_temp[$rs-1]['msrqsjian'])?date('Y-m-d', $mslist_temp[$rs-1]['msrqsjian']):'';
        }else{
            $list[$key]['xqmzl'] = 0;
            $list[$key]['sjmzsj'] = '';
        }

        $list[$key]['check_status_info'] = $this->statusArr[$row['check_status']];
        $list[$key]['create_user_id_info'] = isset($row['create_user_id']) ? $userModel->getUserById($row['create_user_id']) : [];
    }

    $data = [];
    $data['list'] = $list ? : [];
    $data['totalRow'] = $totalRow ? : 0;
    return $data;
}

8、悟空crm安装搭建、二次开发、技术交流的可以 扫一扫
在这里插入图片描述

  • 23
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
悟空HRM系统是一款开源免费的通用人力资源管理软件,采用先进的LAMP架构,具有良好的开放性、可扩展性、安全性和透明性;我们以HRM理念为基础,结合长期合作的用户向我们提出的建议,悟出了企业管理之道,形成了自身特有的特点和优势,志在为改善企业管理能力,实现企业信息化等方面提供现实有效的支持和帮助。 【主要特点】 > 开放源代码:用户可以免费使用; > 用户数不限:您可以在后台任意添加、修改、删除用户帐号; > 使用期不限:一次安装,终身使用; > 跨区域使用:基于B/S架构,只要通过可以连接互联网的设备,就可以随时使用; > 注重核心管理:帮助企业智能化管理薪资福利和考勤排班; > 安装简单:只需数秒即可全部安装完毕,正式开始使用; > 操作简单:系统流程设计简捷,功能实用,使用起来非常方便; > 个性定制:可以根据客户需要做个性化定制开发,满足客户更多的个性化需求; 【使用悟空HRM的好处】 > 操作便捷,功能使用 > 帮助企业提高企业人力资源管理水平 > 促使人力资源更有效的服务于组织或团体目标 > 丰富报表提供大量统计数据 > 安排调整培训计划,加强员工职业素养 > 合理安排薪资福利,避免员工频繁跳槽 > 完整管理人事档案 > 掌握员工的生产能力与投入成本的关系 > 科学评估执行效果,发现能力短板 > 维持竞争优势,适时作出调整 > 有效的促使组织经营目标的达成 > 方面员工查询个人信息记录 > 实现及时响应,快速决策 【悟空HRM的目标】 1、促进组织目标的达成。 人资主管可以清晰了解到公司的经营目标,帮助人资主管掌握全局经营观念。 2、帮助企业训练高素质员工,为公司培养贴合自身需求的得力员工。 通过悟空HRM系统,可以帮助企业管理员工培训,使管理层快速准确了解到员工职业素质水平,帮助员工提升个人能力。 3、协同工作,提高工作效率。 悟空HRM系统可以有效的将薪资福利、考勤排班、培训计划整合在一起,帮助企业各个部门协同处理问题,提高工作效率。 4、及时了解企业人力资源状况,合理配置人力资源。 帮助企业预知人力资源短缺,及时招聘与调动岗职位,以达到人力资源最有配置 5、提高员工满意度,防止频繁跳槽。 一目了然的薪资福利管理可帮助员工随时查阅奖惩与福利,使员工清晰了解到薪资发放依据,提高员工满意度,避免员工频繁跳槽给企业带来的损失。 6、多种绩效考核方式,评估员工工作能力。 在绩效考核中,可自己设置考核内容以生成考核模板。通过启用考核模板并设置评分对象和考核对象可以完成多人同时评分,准确把握员工各种能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值