isAjax()) { $param = request()->all(); $where = []; $model = new Patroltasks(); $project_id = isset($param['project_id']) ? $param['project_id'] : ''; if (!empty($project_id)) { $where[] = ['engineering_id', '=', $project_id]; } if (!empty($param['cycle_type'])) { $where[] = ['cycle_type', '=', $param['cycle_type']]; } if (!empty($param['nickname'])) { $where[] = ['report_user_name', 'like', '%' . $param['nickname'] . '%']; } $list = $model->getPaginateList($where, ['*'], ['id' => 'desc'], [], $param['limit']); if($list['total']>0) { foreach ($list['data'] as $key => $item) { $projectname = ''; $whereao = [['id','=',$item['project_id']]]; $projectItem = ((new AdminOrg())->findOne($whereao,'name'))['data']; if (!empty($projectItem)) { $projectname = $projectItem['name']; } $list['data'][$key]['projectname'] = $projectname; $list['data'][$key]['risk_management_name'] = (new Management())->where(['id'=>$item['risk_management_id']])->value('name'); $list['data'][$key]['role_name'] = (new AdminRole())->where(['id'=>$item['role_id']])->value('name'); } } return sparkSuccess(dataReturn(0, 'success', $list)); } return view('bomb/patroltasks/index'); } /** * 重置巡检记录 * @param Request $request * @return \support\Response */ public function resetting(Request $request){ if ($request->isAjaxPost()) { $param = $request->post(); $model = new Patroltasks(); $model->updateById(['report_user_img'=>'','report_mobile'=>'','video_url'=>'','video_name'=>'','is_upload'=>1],$param['id']); return sparkSuccess(dataReturn(0, '重置成功')); } return sparkSuccess(dataReturn(0, 'error')); } /** * http://pa.cn/admin/bomb/patroltasks/generate_patrol_tasks * 生成巡检任务 * @param Request $request * @return \support\Response */ public function generate_patrol_tasks(){ // $rules_list = (new Patrolrules())->where('id','>',1)->where(['cycle_type'=>1])->get()->toArray(); $rules_list = (new Patrolrules())->where('id','>',1)->get()->toArray(); Db::table("warn_log")->insert(['type' => 20, 'content' => '定时任务', 'time' => date('Y-m-d')]); $engineeringModel = new Management(); foreach ($rules_list as $k=>$v) { # 报告周期:1=日,2=周,3=月 if ($v['cycle_type'] == 1) { # 1=日 $org_list = (new AdminOrgUser()) ->select('org_id') ->groupBy('org_id') ->where('role_id', '=', $v['rules_id']) ->get()->toArray(); if ($org_list) { foreach ($org_list as $k1=>$v1) { $engineeringlist = $engineeringModel->getAllList(['status'=>0,'project_org_id'=>$v1['org_id']]); $user_list = (new AdminOrgUser()) ->select('user_id') ->where('role_id', '=', $v['rules_id']) ->where('org_id', '=', $v1['org_id']) ->get()->toArray(); // var_dump($engineeringlist); // var_dump($user_list); // var_dump($k1); if ($engineeringlist && $user_list) { # 风险点列表 foreach ($engineeringlist as $k2 => $v2) { foreach ($user_list as $k3=>$v3) { if ($v['no_admin_ids']) { if (!in_array($v3['user_id'],explode(',',$v['no_admin_ids']))) { (new Patroltasks())->insert([ 'risk_management_id' => $v2['id'], 'project_id' => $v1['org_id'], 'report_user_id' => $v3['user_id'], 'start_date' => date('Y-m-d'), 'role_id' =>$v['rules_id'], 'end_date' => date('Y-m-d').' 23:59:59' ]); } } else { (new Patroltasks())->insert([ 'risk_management_id' => $v2['id'], 'project_id' => $v1['org_id'], 'report_user_id' => $v3['user_id'], 'start_date' => date('Y-m-d'), 'role_id' =>$v['rules_id'], 'end_date' => date('Y-m-d').' 23:59:59' ]); } } } } } } } else if ($v['cycle_type'] == 2) { # 周 if (date("w",strtotime(date('Y-m-d',time()))) ==1) { $num = $v['frequency']; # 每周报告次数 if ($num == 1) { # 获取本周3的日期 $start_date =date('Y-m-d',strtotime('+3 day', strtotime(time()))); $this->set_action($v,$start_date); } else if ($num == 2) { # 每周两次,周一和周三 $start_date = date('Y-m-d'); $this->set_action($v,$start_date); $start_date2 =date('Y-m-d',strtotime('+3 day', strtotime(time()))); $this->set_action($v,$start_date2); } } } else if ($v['cycle_type'] == 3) { # 月 if (date('d') =='01') { $num = $v['frequency']; # 每月报告次数 if ($num == 1) { # 获取本月十五日期 $start_date =date('Y-m-d',strtotime('+15 day', strtotime(time()))); $this->set_action($v,$start_date); } else if ($num == 2) { # 每月两次,初一和十五 $start_date = date('Y-m-d'); $this->set_action($v,$start_date); $start_date2 =date('Y-m-d',strtotime('+15 day', strtotime(time()))); $this->set_action($v,$start_date2); } } } } } # 生成指定日期的巡检数据 public function set_action($v,$start_date) { $engineeringModel = new Management(); $org_list = (new AdminOrgUser()) ->select('org_id') ->groupBy('org_id') ->where('role_id', '=', $v['rules_id']) ->get()->toArray(); if ($org_list) { foreach ($org_list as $k1=>$v1) { $engineeringlist = $engineeringModel->getAllList(['status'=>0,'project_id'=>$v1['org_id']]); $user_list = (new AdminOrgUser()) ->select('user_id') ->where('role_id', '=', $v['rules_id']) ->where('org_id', '=', $v1['org_id']) ->get()->toArray(); if ($engineeringlist && $user_list) { # 风险点列表 foreach ($engineeringlist as $k2 => $v2) { foreach ($user_list as $k3=>$v3) { if ($v['no_admin_ids']) { if (!in_array($v3['user_id'],explode(',',$v['no_admin_ids']))) { (new Patroltasks())->insert([ 'risk_management_id' => $v2['id'], 'project_id' => $v1['org_id'], 'report_user_id' => $v3['user_id'], 'start_date' => $start_date, 'role_id' => $v['rules_id'], 'end_date' => $start_date.' 23:59:59' ]); } } else { (new Patroltasks())->insert([ 'risk_management_id' => $v2['id'], 'project_id' => $v1['org_id'], 'report_user_id' => $v3['user_id'], 'start_date' => $start_date, 'role_id' => $v['rules_id'], 'end_date' => $start_date.' 23:59:59' ]); } } } } } } } public function generate_patrol_tasksBF(){ $rules_list = (new Patrolrules())->where('id','>',1)->get()->toArray(); $adminRoleModel = new AdminRole(); $engineeringModel = new Management(); foreach ($rules_list as $k=>$v) { # 报告周期:1=日,2=周,3=月 if ($v['cycle_type'] == 1) { # 1=日 $org_list = (new AdminOrgUser()) ->select('org_id') ->groupBy('org_id') ->where('role_id', '=', $v['rules_id']) ->get()->toArray(); if ($org_list) { foreach ($org_list as $k1=>$v1) { $engineeringlist = $engineeringModel->getAllList(['status'=>0,'project_id'=>$v1['org_id']]); $user_list = (new AdminOrgUser()) ->select('user_id') ->where('role_id', '=', $v['rules_id']) ->where('org_id', '=', $v1['org_id']) ->get()->toArray(); if ($engineeringlist && $user_list) { # 风险点列表 foreach ($engineeringlist as $k2 => $v2) { foreach ($user_list as $k3=>$v3) { if ($v['no_admin_ids']) { if (!in_array($v3['user_id'],explode(',',$v['no_admin_ids']))) { (new Patroltasks())->insert([ 'risk_management_id' => $v2['id'], 'project_id' => $v1['org_id'], 'report_user_id' => $v3['user_id'], 'start_date' => date('Y-m-d'), 'role_id' =>$v['rules_id'], 'end_date' => date('Y-m-d').' 23:59:59' ]); } } else { (new Patroltasks())->insert([ 'risk_management_id' => $v2['id'], 'project_id' => $v1['org_id'], 'report_user_id' => $v3['user_id'], 'start_date' => date('Y-m-d'), 'role_id' =>$v['rules_id'], 'end_date' => date('Y-m-d').' 23:59:59' ]); } } } } } } } else if ($v['cycle_type'] == 2) { # 周 if (date("w",strtotime(date('Y-m-d',time()))) ==1) { $num = $v['frequency']; # 每周报告次数 if ($num == 1) { } else if ($num == 2) { } } } else if ($v['cycle_type'] == 3) { # 月 if (date('d') =='01') { } } } } }