permission->is_admin(false); $this->load->model('workflow_model'); } public function test(){ $this->workflow_model->delete_test(); } //首页 public function index() { if ($this->session->userdata('admin_chtcdn') === FALSE) { $this->permission->is_admin(); } $data=array(); $typelist=$this->workflow_model->get_type_list('all'); //print_r($typelist); $data['typelist']=array(); foreach ($typelist as $t) { $data['typelist'][$t->wt_parentid][]=$t; } if (empty($data['typelist'])) { $data['typelist'][0]=array(); } $data['left_nav']='index'; $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); $this->load->view('index/index'); $this->load->view('w-bottom'); $this->load->view('n-footer'); } //添加具体事务页面 public function add_work($wt_sn) { $this->permission->is_admin(); $data=array(); //当前类型信息 $data['typelist']=$this->workflow_model->get_type_list('all',$wt_sn); //提取使用的表单 $form=$data['typelist'][0]->wt_form; $data['current_wt']=$wt_sn; $data['add_work']=1; $data['left_nav']='index'; $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); $this->load->view("form/$form"); $this->load->view('w-bottom'); $this->load->view('n-footer'); } //添加一个具体事务到数据库 public function do_add_work() { $this->load->model('operator_model'); $current_user=$this->input->post('wf_user'); $tmp = $this->operator_model->get_user_by_name($current_user); //判断是不是补填的值班记录 if ($this->input->post('mail_title')=='值班记录') { //本月和上个月的值班表(有可能本月初和上月尾是连着的假期) $currentmonth=date('Y-m-01 00:00:00',time()); $datetime = strtotime("$currentmonth -1 month"); $data['list']=$this->workflow_model->get_rata_list($datetime,2,'DESC'); foreach ($data['list'] as $v) { $data['flow_data'][]=$this->workflow_model->get_work_flow_data($v->wf_sn); } //节假日列表 $needdate_list=$myrota=array(); foreach ($data['flow_data'] as $f) { foreach ($f as $d) { $wfd_key_arr=explode('_', $d->wfd_key); //值班日期是周末的日期集合 if ($wfd_key_arr[0]=='weekend' && $d->wfd_value==1) { $wfd_key_arr[1]=strlen($wfd_key_arr[1])==7?substr($wfd_key_arr[1], 0,-1).'0'.substr($wfd_key_arr[1],-1):$wfd_key_arr[1]; $needdate_list[]=$wfd_key_arr[1]; } //当前用户的值班日期集合 $name_string=str_replace('惠毅', '惠毅;惠 毅', $d->wfd_value); if (!empty($d->wfd_value) && stripos($name_string, $tmp['OPI_Name'])!==false && isset($wfd_key_arr[2]) && is_numeric($wfd_key_arr[2])) { $need_date=strlen($wfd_key_arr[2])==7?substr($wfd_key_arr[2], 0,-1).'0'.substr($wfd_key_arr[2],-1):$wfd_key_arr[2]; $myrota[]=date('Ymd',strtotime($need_date)); } } } $needdate_list=array_intersect($needdate_list,$myrota); $zhiban_date=date('Ymd',strtotime($this->input->post('wf_time'))); if (empty($needdate_list) or !in_array($zhiban_date, $needdate_list)) { //echo json_encode(array('status'=>'no','msg'=>'值班日期与值班表不符,更换了值班的同学请更改值班表')); //return true; } } //保存任务 $wf_user=$tmp['OPI_SN']; $wf_time=strtotime($this->input->post('wf_time')); $group_admin=explode('@', $this->input->post('wf_wt_sn')); $wf_wt_sn=$group_admin[0]; $wfd_wf_sn=$this->workflow_model->add_work($wf_wt_sn,$wf_user,$wf_time); //保存键值对 $col_val=''; $mail_data=array(); $mail_data['wf_time']=$wf_time; foreach ($this->input->post() as $wfd_key => $wfd_value) { if ($wfd_key=='emailcontent') { $wfd_value=htmlspecialchars($wfd_value); } // $col_val.="('".trim($wfd_key)."','".$wfd_value."',".$wfd_wf_sn."),"; $col_val.="('".trim($wfd_key)."','".chop($wfd_value)."',".$wfd_wf_sn."),";//csk 2016-9-22 去掉末尾的换行和空格 $mail_data[$wfd_key]=$wfd_value; $mail_data['flow_data'][$wfd_key]=$wfd_value; $mail_data['flow_data'][$wfd_key]=chop($wfd_value);//csk 2016-9-22 去掉末尾的换行和空格 } $apply_user=$this->input->post('apply_user'); if (empty($apply_user)) { $col_val.="('apply_user','".$current_user."',".$wfd_wf_sn."),"; } $col_val=substr($col_val, 0, -1); $wfd_sn=$this->workflow_model->add_work_data($col_val); //添加审核人 $typeinfo=$this->workflow_model->get_type_list(0,$wf_wt_sn); $verify_tolist_array=$this->get_verify_admin_list($wfd_wf_sn,$group_admin[1],$typeinfo[0]->wt_linear); //抄送邮件给指定人员 if ($wfd_wf_sn && $wfd_sn) { $data['userdata']=$this->session->userdata('admin_chtcdn'); //发送邮件给审核人员 $this->load->model('common_model'); if ($typeinfo[0]->wt_needmail==1) { $verify_from_email=$data['userdata']['whu_email']; $verify_subject=$this->input->post('mail_title'); $verify_mailbody='

我刚刚提交了一份'.$verify_subject.',请您审核一下下:

http://www.mycht.cn/webht.php/apps/workflow/index/verify/'.$wfd_wf_sn.'/0/verify

'; $verify_mailbody.='

非常感谢!

'; $verify_mailbody.='

本次提醒邮件来自中华游在线平台

'; $this->common_model->sendmail($verify_from_email,$verify_tolist_array,array(),$verify_subject,$verify_mailbody); } //抄送邮件给指定人员 $cc_mail_list=$this->input->post('cc_mail_list'); if (!empty($cc_mail_list)) { $typeinfo[0]->wt_msg_user=$cc_mail_list.';'.$typeinfo[0]->wt_msg_user; } $tolist_array=explode(';', $typeinfo[0]->wt_msg_user); if(!empty($tolist_array)){ $mail_tpl=$typeinfo[0]->wt_form; $subject=$current_user.'-'.date('Y-m-d',$wf_time).'-'.$this->input->post('mail_title'); $mailbody=$subject.'

