| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <?php
- /**
- * 流程步骤的
- */
- class flowcourseClassModel extends Model
- {
- private $courserows = array();
- private $getCoursedatasarr,$getTreedatada;
-
- public function initModel()
- {
- $this->settable('flow_course');
- }
-
- public function initCourse($setid, $fields='')
- {
- $this->courserows = array();
- if($fields=='')$fields = '`id`,`name`,`checktype`,`checktypename`,`whereid`,`where`,`status`,`mid`,`pid`,`recename`,`explain`,`optdt`,`nid`';
- $rows = $this->getall("`setid`='$setid' and `mid`>=0",$fields,'`pid`,`sort`');
- $isinit = false;
- $time = '2017-08-10 00:00:00';
- foreach($rows as $k=>$rs){
- if($rs['mid']>0)$isinit=true;
- if($rs['optdt']>$time)$isinit=true;
- }
- //没有初始化
- if(!$isinit){
- $pid = '-1';
- foreach($rows as $k=>$rs){
- if($pid==$rs['pid']){
- $mid = $rows[$k-1]['id'];
- }else{
- $mid = '0';
- }
- $pid = $rs['pid'];
-
- if($mid!=$rs['mid']){
- $this->update('mid='.$mid.'', $rs['id']);
- $rs['mid'] = $mid;
- }
- $this->courserows[] = $rs;
- }
- $this->update('pid=0', "`setid`='$setid'");
- }else{
- foreach($rows as $k=>$rs){
- $this->courserows[] = $rs;
- }
- }
- //分支说明
- foreach($this->courserows as $k=>$rs){
- $fzsm = '';
- if(!isempt($rs['recename']))$fzsm='适用('.$rs['recename'].')';
- $whereid = (int)$rs['whereid'];
- if($whereid>0){
- $wherena = $this->db->getmou('[Q]flow_where','name', 'id='.$whereid.'');
- if(!isempt($wherena)){
- if(!isempt($fzsm))$fzsm.=',';
- $fzsm.= $wherena;
- }
- }
- if(!isempt($rs['explain'])){
- if(!isempt($fzsm))$fzsm.=',';
- $fzsm.= '说明('.$rs['explain'].')';
- }else if(!isempt($rs['where'])){
- if(!isempt($fzsm))$fzsm.=',';
- $fzsm.= '审核条件('.$this->rock->jm->base64decode($rs['where']).')';
- }
- $this->courserows[$k]['fzsm'] = $fzsm;
- }
-
- return $this->courserows;
- }
-
- public function getCoursedata($setid, $fields='')
- {
- $drows = $this->initCourse($setid, $fields);
- $this->getCoursedatasarr = array();
- $children= $this->getCoursedatas($drows, '0', 1);
-
- $rows[] = array(
- 'name' => '提交',
- 'num' => 'turn',
- 'id' => 0,
- 'mid' => 0,
- 'level' => 0,
- 'children' => $children,
- 'childshu' => count($children),
- );
- if($fields==''){
- $barr['rows'] = $rows;
- $barr['treedata'] = $this->getTreedata($setid);
- }else{
- $barr['rows'] = $children;
- }
- return $barr;
- }
- private function getCoursedatas($drows,$mid,$level)
- {
- $rows = array();
- foreach($drows as $k=>$rs){
- if($rs['mid']==$mid){
- $rs['level'] = $level;
- $children = $this->getCoursedatas($drows, $rs['id'], $level+1);
- $rs['children'] = $children;
- $rs['childshu'] = count($children);
- $this->getCoursedatasarr[$rs['id']] = $rs;
- $rows[] = $rs;
- }
- }
- return $rows;
- }
-
- //获取显示数据
- public function getTreedata($setid)
- {
- $drows = $this->db->getall("select *,(select count(1) from `[Q]flow_course` where `setid`=".$setid." and `mid`=a.id)as stotal from `[Q]flow_course` a where a.`setid`='$setid' order by a.`sort`");
- $this->getTreedatada = array();
- $this->getTreedatada[] = array(
- 'name' => '提交',
- 'num' => '',
- 'id' => 0,
- 'stotal' => 1,
- 'mid' => 0,
- 'status' => 1,
- 'iszf' => 0,
- 'level' => 1
- );
- $this->getTreedatas($drows,'0',2);
- return $this->getTreedatada;
- }
- private function getTreedatas($drows,$mid,$level)
- {
- foreach($drows as $k=>$rs){
- if($rs['mid']==$mid){
- $rs['level'] = $level;
- if($rs['whereid']=='0'){
- $rs['whereid']='';
- }else{
- $rs['whereid']=$this->db->getmou('[Q]flow_where','name', 'id='.$rs['whereid'].'');
- }
- $this->getTreedatada[] = $rs;
- $this->getTreedatas($drows, $rs['id'], $level+1);
- }
- }
- }
-
- /**
- * 流程匹配的
- */
- public function pipeiCourse($setid)
- {
- $barr = $this->getCoursedata($setid, '*' );
- $rows = $barr['rows'];
- return array(
- 'rows' => $rows,
- 'rowd' => $this->getCoursedatasarr,
- );
- }
-
-
- /**
- * 读取临时步骤
- */
- public function getcoursetemp($setid, $djid)
- {
- $rows = $this->getall("`setid`='$setid' and `mid` in(-1,-2) and whereid='$djid'",'*','optdt asc');
- return $rows;
- }
- }
|