169 lines
4.2 KiB
PHP
169 lines
4.2 KiB
PHP
<?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;
|
|
}
|
|
} |