'.$this->load->view("mail_tpl/$mail_tpl",$mail_data,true); $from_email=$data['userdata']['whu_email']; //外部邮箱 foreach ($tolist_array as $key => $m) { if (strpos($m, 'citsguilin.com')===false) { $this->common_model->save_mail($tmp['OPI_Name'],$from_email,$m,$m,$subject,$mailbody); unset($tolist_array[$key]); } } //内部邮箱 if(!empty($tolist_array)){ $this->common_model->sendmail($from_email,$tolist_array,array(),$subject,$mailbody); } } echo json_encode(array('status'=>'ok','msg'=>'添加成功!','action'=>'edit')); }else{ echo json_encode(array('status'=>'no','msg'=>'添加失败!')); } } //事务具体内容界面 public function verify($wf_sn,$wv_status=0,$nav_type='userlist') { if(isset($_SERVER['HTTP_REFERER'])){ $this->session->set_userdata('verify_referer', $_SERVER['HTTP_REFERER']); } $data['userdata']=$this->session->userdata('admin_chtcdn'); //print_r($data['userdata']); //事务申请人信息 $userdata=$this->session->userdata('admin_chtcdn'); $flow=$this->workflow_model->get_work_list($userdata['OPI_SN'],$wv_status,$wf_sn); $data['flow']=$flow[0]; //事务具体内容 $flow_data=$this->workflow_model->get_work_flow_data($wf_sn); $data['flow_data']=array(); foreach ($flow_data as $d) { $data[$d->wfd_key]=$d->wfd_value; $data['flow_data'][$d->wfd_key]=$d->wfd_value; } //print_r($data); $form=$data['flow']->wt_form; $data['wf_sn']=$wf_sn; //事务类型 $data['typelist']=$this->workflow_model->get_type_list($data['flow']->wt_parentid,false,'all'); //以往步骤的审核信息 $data['verify_data']=$this->workflow_model->get_verify_by_filed($wf_sn,'wv_comment'); //当前用户是否审核人员 0否 1是 $verify_user=$this->workflow_model->get_verify($wf_sn,0,false,50); $data['is_verify_user']=0; // var_dump($data['userdata']);die; if(!empty($data['userdata']['whu_uid'])){//csk2016-11-29 foreach ($verify_user as $vu) { if ($data['userdata']['whu_uid']==$vu->wv_admin) { $data['is_verify_user']=1; break; } } } //用于做导航激活状态 $data['nav_type']=$nav_type; if ($nav_type=='userlist') { $data['left_nav']='userlist'; }elseif ($nav_type=='rata_list') { $data['left_nav']='rata_list'; }elseif ($nav_type=='verifyed') { $data['left_nav']='verify'; }elseif ($wv_status==0) { $data['left_nav']='unverify'; }else{ $data['left_nav']='verify'; } $data['wv_status']=$wv_status; $data['form']=$this->load->view("form/$form",$data,true); //print_r($data); $this->load->view('n-header', $data); $this->load->view('w-nav'); //$this->load->view('w-left'); $this->load->view('index/verify'); $this->load->view('w-bottom'); $this->load->view('n-footer'); } //审核操作 public function do_verify($wv_status=0) { $userdata=$this->session->userdata('admin_chtcdn'); $wv_wf_sn=$this->input->post('wv_wf_sn'); $wv_comment=$this->input->post('wv_comment'); //判断该任务是否已审核 $workdata=$this->workflow_model->get_work_detail($wv_wf_sn); if ($workdata[0]->wf_status==1) { echo json_encode(array('status'=>'no','msg'=>'该任务已经审核过了!')); return false; } $all_step=$this->workflow_model->get_verify($wv_wf_sn,false,false,50); $current_actived=0; foreach ($all_step as $s) { //当前激活的审核次序 if ($s->wv_actived!=-1) { $current_actived=$s->wv_actived; } //下一个激活的审核次序 else { if (!isset($next_actived)) { $next_actived=$s->wv_sort; } } //用于提取下一个审核次序里的审核者 $next_admin_list_tmp[$s->wv_sort][]=$s; } //把当前审核者状态设置为已审核 $result=$this->workflow_model->update_wv($wv_wf_sn,$wv_comment,1,$userdata['whu_uid'],$current_actived); if (!$result) { echo json_encode(array('status'=>'no','msg'=>'操作失败!')); return false; } //同一职务级别还有人没有审核完成 $current_step_flag=true; foreach ($next_admin_list_tmp[$current_actived] as $v) { if ($v->wv_admin!=$userdata['whu_uid'] && $v->wv_status==0) { $current_step_flag=false; echo json_encode(array('status'=>'ok_notips','msg'=>'操作成功!')); break; } } if(!$current_step_flag) return false; //审核不通过,事务结束 if ($wv_status==1) { $this->workflow_model->update_wv($wv_wf_sn,$wv_comment,1,false); $result=$this->workflow_model->update_wf($wv_wf_sn,array('wf_status'=>1)); } //审核结束,录入考勤系统,事务结束 elseif (!isset($next_actived)) { $result=$this->workflow_model->update_wf($wv_wf_sn,array('wf_status'=>1)); //如果需要考勤、、、 if ($workdata[0]->wt_isneedkaoqin==1) { $this->load->model('Kaoqin_model'); //wt_isrest为1则表示是补休 if ($workdata[0]->wt_isrest==1) { $atd_sn_arr=$this->Kaoqin_model->get_atd_type('BUX'); } //wt_isrest为0则表示是加班 else{ $atd_sn_arr=$this->Kaoqin_model->get_atd_type('JAB'); } //提取参加申请的需要考勤的人员名单 $apply_user_list=$this->workflow_model->get_wfd_by_wfd_key('apply_user',$wv_wf_sn); if (empty($apply_user_list)) { $namestrings=$workdata[0]->OPI_Name; }else{ $namestrings=$apply_user_list[0]->wfd_value; } $namestrings=str_replace(' ', ';', $namestrings); $namestrings=str_replace(';', ';', $namestrings); $namestrings=str_replace('(', '(', $namestrings); $namestrings=str_replace(')', ');', $namestrings); //$namestrings=str_replace('惠毅', '惠 毅', $namestrings); $namestrings=str_replace("\n", ";", $namestrings); $namestrings=str_replace("\r", ";", $namestrings); $namestrings_arr=explode(';', $namestrings); $namestrings_array=(array_filter(array_flip(array_flip($namestrings_arr)))); $rest_start_days=$this->workflow_model->get_wfd_by_wfd_key('rest_start_date',$wv_wf_sn); $rest_end_days=$this->workflow_model->get_wfd_by_wfd_key('rest_end_date',$wv_wf_sn); foreach ($namestrings_array as $name) { $epy_sn_arr=$this->Kaoqin_model->get_epy_by_name($name); if (empty($epy_sn_arr)) { continue; } $ATD_StartDate=date('Y-m-d 00:00:00',$workdata[0]->wf_time); if (!empty($rest_start_days)) { $ATD_StartDate=date('Y-m-d 00:00:00',strtotime($rest_start_days[0]->wfd_value)); } $ATD_EndDate=date('Y-m-d 00:00:00',$workdata[0]->wf_time); if (!empty($rest_end_days)) { $ATD_EndDate=date('Y-m-d 00:00:00',strtotime($rest_end_days[0]->wfd_value)); } if (isset($atd_sn_arr[0]->ATT_SN) && isset($epy_sn_arr[0]->EPY_ID)) { $jabtime=7; //如果有自定义的考勤时间则使用自定义的数据 $kaoqin_time=$this->input->post('kaoqin_time')?$this->input->post('kaoqin_time'):''; $kaoqin_time=trim($kaoqin_time); if (!empty($kaoqin_time)) { $jabtime=trim($kaoqin_time); } if ($jabtime!=0) { //添加考勤数据 $this->Kaoqin_model->add_atd($epy_sn_arr[0]->EPY_ID,$atd_sn_arr[0]->ATT_SN,$jabtime,'小时',$ATD_StartDate,$ATD_EndDate); } } } } } //转交下一步 else { //把下一个职务标注为激活 $this->workflow_model->active_verify($next_actived,$wv_wf_sn,$next_actived); //发送邮件给审核人员 $workdata=$this->workflow_model->get_work_detail($wv_wf_sn); if ($workdata[0]->wt_needmail==1) { $next_admin_str=''; foreach ($next_admin_list_tmp[$next_actived] as $next_admin) { $next_admin_str.=$next_admin->wv_admin.','; } $next_admin_str=trim($next_admin_str,','); $next_admin_array=$this->workflow_model->get_user_list($next_admin_str); $verify_tolist_array=array(); foreach ($next_admin_array as $key => $na) { $verify_tolist_array[]=$na->whu_email; } $verify_from_email=$userdata['whu_email']; $verify_subject=$this->input->post('mail_title'); $verify_mailbody='

