getallpinfo(); return $prj_list; } /* * 20230214 * 根据 web管理员身份获取接口 */ public function getallprjbycid($arr){ $cid=$arr['companyid']; $t_prj=new pinfomodel(); $prj_list=$t_prj->sellistbycid($cid); return $prj_list; } public function addnewprj($prj){ $t_prj=new pinfomodel(); $datenow=date('Y-m-d '); $prj['create_date']=$datenow; $id=$t_prj->saveprjinfo($prj); return $id; } public function getbyid($id){ $t_prj=new pinfomodel(); $prjinfo=$t_prj->getbyid($id); return $prjinfo; } //批量设置修改项目关系接口 /* * 20200204 * steelxu * 修改用户的对应项目,以批量更改用户项目 * 特别说明,对班组长的迁移目前不自动处理,不在此方法中默认解决 */ public function changerelation($pid,$worker_arr){ $newdate=date('Y-m-d '); $r_tale=new pwrelationmodel(); $w_table=new gworkermodel(); $icount=0; //var_dump($worker_arr); foreach ($worker_arr as $k=>$v) { //组织数据 $relation['pid']=$pid; $relation['wid']=$v['wid']; $relation['startdate']=$newdate; $relation['checkstatus']=1; $w_table->updateprj($pid,$v['wid']); $rid=$r_tale->addnewrelation($relation); if ($rid>0){ $icount++; } } return $icount; } /* * 20200211 * steelxu * 创建班组 */ public function creategroup($arr){ $g_tabel=new ginfomodel(); $res=$g_tabel->addnewgroup($arr); return $res; } /* * 20200211 * steelxu * 获取项目下所有的班组 * 20200309修改加合同关系 * 20200530 * 增加反回班组长WID */ public function getglist($pid){ $g_talbe=new ginfomodel(); $gheadinfo=new wheadmodel(); $work_table=new gworkermodel(); $t_gc =new gcmodel(); $t_ctct=new contactmodel(); //获取所有班组 $res=$g_talbe->getglistbypid($pid); foreach ($res as &$gitem) { //取班组长名称 $gid=$gitem['id']; $gheader=$gheadinfo->getwidbygid($gid); if ($gheader){ $wid=$gheader['gwid']; $winfo=$work_table->getinfobyid($wid); $gitem['wname']=$winfo['wname']; $gitem['gwid']=$wid; }else{ $gitem['wname']=''; } //取合同名称 $gcinfo=$t_gc->selcinfobygid($gid); if ($gcinfo){ $cid=$gcinfo['cid']; $cinfo=$t_ctct->selcinfobycid($cid); $gitem['contactname']=$cinfo['contactname']; }else{ $gitem['contactname']=''; } } return $res; } /* * 20200331 * 更新班组名称,详情 */ public function updategroupinfo($arr){ $g_tabel=new ginfomodel(); $res=$g_tabel->updatenamebyid($arr); return $res; } /* * 20210228 * steelxu * 将用户离职,放到人才库,prjid=3中 * 所有的组长权限清零 */ public function leavejob($worker_arr){ $newdate=date('Y-m-d '); $r_tale=new pwrelationmodel(); $w_table=new gworkermodel(); $t_gheader=new wheadmodel(); $icount=0; //var_dump($worker_arr); foreach ($worker_arr as $k=>$v) { //组织数据 $relation['pid']=3; $relation['wid']=$v['wid']; $relation['startdate']=$newdate; $relation['checkstatus']=1; $w_table->updateprj(3,$v['wid']); $rid=$r_tale->addnewrelation($relation); if ($rid>0){ $icount++; } //如果是组长去掉组长权限 $change=$t_gheader->changeghead($v['wid']); } return $icount; } /* * 20250212 * 自动离职,增加调出记录 */ public function autoleavejob($worker_arr){ $newdate=date('Y-m-d '); $r_tale=new pwrelationmodel(); $w_table=new gworkermodel(); $t_gheader=new wheadmodel(); $icount=0; //var_dump($worker_arr); foreach ($worker_arr as $k=>$v) { //组织数据 $relation['pid']=3; $relation['wid']=$v['wid']; $relation['startdate']=$newdate; $relation['checkstatus']=1; $w_table->updateprj(3,$v['wid']); $rid=$r_tale->addnewrelation($relation); if ($rid>0){ $icount++; } //如果是组长去掉组长权限 $change=$t_gheader->changeghead($v['wid']); //插入调动表记录 $trans['wname']=$v['wname']; $trans['wid']=$v['wid']; $trans['rectime']=date('Y-m-d H:i:s'); $trans['telno']=$v['telno']; $trans['transoutman']='两日未记工'; $trans['transoutid']=0; $rid=$t_trans->insinfo($trans); } return $icount; } /* * 20210228 * steelxu * 将用户离职,放到人才库,prjid=3中 * 所有的组长权限清零 *并插入调动表中 */ public function transferprj($headid,$worker_arr){ $newdate=date('Y-m-d '); $r_tale=new pwrelationmodel(); $w_table=new gworkermodel(); $t_gheader=new wheadmodel(); $t_trans=new transfermodel(); $icount=0; //获取名字 $headinfo=$w_table->getinfobyid($headid); $transoutname=$headinfo['wname']; //var_dump($worker_arr); foreach ($worker_arr as $k=>$v) { //组织数据 $relation['pid']=3; $relation['wid']=$v['wid']; $relation['startdate']=$newdate; $relation['checkstatus']=1; $w_table->updateprj(3,$v['wid']); $rid=$r_tale->addnewrelation($relation); if ($rid>0){ $icount++; } //如果是组长去掉组长权限 $change=$t_gheader->changeghead($v['wid']); //插入调动表记录 $trans['wname']=$v['wname']; $trans['wid']=$v['wid']; $trans['rectime']=date('Y-m-d H:i:s'); $trans['telno']=$v['telno']; $trans['transoutman']=$transoutname; $trans['transoutid']=$v['transoutid']; $rid=$t_trans->insinfo($trans); } return $icount; } /* * 20210725 * 每个项目的人员统计 */ public function getworkercountbypid(){ $t_p=new pinfomodel(); $plist=$t_p->getallpinfo(); $t_w=new gworkermodel(); $wlist=$t_w->selwcountbyprj(); foreach($wlist as &$pwinfo){ $pid=$pwinfo['cprojectid']; foreach($plist as $prjinfo){ if($pid==$prjinfo['id']){ $pwinfo['prjname']=$prjinfo['pname']; } } } return $wlist; } /* * 20210807 * 七天自动离职 * edit by steelxu5 * 改为2天未记工,自动离开项目 */ public function autoleavejobwithweek(){ $t_gw=new gworkermodel(); $wlist=$t_gw->selinfolistwithprjid(); $unworkerlist=array(); $bdate=date('Y-m-d',strtotime('-2 day'));//20250211 改为2天未记工自动离开,原为7天 $t_d=new daycheckinfo(); foreach($wlist as $worker){ $wid=$worker['wid']; $weekcount=$t_d->selscorebyidwithdays($wid,$bdate); if($weekcount==0){ $nworker=array(); $nworker['wid']=$wid; $nworker['tel']=$worker['telno']; $nworker['wname']=$worker['wname']; array_push($unworkerlist,$nworker); } } if(count($unworkerlist)>0){ $this->autoleavejob($unworkerlist); } } /* * 20230302 */ public function subnewprjlocation($arr){ $t_pl=new prjlocationmodel(); $rec=$t_pl->insinfo($arr); return $rec; } /* * 20230302 */ public function getprjlocationinfo($arr){ $prjid=$arr['prjid']; $t_pl=new prjlocationmodel(); $rec=$t_pl->selinfobyprjid($prjid); return $rec; } /* * */ }