getmoderows($this->adminid,'and islu=1'); $row = array(); $viewobj = m('view'); foreach($rows as $k=>$rs){ $lx = $rs['type']; if(!$viewobj->isadd($rs, $this->adminid))continue; if(!isset($row[$lx]))$row[$lx]=array(); $row[$lx][] = $rs; } $this->returnjson(array('rows'=>$row)); } /** * 单据查看获取数组 */ public function getmodesearcharrAjax() { $rows = m('mode')->getmoderows($this->adminid); $row = array(); $mid = '0'; foreach($rows as $k=>$rs){ $path = ''.P.'/flow/page/rock_page_'.$rs['num'].'.php'; if((!file_exists($path) && $rs['isscl']==1) || $rs['isscl']==0)continue; $lx = $rs['type']; $mid.=','.$rs['id'].''; $row[$lx][] = $rs; } if($mid!='0'){ $where = m('admin')->getjoinstr('syrid', $this->adminid, 1); $wrows = m('flow_where')->getrows('`setid` in('.$mid.') and `status`=1 and `islb` and `num` is not null and ('.$where.') and `pnum` is null group by `setid`','`setid`,min(sort),`num`'); $atypea = array(); foreach($wrows as $k1=>$rs1){ $nus = $rs1['setid']; if(!isset($atypea[$nus]))$atypea[$nus] = $rs1['num']; } foreach($row as $lx=>$rowaa){ $nrowa = array(); foreach($rowaa as $k2=>$rs2){ $atype = $this->rock->arrvalue($atypea, $rs2['id']); $row[$lx][$k2]['atype'] = $atype; if($atype)$nrowa[] = $row[$lx][$k2]; } $row[$lx] = $nrowa; } } $this->returnjson(array('rows'=>$row)); } public function flowbillbefore($table) { $lx = $this->post('atype'); $this->atypess = $lx; $dt = $this->post('dt1'); $dt2 = $this->post('dt2'); $key = $this->post('key'); $zt = $this->post('zt'); $modeid = (int)$this->post('modeid','0'); $uid = $this->adminid; $where = 'and (a.`uid`='.$uid.' or a.`optid`='.$uid.')'; //待办 if($lx=='daib'){ $where = 'and a.`isturn`=1 and a.`status` not in(1,2) and '.$this->rock->dbinstr('a.nowcheckid', $uid); } //我下属申请 if($lx=='xia'){ $where = 'and a.`isturn`=1 and '.$this->rock->dbinstr('b.superid', $uid); } //我参与 if($lx=='jmy'){ $where = 'and a.`isturn`=1 and '.$this->rock->dbinstr('a.allcheckid', $uid); } //未通过 if($lx=='mywtg'){ $where.=" and a.status=2"; } //待提交 if($lx=='daiturn'){ $where.=" and a.`status` not in(5) and a.`isturn`=0 "; //未提交 } //异常 if($lx=='error'){ $whers = m('flowbill')->errorwhere('a.'); $where = ' and '.$whers.''; } //授权单据查看 if($lx=='grantview'){ $where =' and 1=2'; if($modeid>0){ $moders = m('flow_set')->getone($modeid); $where = m('view')->viewwhere($moders, $uid); } } $this->modeids = false; //抄送的 if($lx=='chaosview'){ $where =' and 1=2'; $where1= $this->rock->dbinstr('csnameid', $uid); if($modeid>0)$where1.=' and `modeid`='.$modeid.''; $crows = $this->db->getall("select * from `[Q]flow_chao` where $where1"); $this->modeids = '0'; if($crows){ $modeids = ''; $modeidsa= array(); foreach($crows as $k1=>$rs1){ $modeids.=','.$rs1['modeid'].''; $modeidsa[$rs1['modeid']][] = $rs1['mid']; } $this->modeids = substr($modeids,1); foreach($modeidsa as $mkid=>$mids)$wherea[]='(a.`modeid` = '.$mkid.' and a.`mid` in('.join(',', $mids).'))'; $where = ' and a.`isturn`=1 and ( '.join(' or ', $wherea).' )'; } } //流程监控 if($lx=='jiankong'){ $where =' and 1=2'; $this->modeids = '0'; if($modeid==0){ $rows = m('view')->getjilu($this->adminid); foreach($rows as $k1=>$rs1){ $this->modeids.=','.$rs1['modeid'].''; } }else{ $wwhere = m('view')->jiankongwhere($modeid, $this->adminid);//返回主表的条件 $wwhere = str_replace('{asqom}','', $wwhere); $moders = $this->db->getone('[Q]flow_set', $modeid); $where =' and `mid` in(select `id` from `[Q]'.$moders['table'].'` where 1=1 '.$wwhere.')'; } } if($zt!=''){ if($zt!='6'){ $where.=" and a.`status`='$zt'"; if($zt!='5')$where.=' and a.`isturn`=1'; }else{ $where.=" and a.`status` not in(5) and a.`isturn`=0 "; //未提交 } } if($dt!='')$where.=" and a.`applydt`>='$dt'"; if($dt2!='')$where.=" and a.`applydt`<='$dt2'"; if($modeid>0)$where.=' and a.modeid='.$modeid.''; if(!isempt($key))$where.=" and (b.`name` like '%$key%' or b.`deptname` like '%$key%' or a.`sericnum` like '$key%' or a.`nowcheckname`='$key' or a.`modename`='$key')"; return array( 'table' => '`[Q]flow_bill` a left join `[Q]admin` b on a.uid=b.id', 'where' => " and a.isdel=0 $where", 'fields'=> 'a.*,b.name,b.deptname', 'order' => 'a.optdt desc' ); } public function flowbillafter($table, $rows) { $rows = m('flowbill')->getbilldata($rows); $flowarr = array(); if($this->atypess!='error'){ if($this->modeids===false){ $flowarr = m('mode')->getmodemyarr($this->adminid); }else{ $flowarr = m('mode')->getmodemyarr(0,'and `id` in('.$this->modeids.')'); } }else if($rows){ foreach($rows as $k=>$rs){ $errorsm = ''; $chuli = '到[流程模块→流程审核步骤]下对应的步骤设置审核人'; $errtype = 0;//有步骤没审核人 if(isempt($rs['nowcheckid'])){ if($rs['nowcourseid']=='0'){ $errorsm = '当前没有审核步骤'; $chuli = '到[流程模块→流程单据查看]删除最后一条处理记录,然后[重新匹配流程]'; $errtype = 1; //没有步骤 }else{ $errorsm = '当前没有审核人'; } }else{ $errorsm = '审核人帐号已停用'; $errtype = 2; //人员停用 } $rows[$k]['errorsm'] = $errorsm; $rows[$k]['chuli'] = $chuli; $rows[$k]['errtype'] = $errtype; } } return array( 'rows' => $rows, 'flowarr' => $flowarr ); } public function flowtodosbefore($table) { $dt = $this->post('dt1'); $key = $this->post('key'); $zt = $this->post('zt'); $modenum= $this->post('modeid'); $uid = $this->adminid; $where = 'and `uid`='.$uid.''; if(!isempt($modenum))$where.=" and `modenum`='$modenum'"; if(!isempt($dt))$where.=" and `adddt` like '$dt%'"; return array( 'where' => $where, 'order' => '`adddt` desc' ); } public function flowtodosafter($table, $rows) { $nums = "''"; $mors = $this->db->getall('select `modenum` from `[Q]flow_todos` where `uid`='.$this->adminid.' group by `modenum`'); foreach($mors as $k=>$rs)$nums.=",'".$rs['modenum']."'"; $flowarr = m('mode')->getrows("`status`=1 and `num` in($nums)",'`num`,`name`,`summary`,`type`','sort'); $modearr = array(); foreach($flowarr as $k=>$rs){ $modearr[$rs['num']] = $rs['summary']; } if($rows){ foreach($rows as $k=>$rs){ //$rows[$k]['id'] = $rs['mid']; $rers = $this->db->getone('[Q]'.$rs['table'].'', $rs['mid']); $summary = ''; if($rers){ $summary = $this->rock->reparr(arrvalue($modearr, $rs['modenum']), $rers); $rows[$k]['optdt'] = arrvalue($rers,'optdt'); $rows[$k]['optname'] = arrvalue($rers,'optname'); } $rows[$k]['summary'] = $summary; if($rs['isread']=='1'){ $rows[$k]['ishui'] = 1; $rows[$k]['isread'] = '已读'; }else{ $rows[$k]['isread'] = '未读'; } } } return array( 'rows' => $rows, 'flowarr' => $flowarr ); } public function meetqingkbefore($table) { $pid = $this->option->getval('hyname','-1', 2); return array( 'where' => "and `pid`='$pid'", 'order' => 'sort', 'field' => 'id,name', ); } public function meetqingkafter($table, $rows) { $dtobj = c('date'); $startdt = $this->post('startdt', $this->date); $enddt = $this->post('enddt'); if($enddt=='')$enddt = $dtobj->adddate($startdt,'d',7); $jg = $dtobj->datediff('d',$startdt, $enddt); if($jg>30)$jg = 30; $flow = m('flow')->initflow('meet'); $data = m('meet')->getall("`status`=1 and `type`=0 and `startdt`<='$enddt 23:59:59' and `enddt`>='$startdt' order by `startdt` asc",'hyname,title,startdt,enddt,state,joinname,optname,id'); $datss = array(); foreach($data as $k=>$rs){ $rs = $flow->flowrsreplace($rs); $key = substr($rs['startdt'],0,10).$rs['hyname']; if(!isset($datss[$key]))$datss[$key] = array(); $str = '['.substr($rs['startdt'],11,5).'→'.substr($rs['enddt'],11,5).']'.$rs['title'].'('.$rs['joinname'].') '.$rs['state'].''; $datss[$key][] = $str; } $columns = $rows; $barr = array(); $dt = $startdt; $gdrows = $flow->getall('`type`=1 and `status`=1'); for($i=0; $i<=$jg; $i++){ if($i>0)$dt = $dtobj->adddate($dt,'d',1); //固定会议 if($gdrows && $dt > $this->rock->date){ $srows = $flow->createmeet($gdrows, $dt, true); if($srows)foreach($srows as $k1=>$rs){ $key = substr($rs['startdt'],0,10).$rs['hyname']; if(!isset($datss[$key]))$datss[$key] = array(); $str = '['.substr($rs['startdt'],11,5).'→'.substr($rs['enddt'],11,5).']'.$rs['title'].'('.$rs['joinname'].') 固定会议'; $datss[$key][] = $str; } } $w = $dtobj->cnweek($dt); $status = 1; if($w=='六'||$w=='日')$status = 0; $sbarr = array( 'dt' => '星期'.$w.'
'.$dt.'', 'status' => $status ); foreach($rows as $k=>$rs){ $key = $dt.$rs['name']; $str = ''; if(isset($datss[$key])){ foreach($datss[$key] as $k1=>$strs){ $str.= ''.($k1+1).'.'.$strs.'
'; } } $sbarr['meet_'.$rs['id'].''] = $str; } $barr[] = $sbarr; } $arr['columns'] = $columns; $arr['startdt'] = $startdt; $arr['enddt'] = $enddt; $arr['rows'] = $barr; $arr['totalCount'] = $jg+1; return $arr; } public function deltodoAjax() { $id = c('check')->onlynumber($this->post('id','0')); m('flow_todos')->delete('id in('.$id.') and `uid`='.$this->adminid.''); $this->backmsg(); } public function deltodoydAjax() { $id = c('check')->onlynumber($this->post('id','0')); m('flow_todos')->update('`readdt`=now(),`isread`=1','id in('.$id.') and `uid`='.$this->adminid.' and `isread`=0'); return returnsuccess(); } }