我刚刚通过了这份'.$verify_subject.',请您审核一下下:

http://www.mycht.cn/webht.php/apps/workflow/index/verify/'.$wv_wf_sn.'/0/verify

'; $verify_mailbody.='

非常感谢!

'; $verify_mailbody.='

本次提醒邮件来自中华游在线平台

'; $this->load->model('common_model'); $this->common_model->sendmail($verify_from_email,$verify_tolist_array,array(),$verify_subject,$verify_mailbody); } } echo json_encode(array('status'=>'ok_notips','msg'=>'操作成功!')); } public function get_verify_admin_list($wfd_wf_sn,$wv_admins,$wt_linear=0) { //取得申请人列表 $apply_user=$this->input->post('apply_user')?$this->input->post('apply_user'):$this->input->post('wf_user'); $apply_user=str_replace(' ', ';', $apply_user); $apply_user=str_replace(';', ';', $apply_user); $apply_user=str_replace('(', '(', $apply_user); $apply_user=str_replace(')', ');', $apply_user); $apply_user=str_replace('惠毅', '惠 毅', $apply_user); $apply_user=str_replace("\n", ";", $apply_user); $apply_user=str_replace("\r", ";", $apply_user); $name_arr=explode(';', $apply_user); $uname_array=(array_filter(array_flip(array_flip($name_arr)))); $user_list=$this->workflow_model->get_department_by_name($uname_array); //取得N级线性上司职务信息 $admin_str=''; if ($wt_linear!=0) { $admin_roles=array(); foreach ($user_list as $u) { if (empty($u->role)) { $admin_roles[]=$this->workflow_model->get_parent_admin('',$wt_linear); }else{ $role=$this->workflow_model->get_user_top_role($u->role); $admin_roles[]=$this->workflow_model->get_parent_admin($role->is_level,$wt_linear); } } $newadmin_roles=array(); foreach ($admin_roles as $admins) { foreach ($admins as $admin) { $newadmin_roles[$admin->is_level]=$admin->wt_sn; } } krsort($newadmin_roles); $admin_str=implode(';',$newadmin_roles); } $wv_admins=$admin_str.$wv_admins; $wv_admins=trim($wv_admins,';'); $wv_admins=explode(';', $wv_admins); $verify_tolist_array=array(); foreach ($wv_admins as $level=>$wt_sn) { $role_type=$this->workflow_model->get_type_list(0,$wt_sn,0,2); //如果是事业部分组的负责人,则取出对应分组的负责人 if ($role_type[0]->wt_form==0) { $department_str=''; foreach ($user_list as $u) { $u->department=$u->department==36?15:$u->department;//是产品组的话,算到德语事业部里面去 $department_str.=$u->department.','; } $department_str.='0'; $isid_list=$this->workflow_model->get_department_parent($department_str); $wt_parentids=''; foreach ($isid_list as $key => $is) { $wt_parentids.=$is->is_path; } $wt_parentids=rtrim($wt_parentids,','); $admin_user_list=$this->workflow_model->get_user_by_wtparentid($role_type[0]->wt_sn,$wt_parentids); } //如果是跨事业部的职务,则取出符合当前职务的用户 else { $admin_user_list=$this->workflow_model->get_user_by_role($role_type[0]->wt_sn); } foreach ($admin_user_list as $ad) { $wv_time=time(); $wv_wf_sn=$wfd_wf_sn; if ($level==0) { $verify_tolist_array[]=$ad->whu_email; $wv_actived=0; }else{ $wv_actived=-1; } $wv_sn=$this->workflow_model->add_work_verify($ad->whu_uid,$wv_time,$wv_wf_sn,$level,$wv_actived); } } return $verify_tolist_array; } // public function other_verify($wf_sn,$wv_status=0) { //获取当前值班名单 $userdata=$this->session->userdata('admin_chtcdn'); $data['userdata']=$userdata; $haslog=$this->workflow_model->get_work_flow_data_by_key($wf_sn); if (empty($haslog)) { $data['haslog']=false; }else{ $data['haslog']=true; } $flow_data=$this->workflow_model->get_work_flow_data($wf_sn); $en_uname_list=$sw_uname_list=$jd_uname_list=$js_uname_list=$weekend_list=array(); $js_ct_list=array('文娟','王征','宋芳馨','岑靖鑫','赵嘉琪','赵鹏','罗玲玲'); $datetemp=$datetemp2=$datetemp3=array(); foreach ($flow_data as $value) { if (!empty($value->wfd_value) && stripos($value->wfd_key, 'en_uname')!==false) { $tmp['name']=$value->wfd_value; $wfd_key=explode('_', $value->wfd_key); $tmp['date']=end($wfd_key); $en_uname_list[$value->wfd_value][]=$tmp; } elseif (!empty($value->wfd_value) && stripos($value->wfd_key, 'sw_uname')!==false) { $tmp2['name']=$value->wfd_value; $wfd_key=explode('_', $value->wfd_key); $tmp2['date']=end($wfd_key); $datetemp[]=$tmp2['date']; $sw_uname_list[]=$tmp2; } elseif (!empty($value->wfd_value) && stripos($value->wfd_key, 'jd_uname')!==false) { $tmp3['name']=$value->wfd_value; $wfd_key=explode('_', $value->wfd_key); $tmp3['date']=end($wfd_key); $datetemp2[]=$tmp3['date']; $jd_uname_list[]=$tmp3; } elseif (!empty($value->wfd_value) && stripos($value->wfd_key, 'js_uname')!==false) { $wfd_key=explode('_', $value->wfd_key); $date=end($wfd_key); $wfd_value=$value->wfd_value; $wfd_value=str_replace(' ', ';', $wfd_value); $wfd_value=str_replace(';', ';', $wfd_value); $wfd_value=str_replace("\n", ";", $wfd_value); $wfd_value=str_replace("\r", ";", $wfd_value); $name_list=explode(';', $wfd_value); foreach ($name_list as $n) { $tmp4['isct']=0; if (in_array(trim($n), $js_ct_list)) { $tmp4['isct']=1; } $tmp4['date']=$date; $tmp4['name']=$n; $datetemp3[]=$tmp4['date']; $js_uname_list[]=$tmp4; } }elseif ($value->wfd_value==1 && stripos($value->wfd_key, 'weekend')!==false) { $wfd_key=explode('_', $value->wfd_key); $weekend_list[]=end($wfd_key); } } foreach ($js_uname_list as $key=>$v) { if (!in_array($v['date'], $weekend_list)) { unset($js_uname_list[$key]); unset($datetemp3[$key]); } } array_multisort($datetemp, SORT_ASC, $sw_uname_list); array_multisort($datetemp2, SORT_ASC, $jd_uname_list); array_multisort($datetemp3, SORT_ASC, $js_uname_list); $data['en_uname_list']=$en_uname_list; $data['sw_uname_list']=array();//$sw_uname_list; $data['jd_uname_list']=array();//$jd_uname_list; $data['js_uname_list']=array();//$js_uname_list; $data['wf_sn']=$wf_sn; $data['nav_type']='rata_list'; $data['left_nav']='rata_list'; $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); $this->load->view('index/other_verify'); $this->load->view('w-bottom'); $this->load->view('n-footer'); } public function do_other_verify() { $this->load->model('Kaoqin_model'); $username=$this->input->post('username'); $rotadate=date('Y-m-d 00:00:00',strtotime($this->input->post('rotadate'))); $jabtimes=$this->input->post('jabtimes'); $wf_sn=$this->input->post('wf_sn'); $atd_sn_arr=$this->Kaoqin_model->get_atd_type('JAB'); $epy_sn_arr=$this->Kaoqin_model->get_epy_by_name($username); $ATD_StartDate=$rotadate; $ATD_EndDate=$rotadate; if (isset($atd_sn_arr[0]->ATT_SN) && isset($epy_sn_arr[0]->EPY_ID)) { $this->Kaoqin_model->add_atd($epy_sn_arr[0]->EPY_ID,$atd_sn_arr[0]->ATT_SN,$jabtimes,'小时',$ATD_StartDate,$ATD_EndDate); $col_val="('rota".trim($wf_sn)."','1',0)"; if($this->input->post('hasinsert')==0) { $this->workflow_model->add_work_data($col_val); } echo json_encode(array('status'=>'ok','msg'=>$col_val)); }else{ echo json_encode(array('status'=>'no','msg'=>$col_val)); } } //我的事务 public function work_list($page=1) { $wt_sn=false; $userdata=$this->session->userdata('admin_chtcdn'); //分页 $page_flag=true; $list=$this->workflow_model->get_user_work_list($userdata['OPI_SN'],$wt_sn,$page_flag); $pages['total']=count($list);//数据总条数 $pages['pageSize']= 30;//每页展示数量 $pages['url'] = site_url("apps/workflow/index/work_list");//页码链接 $pages['current']=$page;//当前页码 $data['pageinfo']=show_page($pages); //获取事务列表 $task_id_str=0; $list=array_slice($list,$pages['pageSize']*($page-1),$pages['pageSize']); foreach ($list as $v) { $task_id_str.=','.$v->wf_sn; } $data['list']=$this->workflow_model->get_user_work_list($userdata['OPI_SN'],$wt_sn,false,$task_id_str); $data['nav_type']='userlist'; $data['left_nav']='userlist'; $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); $this->load->view('index/unverify'); $this->load->view('w-bottom'); $this->load->view('n-footer'); } //待审核事务 public function unverify($wv_status=0,$page=1) { $userdata=$this->session->userdata('admin_chtcdn'); //分页 $page_flag=true; $list=$this->workflow_model->get_work_list($userdata['whu_uid'],$wv_status,false,$page_flag,false); //print_r($list); $pages['total']=count($list);//数据总条数 $pages['pageSize']= 30;//每页展示数量 $pages['url'] = site_url("apps/workflow/index/unverify/$wv_status/");//页码链接 $pages['current']=$page;//当前页码 $data['pageinfo']=show_page($pages); //获取事务列表 $task_id_str=0; $list=array_slice($list,$pages['pageSize']*($page-1),$pages['pageSize']); foreach ($list as $v) { $task_id_str.=','.$v->wv_sn; } $datalist=$this->workflow_model->get_work_list_by_sn($task_id_str); $worklist=array(); $wf_sn_str='0'; foreach ($datalist as $wlist) { $worklist[$wlist->wf_sn]=$wlist; $wf_sn_str.=','.$wlist->wf_sn; } $data['list']=$worklist; $flow_data=$this->workflow_model->get_work_flow_data($wf_sn_str); $f_datas=array(); foreach ($flow_data as $k => $f) { $f_datas[$f->wfd_wf_sn][$f->wfd_key]=$f->wfd_value; } $data['f_datas']=$f_datas; $data['nav_type']='verify'; $data['left_nav']=$wv_status==0?'unverify':'verify'; $data['wv_status']=$wv_status; //print_r($data); if ($wv_status==1) { $data['nav_type']='verifyed'; } // var_dump($data["list"]); // foreach ($data["list"] as $key => $v) { // echo $v->wf_status; // echo $v->isverify; // echo "
"; // } $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); $this->load->view('index/unverify'); $this->load->view('w-bottom'); $this->load->view('n-footer'); } //值班表 public function rata_list() { $data['list']=$this->workflow_model->get_rata_list(false,12); $data['nav_type']='rata_list'; $data['left_nav']='rata_list'; $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); $this->load->view('index/rata_list'); $this->load->view('w-bottom'); $this->load->view('n-footer'); } //事务类型列表 public function work_type_list() { $data['type_list']=$this->workflow_model->get_type_list('all',false,'all'); $data['left_nav']='type_list'; $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); $this->load->view('index/type_list'); $this->load->view('w-bottom'); $this->load->view('n-footer'); } //添加事务类型界面 public function add_work_type($wt_sn=false) { $data=array(); //类型列表 $wt_isdelete=$wt_sn===false?0:'all'; $data['typelist']=$this->workflow_model->get_type_list(0,false,$wt_isdelete); //职务列表 $data['rolelist']=$this->workflow_model->get_department_list(2); //表单列表 $form_path=APPPATH."third_party/workflow/views/form"; $form_array=scandir($form_path); unset($form_array[0],$form_array[1]); $data['formlist']=$form_array; //要编辑的事务类型信息 if ($wt_sn!=false) { $data['type_info']=$this->workflow_model->get_type_list(0,$wt_sn); isset($data['type_info'][0]) && $data['type_info']=$data['type_info'][0]; } $this->load->model('operator_model'); if (isset($data['type_info']->wt_step) && !empty($data['type_info']->wt_step)) { $OPI_SN_STRING=str_replace(';', ',', $data['type_info']->wt_step); $OPI_SN_STRING=trim($OPI_SN_STRING,','); $admin=$this->operator_model->get_user_by_sn($OPI_SN_STRING); $data['wt_step_uname']=''; foreach ($admin as $u) { $wt_step_uname[$u->OPI_SN]=$u->OPI_Name; } $wt_step_array=explode(';', $data['type_info']->wt_step); foreach ($wt_step_array as $v) { $data['wt_step_uname'].=$wt_step_uname[$v].'->'; } $data['wt_step_uname']=rtrim($data['wt_step_uname'],'->'); } $this->load->view('index/add_work_type',$data); } //职务类型管理 public function add_role_type($is_id='') { $data=array(); $data['title']='职务'; $data['wt_refuse']=2; $data['structure_list']=$this->workflow_model->get_structure_list($data['wt_refuse']); if (empty($data['structure_list'])) { $this->add_partment_tree($data['wt_refuse'],$data['title'],0,false); redirect(site_url("apps/workflow/index/add_partment_type")); } if (empty($is_id)) { $is_id = $data['structure_list'][0]->id; } $data['is_id']=$is_id; $data['typelist']=$this->workflow_model->get_type_list($is_id,false,0,$data['wt_refuse']); $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); $this->load->view('index/role_type'); $this->load->view('w-bottom'); $this->load->view('n-footer'); } //事业部小组类型管理 public function add_partment_type($is_id='') { $data=array(); $data['title']='事业部'; $data['wt_refuse']=1; $data['structure_list']=$this->workflow_model->get_structure_list(); if (empty($data['structure_list'])) { $this->add_partment_tree($data['wt_refuse'],$data['title'],0,false); redirect(site_url("apps/workflow/index/add_partment_type")); } if (empty($is_id)) { $is_id = $data['structure_list'][0]->id; } $data['is_id']=$is_id; $data['typelist']=$this->workflow_model->get_type_list($is_id,false,0,$data['wt_refuse']); $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); $this->load->view('index/partment_type'); $this->load->view('w-bottom'); $this->load->view('n-footer'); } //添加事业部节点 public function add_partment_tree($wt_refuse=1,$title='事业部',$is_parent_id=0,$is_ajax=true) { $this->load->model('InfoStructures_model'); $insert_id = $this->InfoStructures_model->Add($is_parent_id); $wt_name=$title; $wt_form=''; $wt_msg_user=''; $wt_step=''; $wt_parentid=$insert_id; $wt_time=time(); if ($insert_id && $wt_sn=$this->workflow_model->add_type($wt_name,$wt_form,$wt_step,$wt_msg_user,$wt_parentid,$wt_time,$wt_refuse)){ $data[] = array('name' => 'ok', 'value' => $insert_id); }else{ $data[] = array('name' => 'no', 'value' => $this->lang->line('form_info_error')); } if ($is_ajax) { echo json_encode($data); return TRUE; } return $insert_id; } //移动排序树形结构 public function tree_move() { //网站会提交一个同级节点id列表字符串,按照这个去排序 $this->load->model('InfoStructures_model'); $parent_id = $this->input->post('pid'); $idsStr = $this->input->post('ids'); $idsArray = explode(',', $idsStr); foreach ($idsArray as $key => $value) { if ($value) { //设置排序 $this->InfoStructures_model->set_sort($value, $key); //设置path $this->InfoStructures_model->set_path($parent_id, $value); } } $data[] = array('name' => 'ok', 'value' => $this->lang->line('structures_success_move')); echo json_encode($data); return TRUE; } //删除指定事业部分组 public function delete_partment_tree() { $isdelete=$this->workflow_model->delete_wt($this->input->post('wt_sn')); if ($isdelete) { $this->load->model('InfoStructures_model'); $this->InfoStructures_model->Delete($this->input->post('wt_parentid')); $data[] = array('name' => 'ok', 'value' => site_url('apps/workflow/index/add_partment_type')); echo json_encode($data); }else{ $data[] = array('name' => 'no', 'value' => $this->lang->line('form_keyworlds_error')); echo json_encode($data); } } //员工管理 public function user_manage($whu_uid=false) { //事业部分组 $data['typelist']=$this->workflow_model->get_department_list(); //职务列表 $data['rolelist']=$this->workflow_model->get_department_list(2); //用户列表 $data['userlist']=$this->workflow_model->get_user_list(); if ($whu_uid!==false) { $data['userinfo']=$this->workflow_model->get_user_list($whu_uid); $data['userinfo']=$data['userinfo'][0]; $data['userrole']=array_filter(explode(',', $data['userinfo']->role)); } $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); $this->load->view('index/user_manage'); $this->load->view('w-bottom'); $this->load->view('n-footer'); } //员工资料更新 public function user_edit() { $type=$this->input->post('type'); $whu_role=$this->input->post('userrole'); $whu_uname=$this->input->post('whu_uname'); $whu_email=$this->input->post('whu_email'); $whu_ip=$this->input->post('whu_ip'); $department=$this->input->post('department'); $role=!empty($whu_role)?implode(',',$this->input->post('userrole')):NULL; $whu_uid=$this->input->post('whu_uid'); if($type == 'add'){ $result = $result=$this->workflow_model->add_webuser($whu_uname,$whu_email,$whu_ip,$department,$role,$whu_uid); }else if($type == 'delete'){ $result=$this->workflow_model->delete_webuser($whu_uname,$whu_uid); }else if($type == 'update'){ $result=$this->workflow_model->update_webuser($whu_uname,$whu_email,$whu_ip,$department,$role,$whu_uid); } if ($result) { echo json_encode(array('status'=>'ok','msg'=>'操作成功!')); }else{ echo json_encode(array('status'=>'no','msg'=>'操作失败!')); } } //添加事业部、职务类型 public function do_add_role_type() { $wt_name=$this->input->post('wt_name'); $wt_refuse=$this->input->post('wt_refuse'); $wt_form=$this->input->post('wt_form')?1:0; $wt_msg_user=''; $wt_step=''; $wt_parentid=$this->input->post('wt_parentid')?$this->input->post('wt_parentid'):0; $wt_time=time(); if ($this->input->post('wt_sn')) { $result=$this->workflow_model->update_wt($wt_name,$wt_form,$wt_step,$wt_msg_user,$wt_parentid,$this->input->post('wt_sn')); }else{ $result=$this->workflow_model->add_type($wt_name,$wt_form,$wt_step,$wt_msg_user,$wt_parentid,$wt_time,$wt_refuse); } if ($result) { echo json_encode(array('status'=>'ok','msg'=>'保存成功!')); }else{ echo json_encode(array('status'=>'no','msg'=>'保存失败!')); } } //更换值班对话框 public function changerota($wf_sn) { $data['wf_sn']=$wf_sn; $this->load->view('index/changerota',$data); } //执行更换值班操作 public function dochangerota() { $wf_sn=$this->input->post('wf_sn'); $yusername=$this->input->post('yusername'); $yrotadate=$this->input->post('yrotadate'); $tausername=$this->input->post('tausername'); $tarotadate=$this->input->post('tarotadate'); if (empty($yrotadate) && empty($tarotadate)) { echo json_encode(array('status'=>'no','msg'=>'当前月份你们两个都没有值班安排!')); return false; } if (empty($yusername) || empty($tausername)) { echo json_encode(array('status'=>'no','msg'=>'请把更换人填写完整!')); return false; } $yrotadate=str_replace('-', '', $yrotadate); $tarotadate=str_replace('-', '', $tarotadate); if (!$wf_sn) { $datetime=$yrotadate; if(empty($yrotadate)) $datetime=$tarotadate; $datetime=strtotime(date('Y-m-01 00:00:00',strtotime($datetime))); $list=$this->workflow_model->get_rata_list($datetime,1,'ASC'); if(empty($list)){ echo json_encode(array('status'=>'no','msg'=>'更换失败,请联系梁宇云!')); return false; } $wf_sn=$list[0]->wf_sn; } $y_data=''; $ta_data=''; $flow_data=$this->workflow_model->get_work_flow_data($wf_sn); foreach ($flow_data as $d) { if ($yrotadate && stripos($d->wfd_key, $yrotadate)!==false && stripos($d->wfd_value, $yusername)!==false) { $y_data=$d; }elseif ($tarotadate && stripos($d->wfd_key, $tarotadate)!==false && stripos($d->wfd_value, $tausername)!==false) { $ta_data=$d; } } //当月我有值班,TA没有值班 if ($yrotadate && empty($tarotadate)) { $new_y_wfd_sn=$y_data->wfd_sn; $new_y_wfd_value=str_replace($yusername, $tausername, $y_data->wfd_value); $this->workflow_model->update_wfd($new_y_wfd_sn,$new_y_wfd_value); } //当前月我没有值班,TA有值班 elseif (empty($yrotadate) && $tarotadate) { $new_ta_wfd_sn=$ta_data->wfd_sn; $new_ta_wfd_value=str_replace($tausername, $yusername, $ta_data->wfd_value); $this->workflow_model->update_wfd($new_ta_wfd_sn,$new_ta_wfd_value); } //当月两人同时有值班 else { $new_y_wfd_sn=$y_data->wfd_sn; $new_y_wfd_value=str_replace($yusername, $tausername, $y_data->wfd_value); $new_ta_wfd_sn=$ta_data->wfd_sn; $new_ta_wfd_value=str_replace($tausername, $yusername, $ta_data->wfd_value); $this->workflow_model->update_wfd($new_y_wfd_sn,$new_y_wfd_value); $this->workflow_model->update_wfd($new_ta_wfd_sn,$new_ta_wfd_value); } //给双方发送值班更换通知 $userdata=$this->session->userdata('admin_chtcdn'); $from_email=$userdata['whu_email']; $this->load->model('operator_model'); $tolist_array[]=$this->operator_model->get_webhtuser_by_name($tausername,'whu_email'); $tolist_array[]=$from_email; $subject=$yusername.'和你更换了值班,请注意查看中华游值班表'; $mailbody=$subject.'

