123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337 |
- <?php
- /**
- * Created by PhpStorm.
- * User: sicilon_IT
- * Date: 2020/1/27
- * Time: 15:35
- */
- namespace app\index\logic;
- use app\index\model\daycheckinfo;
- use app\index\model\gworkermodel;
- use app\index\model\pinfomodel;
- use app\index\model\prjlocationmodel;
- use app\index\model\pwrelationmodel;
- use app\index\model\ginfomodel;
- use app\index\model\wheadmodel;
- use app\index\model\contactmodel;
- use app\index\model\gcmodel;
- use app\index\model\transfermodel;
- class prjmanger{
- public function getallprj(){
- $t_prj=new pinfomodel();
- $prj_list=$t_prj->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;
- }
- /*
- *
- */
- }
|