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) { $userItem = (new AdminUser)->where('id', $v3['user_id'])->first('nickname'); 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'], 'cycle_type' => 1, 'report_user_name' => $userItem ? $userItem['nickname'] : '', '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'], 'cycle_type' => 1, 'report_user_name' => $userItem ? $userItem['nickname'] : '', '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,2); } else if ($num == 2) { # 每周两次,周一和周三 $start_date = date('Y-m-d'); $this->set_action($v,$start_date,2); $start_date2 =date('Y-m-d',strtotime('+3 day', strtotime(time()))); $this->set_action($v,$start_date2,2); } } } 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,3); } else if ($num == 2) { # 每月两次,初一和十五 $start_date = date('Y-m-d'); $this->set_action($v,$start_date,3); $start_date2 =date('Y-m-d',strtotime('+15 day', strtotime(time()))); $this->set_action($v,$start_date2,3); } } } } } # 生成指定日期的巡检数据 public function set_action($v,$start_date,$cycle_type) { $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_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(); if ($engineeringlist && $user_list) { # 风险点列表 foreach ($engineeringlist as $k2 => $v2) { foreach ($user_list as $k3=>$v3) { $userItem = (new AdminUser)->where('id', $v3['user_id'])->first('nickname'); 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'], 'cycle_type' => $cycle_type, 'report_user_name' => $userItem ? $userItem['nickname'] : '', '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'], 'report_user_name' => $userItem ? $userItem['nickname'] : '', 'cycle_type' => $cycle_type, 'start_date' => $start_date, 'role_id' => $v['rules_id'], 'end_date' => $start_date.' 23:59:59' ]); } } } } } } } }