http://www.mycht.cn/webht.php/apps/workflow/index/rata_list'; $this->load->model('common_model'); $this->common_model->sendmail($from_email,$tolist_array,array(),$subject,$mailbody); echo json_encode(array('status'=>'ok2','msg'=>'操作成功,请刷新页面查看效果!')); } public function send_rota_mail() { $wf_time=strtotime($this->input->post('wf_time')); $mail_data=array(); $mail_data['wf_time']=$wf_time; foreach ($this->input->post() as $wfd_key => $wfd_value) { $mail_data[$wfd_key]=$wfd_value; $mail_data['flow_data'][$wfd_key]=$wfd_value; } //发送邮件 $mail_tpl='rota.php'; $subject='海纳国旅'.date('n',$wf_time).'月值班安排'; $html='各位同事,
以下是海纳国旅'.date('Y',$wf_time).'年'.date('n',$wf_time).'月值班安排,请大家做好提醒,按相关值班规定值班。
为方便统计加班小时数,请记得到值班记录系统填写值班记录,自行调班的同事请记得到值班记录系统里面更改。
谢谢!'; $mailbody=$html.'

'.$this->load->view("mail_tpl/$mail_tpl",$mail_data,true); //发送人信息 $this->load->model('common_model'); $userdata=$this->session->userdata('admin_chtcdn'); $from_email=$userdata['whu_email']; $tolist_array[]='UAAS2013@citsguilin.com'; $this->common_model->sendmail($from_email,$tolist_array,array(),$subject,$mailbody); echo json_encode(array('status'=>'ok','msg'=>'发送成功!')); } //更新指定事务内容 public function update_work() { //更新事务 $this->load->model('operator_model'); $current_user=$this->input->post('wf_user'); $tmp = $this->operator_model->get_user_by_name($current_user); $wf_user=$tmp['OPI_SN']; $wf_time=strtotime($this->input->post('wf_time')); $group_admin=explode('@', $this->input->post('wf_wt_sn')); $wf_wt_sn=$group_admin[0]; $wf_sn=$this->input->post('wf_sn'); $result=$this->workflow_model->update_wf($wf_sn,array('wf_wt_sn'=>$wf_wt_sn,'wf_user'=>$wf_user,'wf_time'=>$wf_time)); //更新键值对 if ($this->workflow_model->delete_wfd($wf_sn)) { $col_val=''; foreach ($this->input->post() as $wfd_key => $wfd_value) { // $col_val.="('".trim($wfd_key)."','".$wfd_value."',".$wf_sn."),"; $col_val.="('".trim($wfd_key)."','".chop($wfd_value)."',".$wf_sn."),";//csk 2016-9-22 去掉末尾的换行和空格 } $apply_user=$this->input->post('apply_user'); if (empty($apply_user)) { $col_val.="('apply_user','".$current_user."',".$wf_sn."),"; } $col_val=substr($col_val, 0, -1); $wfd_sn=$this->workflow_model->add_work_data($col_val); } //如果还没有开始审核,则更改审核人员 $has_verify_list=$this->workflow_model->get_verify($wf_sn,false,1); if (empty($has_verify_list) && $this->workflow_model->delete_wv($wf_sn)) { $typeinfo=$this->workflow_model->get_type_list(0,$wf_wt_sn); $verify_tolist_array=$this->get_verify_admin_list($wf_sn,$group_admin[1],$typeinfo[0]->wt_linear); } $verify_referer_url=site_url('apps/workflow/index/unverify'); if ($this->session->userdata('verify_referer')) { $verify_referer_url=$this->session->userdata('verify_referer'); } echo json_encode(array('status'=>'ok_go','msg'=>'更新成功!','url'=>$verify_referer_url)); } //添加事务类型 public function do_add_work_type() { $wt_name=$this->input->post('wt_name'); $wt_form=$this->input->post('wt_form'); $wt_msg_user=rtrim($this->input->post('wt_msg_user'),';'); $wt_step=rtrim($this->input->post('wt_step'),';'); $wt_parentid=$this->input->post('wt_parentid'); $wt_time=time(); $wt_isneedkaoqin=$this->input->post('wt_isneedkaoqin')?1:0; $wt_description=$this->input->post('wt_description'); $wt_isrest=$this->input->post('wt_isrest')?1:0; $wt_userdefined=$this->input->post('wt_userdefined')?1:0; $wt_needmail=$this->input->post('wt_needmail')?1:0; $wt_linear=$this->input->post('wt_linear'); if ($this->input->post('wt_sn')!='') { $insertid=$this->workflow_model->update_wt($wt_name,$wt_form,$wt_step,$wt_msg_user,$wt_parentid,$this->input->post('wt_sn'),$wt_isneedkaoqin,$wt_description,$wt_isrest,$wt_userdefined,$wt_needmail,$wt_linear); }else{ $insertid=$this->workflow_model->add_type($wt_name,$wt_form,$wt_step,$wt_msg_user,$wt_parentid,$wt_time,0,$wt_isneedkaoqin,$wt_description,$wt_isrest,$wt_userdefined,$wt_needmail,$wt_linear); } if ($insertid) { echo json_encode(array('status'=>'ok','msg'=>'操作成功!')); }else{ echo json_encode(array('status'=>'no','msg'=>'操作失败!')); } } // public function dalete_work_type($wt_sn,$wt_isdelete=1) { $tips=$wt_isdelete==1?'已停用!':'启用成功!'; $this->workflow_model->delete_wt($wt_sn,$wt_isdelete); echo json_encode(array('status'=>'ok','msg'=>$tips)); } //删除指定事务 public function dalete_work_flow($wf_sn) { $this->workflow_model->delete_wf($wf_sn); $this->workflow_model->delete_wfd($wf_sn); $this->workflow_model->delete_wv($wf_sn); echo json_encode(array('status'=>'ok','msg'=>'删除成功!')); } //用户名自动提示 public function get_user_list(){ $q = $this->input->get('q'); $str_array=explode(';', $q); $q=end($str_array); if (!$q) return; $showcount = 1; $this->load->model('operator_model'); $tmp = $this->operator_model->all(); foreach ($tmp as $u) { if ($showcount > 8) break; if (strstr($u->OPI_Name,$q)) { echo $u->OPI_Name.';'."\n"; $showcount++; } } } public function myrota(){ $startdate=date('Y-m-01 00:00:00'); $datetime=strtotime("$startdate -3 month"); $list=$this->workflow_model->get_rata_list($datetime,5,'ASC'); $data['datelist']=array(); if (!empty($list)) { $userdata=$this->session->userdata('admin_chtcdn'); foreach ($list as $v) { $flow_data=$this->workflow_model->get_work_flow_data($v->wf_sn); foreach ($flow_data as $key => $d) { $wfd_key_arr=explode('_', $d->wfd_key); if (!empty($d->wfd_value) && stripos($d->wfd_value, $userdata['OPI_Name'])!==false && isset($wfd_key_arr[2]) && is_numeric($wfd_key_arr[2])) { $need_date=strlen($wfd_key_arr[2])==7?substr($wfd_key_arr[2], 0,-1).'0'.substr($wfd_key_arr[2],-1):$wfd_key_arr[2]; $myrotadate=$need_date; $need_date=date('Y-n-j',strtotime($need_date)); $data['datelist'][]=array('date'=>$need_date,'remark'=>'值班','link'=>'http://www.mycht.cn/webht.php/apps/workflow/index/changemyrota/'.$myrotadate,'title'=>(date('n月j日',strtotime($need_date))).'有你的值班!'); } } } } if (!empty($data['datelist'])) { $data['datelist']=json_encode($data['datelist']); }else{ $data['datelist']=''; } $this->load->view('index/myrota',$data); } public function changemyrota($myrotadate=false) { $data=array(); $data['yrotadate']=''; $myrotadate && $data['yrotadate']=date('Y-m-d',strtotime($myrotadate)); $this->load->view('index/changemyrota',$data); } public function send_prev_notify() { //本月和下个月的值班数据 $datetime=strtotime(date('Y-m-01 00:00:00')); $data['list']=$this->workflow_model->get_rata_list($datetime,2); if(empty($data['list'])) return false; foreach ($data['list'] as $v) { $data['flow_data'][]=$this->workflow_model->get_work_flow_data($v->wf_sn); } $today=date('Ymd'); $userlist=array(); $needdate_list=array(); if(empty($data['flow_data'])) return false; foreach ($data['flow_data'] as $f) { foreach ($f as $d) { $wfd_key_arr=explode('_', $d->wfd_key); if (!empty($d->wfd_value) && isset($wfd_key_arr[2]) && is_numeric($wfd_key_arr[2])) { $wfd_key_arr[2]=strlen($wfd_key_arr[2])==7?substr($wfd_key_arr[2], 0,-1).'0'.substr($wfd_key_arr[2],-1):$wfd_key_arr[2]; //值班日期在今天之后的 $wfd_key_arr[2]>$today && $userlist[$wfd_key_arr[2]][]=$d->wfd_value; } //获取非上班的值班日期集合 if ($wfd_key_arr[0]=='weekend' && $d->wfd_value==1) { $wfd_key_arr[1]=strlen($wfd_key_arr[1])==7?substr($wfd_key_arr[1], 0,-1).'0'.substr($wfd_key_arr[1],-1):$wfd_key_arr[1]; $needdate_list[]=$wfd_key_arr[1]; } } } //提取未来最近的一个节假日 ksort($userlist,SORT_NUMERIC); $num=0; $name_string=''; $time_arr=array(); foreach ($userlist as $key => $value) { if (!in_array($key, $needdate_list)) { continue; } $num==0?$num=$key:''; if ($key-$num>1) { $isnextmonth = date('Ymd',strtotime("$key -1 day")); if ($isnextmonth!=$num) { break; } } $num=$key; $time_arr[]=$key; foreach ($value as $n) { $name_string.=$n.';'; } } //如果不是节前第一天,停止发送提醒邮件处理 $next_festival=min($time_arr); $pre_festival=date('Ymd',strtotime("$next_festival -1 day")); if ($today!=$pre_festival) { echo '还没到节前一天'; return false; } $name_string=str_replace(' ', ';', $name_string); $name_string=str_replace(';', ';', $name_string); $name_string=str_replace('(', '(', $name_string); $name_string=str_replace(')', ')', $name_string); $name_string=str_replace('(', ';(', $name_string); $name_string=str_replace(')', ');', $name_string); $name_string=str_replace('惠毅', '惠毅;惠 毅', $name_string); $name_string=str_replace(array(',',",","\t","\n","\r"),';', $name_string); $name_arr=explode(';', $name_string); $name_arr=(array_filter(array_flip(array_flip($name_arr)))); if (empty($name_arr)) { return false; } $map=' WHERE '; foreach ($name_arr as $name) { $name=preg_replace("/\(.*\)/", '', $name); $name=trim($name); !empty($name) && $map.=" whu_uname like '$name%' OR "; } $map=substr($map, 0,-3); $this->load->model('operator_model'); $mailarr=$this->operator_model->get_webhtuser_by_name($map,'*',true); $tolist_array=array(); foreach ($mailarr as $list) { !empty($list->whu_email) && $tolist_array[]=$list->whu_email; //echo $list->whu_uname.':'.$list->whu_email.'
'; } //发送人信息 $this->load->model('common_model'); $from_email='AAS@citsguilin.com'; $subject="节假日值班提醒"; $mailbody='

