Files
xinhu/webmain/model/flow/planmModel.php
2022-09-29 15:34:08 +08:00

173 lines
4.9 KiB
PHP

<?php
class flow_planmClassModel extends flowModel
{
public function leixingdata()
{
$arr[] = array('value'=>'1','name'=>'年度');
$arr[] = array('value'=>'2','name'=>'季度');
$arr[] = array('value'=>'3','name'=>'月度');
$arr[] = array('value'=>'4','name'=>'周');
$arr[] = array('value'=>'5','name'=>'项目');
$arr[] = array('value'=>'0','name'=>'其他');
return $arr;
}
private function leixingval($lx)
{
$data = $this->leixingdata();
$str = $lx;
foreach($data as $kv=>$rv){
if($rv['value']==$lx){
$str = $rv['name'].'计划';
break;
}
}
return $str;
}
public function flowrsreplace($rs, $lx=0){
$rs['leixing'] = $this->leixingval($rs['leixing']);
$str = '';
if($rs['startdt']>$this->rock->now){
$str = '未开始';
}else if($rs['enddt']<$this->rock->now){
}else{
$str = '执行中';
}
if($rs['state']==1)$str='已完成';
if($rs['state']==2)$str='执行中';
if($rs['state']==0)$str='待执行';
if($rs['enddt']<$this->rock->now)$str.=',<font color=gray>已截止</font>';
if($rs['startdt']>$this->rock->now)$str='未开始';
$rs['state'] = $str;
return $rs;
}
//自定义审核人读取
protected function flowcheckname($num){
$sid = '';
$sna = '';
if($num=='zhixi'){
$ssid = '';
$runrenid = $this->rs['runrenid'];
if(!isempt($runrenid)){
$dbs = m('dept');
$runa = explode(',', $runrenid);
foreach($runa as $id1){
$id1d = str_replace(array('d','u'),'', $id1);
if(contain($id1,'d')){
$drs = $dbs->getone($id1d);
if($drs && !isempt($drs['headid']))$ssid.=','.$drs['headid'].'';
}else{
$ssid.=','.$id1d.'';
}
}
}
if($ssid){
$ssid = substr($ssid, 1);
$rows = $this->adminmodel->getall('id in('.$ssid.') and `status`=1');
if($rows){
foreach($rows as $k=>$rs){
$sid.=','.$rs['id'].'';
$sna.=','.$rs['name'].'';
}
$sid = substr($sid, 1);
$sna = substr($sna, 1);
}
}
}
return array($sid, $sna);
}
protected function flowbillwhere($uid, $lx)
{
$where = '';
if($lx=='bumen'){
$dbs = m('dept');
$detpids= '';
$drows = $dbs->getall($this->rock->dbinstr('headid', $uid)); //读取我负责的部门
foreach($drows as $k=>$rs)$detpids.=','.$rs['id'].'';
if($detpids!=''){
$detpids = substr($detpids,1);
for($i=1;$i<=2;$i++){
$drows = $dbs->getall('`pid` in('.$detpids.')');
foreach($drows as $k=>$rs)$detpids.=','.$rs['id'].'';
if(!$drows)break;
}
}
if(!$detpids){
$where='and 1=2';
}else{
$drows = $dbs->getall('`id` in('.$detpids.')');
$whewea = array();
foreach($drows as $k=>$rs){
$whewea[] = $this->rock->dbinstr('runrenid', 'd'.$rs['id'].'');
}
$where = 'and ('.join(' or ', $whewea).')';
}
}
return $where;
}
//判断是不是再执行人里面。
private $runboolpdid = 0;
public function runboolpd()
{
if($this->rs['status']!=1
|| ($this->rs['enddt']<$this->rock->now && $this->rs['state']==1)
|| $this->rs['startdt']>$this->rock->now)return false;
if($this->runboolpdid>0){
if($this->runboolpdid==1)return true;
if($this->runboolpdid==2)return false;
}
$bo = $this->adminmodel->containjoin($this->rs['runrenid'], $this->adminid);
$this->runboolpdid = $bo ? 1: 2;
return $bo;
}
//是否可执行
protected function flowdatalog($arr)
{
$runbool = $this->runboolpd();
return array(
'modelujs' => $runbool,
);
}
//子表数据替换处理
protected function flowsubdata($rows, $lx=0){
if($lx!=1 || !$rows || !$this->runboolpd())return $rows;
$inputobj = c('input');
foreach($rows as $k=>$rs){
$rows[$k]['zxren'] = $inputobj->inputchangeuser(array(
'type' => 'changedeptusercheck',
'changerange' => $this->rs['runrenid'],
'name' => 'zhixing_zxren_'.$rs['id'].'',
'id' => 'zhixing_zxrenid_'.$rs['id'].'',
'value' => $rs['zxren'],
'valueid' => $rs['zxrenid'],
'title' => '执行人'
));
$rows[$k]['zxtime'] = '<input name="zhixing_zxtime_'.$rs['id'].'" onclick="js.datechange(this,\'datetime\')" readonly value="'.$rs['zxtime'].'" class="inputs datesss">';
}
$zt = $this->rs['state'];
$rows[] = array(
'pitem'=>'执行状态',
'zxren'=>'<select id="ztstate" class="inputs"><option value="0">待执行</option><option value="2"'.(($zt==2)?' selected':'').'>执行中</option><option value="1"'.(($zt==1)?' selected':'').'>已完成</option></select>',
'zxtime'=>'<div align="left"><button type="button" onclick="submittijiao(this)" class="webbtn">保存</button></div>'
);
return $rows;
}
//统计未完成
public function getwwctotals($uid)
{
$where = m('admin')->getjoinstr('runrenid', $uid,0,1);
$where = "`status`=1 and `state`<>1 and `startdt`<'{$this->rock->now}' and `type`=0 $where";
return m('planm')->rows($where);
}
}