中华游温馨提醒,本周有您的值班的安排:

点击查看中华游值班表

'; $mailbody.='

PS:本次提醒仅供参考,详情请查看中华游值班表

'; $this->common_model->sendmail($from_email,$tolist_array,array('cht07@citsguilin.com'),$subject,$mailbody); echo 'ok'; } public function send_after_notify() { //本月和上个月的值班表(有可能本月初和上月尾是连着的假期) $currentmonth=date('Y-m-01 00:00:00',time()); $datetime = strtotime("$currentmonth -1 month"); $data['list']=$this->workflow_model->get_rata_list($datetime,2,'DESC'); if(empty($data['list'])) return false; foreach ($data['list'] as $v) { $data['flow_data'][]=$this->workflow_model->get_work_flow_data($v->wf_sn); } //获取今天之前且离今天最近的假期值班人员列表 $today=date('Ymd'); $userlist=array(); $needdate_list=array(); if(empty($data['flow_data'])) return false; foreach ($data['flow_data'] as $f) { foreach ($f as $d) { $wfd_key_arr=explode('_', $d->wfd_key); //值班日期在今天之前的值班人 if (!empty($d->wfd_value) && isset($wfd_key_arr[2]) && is_numeric($wfd_key_arr[2])) { $wfd_key_arr[2]=strlen($wfd_key_arr[2])==7?substr($wfd_key_arr[2], 0,-1).'0'.substr($wfd_key_arr[2],-1):$wfd_key_arr[2]; $wfd_key_arr[2]<$today && $userlist[$wfd_key_arr[2]][]=$d->wfd_value; } //获取非上班的值班日期集合 if ($wfd_key_arr[0]=='weekend' && $d->wfd_value==1) { $wfd_key_arr[1]=strlen($wfd_key_arr[1])==7?substr($wfd_key_arr[1], 0,-1).'0'.substr($wfd_key_arr[1],-1):$wfd_key_arr[1]; $needdate_list[]=$wfd_key_arr[1]; } } } //如果没有获取到值班人或者当前日期正值节假日,则不继续处理 if(empty($userlist) || in_array($today, $needdate_list)) return false; krsort($userlist,SORT_NUMERIC); $num=0; $name_string=''; $time_arr=array(); //剔除非休假时间 foreach ($userlist as $key => $value) { if (!in_array($key, $needdate_list)) { continue; } //如果已经不是最近一个假期,则跳出循环 if ($num-$key>1) { $islastmonth = date('Ymd',strtotime("$num -1 day")); if ($islastmonth!=$key) { break; } } $num=$key; $time_arr[]=$key; foreach ($value as $n) { $name_string.=$n.';'; } } //如果不是节后第一天,停止发送提醒邮件处理 $last_festival=max($time_arr); $after_festival=date('Ymd',strtotime("$last_festival +1 day")); if ($today!=$after_festival) { echo '已经发送过了'; return false; } $name_string=str_replace(' ', ';', $name_string); $name_string=str_replace(';', ';', $name_string); $name_string=str_replace('(', '(', $name_string); $name_string=str_replace(')', ')', $name_string); $name_string=str_replace('(', ';(', $name_string); $name_string=str_replace(')', ');', $name_string); $name_string=str_replace('惠毅', '惠毅;惠 毅', $name_string); $name_string=str_replace(array(',',",","\t","\n","\r"),';', $name_string); $name_arr=explode(';', $name_string); $name_arr=(array_filter(array_flip(array_flip($name_arr)))); //过滤掉已经发了记录的名字 $namestring="'".implode("','", $name_arr)."'"; $date_time=strtotime(min($time_arr)); $remarks=$this->workflow_model->get_list_by_namestring($namestring,$date_time); foreach ($remarks as $key => $value) { if (in_array($value->OPI_Name, $name_arr)) { if ($value->OPI_Name=='惠毅') { unset($name_arr[array_search('惠 毅', $name_arr)]); } unset($name_arr[array_search($value->OPI_Name, $name_arr)]); } } if (empty($name_arr)) return false; //提取邮件地址 $map=' WHERE '; foreach ($name_arr as $name) { $name=trim($name); !empty($name) && $map.=" whu_uname like '$name%' OR "; } $map=substr($map, 0,-3); $this->load->model('operator_model'); $mailarr=$this->operator_model->get_webhtuser_by_name($map,'*',true); $tolist_array=array(); foreach ($mailarr as $list) { !empty($list->whu_email) && $tolist_array[]=$list->whu_email; //echo $list->whu_uname.':'.$list->whu_email.'
'; } //发送人信息 $this->load->model('common_model'); $from_email='AAS@citsguilin.com'; $subject="值班记录填写提醒"; $mailbody='

你的值班记录还没有填写:

点击去填写

'; $mailbody.='

PS:本次提醒名单由程序自动提取,如果你已经填过了,请忽略!

'; !empty($tolist_array) && $this->common_model->sendmail($from_email,$tolist_array,array('cht07@citsguilin.com','CHT67@citsguilin.com'),$subject,$mailbody); echo 'ok'; } public function print_business($wf_sn,$wv_status=1,$nav_type='userlist') { $data['wf_sn']=$wf_sn; $data['wv_status']=$wv_status; $data['nav_type']=$nav_type; $this->load->view('index/print_business',$data); } public function print_text($wf_sn,$wv_status=1,$nav_type='userlist') { $data['userdata']=$this->session->userdata('admin_chtcdn'); //事务申请人信息 $userdata=$this->session->userdata('admin_chtcdn'); $flow=$this->workflow_model->get_work_list($userdata['OPI_SN'],$wv_status,$wf_sn); $data['flow']=$flow[0]; //事务具体内容 $flow_data=$this->workflow_model->get_work_flow_data($wf_sn); $data['flow_data']=array(); foreach ($flow_data as $d) { $data[$d->wfd_key]=$d->wfd_value; $data['flow_data'][$d->wfd_key]=$d->wfd_value; } $form=$data['flow']->wt_form; $data['wf_sn']=$wf_sn; //事务类型 $data['typelist']=$this->workflow_model->get_type_list($data['flow']->wt_parentid,false,'all'); //以往步骤的审核信息 $data['verify_data']=$this->workflow_model->get_verify_by_filed($wf_sn,'wv_comment'); $data['nav_type']=$nav_type; if ($nav_type=='userlist') { $data['left_nav']='userlist'; }elseif ($nav_type=='rata_list') { $data['left_nav']='rata_list'; }elseif ($wv_status==0) { $data['left_nav']='unverify'; }else{ $data['left_nav']='verify'; } $this->load->view('index/print_text', $data); } }