public function missystemnotice()
 {
     $WORKNUM = 10;
     //配置显示条数 审核进度跟踪模块
     $MisWorkMonitoringViewModel = D("MisWorkMonitoringView");
     $map['dostatus'] = 0;
     //代表待办任务strtolower
     //$map['_string'] = 'FIND_IN_SET(  '.$_SESSION[C('USER_AUTH_KEY')].', curNodeUser )';
     if (!$_SESSION["a"] == 1) {
         $map['_string'] = 'FIND_IN_SET(  ' . $_SESSION[C('USER_AUTH_KEY')] . ', curNodeUser )';
     }
     $map['node.status'] = 1;
     $MisWorkMonitoringList = $MisWorkMonitoringViewModel->where($map)->select();
     $list = array();
     $pidList = array();
     foreach ($MisWorkMonitoringList as $key => $val) {
         $listArray = array();
         if (getFieldBy($val['pid'], 'id', 'pid', 'node') != 1) {
             $val['pid'] = getFieldBy($val['pid'], 'id', 'pid', 'node');
         }
         if ($pidList[$val['pid']]) {
             $listArr = array('name' => $val['name'], 'tableid' => $val['tableid'], 'title' => $val['title'], 'createid' => $val['createid'], 'orderno' => $val['orderno'], 'timeout' => getCHStimeDifference($val['createtime'], $val['dotime']));
             $list[$val['pid']]['list'][] = $listArr;
         } else {
             $pidList[$val['pid']] = 1;
             $listArray[] = array('name' => $val['name'], 'tableid' => $val['tableid'], 'title' => $val['title'], 'createid' => $val['createid'], 'orderno' => $val['orderno'], 'timeout' => getCHStimeDifference($val['createtime'], $val['dotime']));
             $list[$val['pid']] = array('type' => getFieldBy($val['pid'], 'id', 'title', 'node'), 'list' => $listArray);
         }
     }
     $this->assign("WorkMonitonList", $list);
     // 		dump($list);
     return $this->fetch("MisSystemPanelMethod:waitingfirst");
 }
 /**
  * @Title: getCurrentWork
  * @Description: 首页index页面,点击待处理后请求执行的方法,为了获取代办事项
  * @return 返回带处理任务的数据信息,以及点击数据后,请求的方法地址。
  * @author 黎明刚
  * @date 2014年11月28日 下午2:34:56 
  * @throws
  */
 public function getCurrentWork()
 {
     $workexeList = array();
     //当前登录人id
     $userid = $_SESSION[C('USER_AUTH_KEY')];
     //获取带我处理的工作条数信息
     $model = D('MisWorkMonitoring');
     $map['dostatus'] = 0;
     $map['_string'] = 'FIND_IN_SET(  ' . $userid . ', curNodeUser )';
     $workdata = $model->where($map)->select();
     //计算总条数
     $daibanNum = count($workdata);
     //定义变量存放  待我审核,待我执行的数据集合
     $moduleNameList = array();
     foreach ($workdata as $k => $v) {
         $auditTimeOut = "";
         //计算推送时间到至今有多少小时。判断是否即将超时。
         $hours = getCHStimeDifference($v['createtime'], time(), "H");
         //获取系统中预留的超时提醒
         $referHours = C("AUDIT_TIMEOUT");
         //超期提前提醒时间
         $remindHours = C("AUDIT_TIMEOUT_REMIND");
         $countH = $hours + $remindHours;
         if ($countH >= $referHours) {
             $auditTimeOut = "即将超期";
             if ($hours >= $referHours) {
                 $auditTimeOut = "已超期";
             }
         }
         if (in_array($v['tablename'], array_keys($moduleNameList))) {
             if ($v['createtime'] > $moduleNameList[$v['tablename']]['createtime']) {
                 $moduleNameList[$v['tablename']]['createtime'] = $v['createtime'];
             }
             if ($moduleNameList[$v['tablename']]['auditTimeOut'] != "已超期" && $auditTimeOut) {
                 $moduleNameList[$v['tablename']]['auditTimeOut'] = $auditTimeOut;
             }
             $moduleNameList[$v['tablename']]['count'] = $moduleNameList[$v['tablename']]['count'] + 1;
         } else {
             $moduleNameList[$v['tablename']] = array('createtime' => $v['createtime'], 'title' => "[审批]" . getFieldBy($v['tablename'], 'name', 'title', 'node'), 'url' => __APP__ . "/MisWorkExecuting/index/jump/3/md/MisWorkMonitoring/worktype/1/rel/MisWorkExecutingbox/mytodoname/" . $v['tablename'], 'count' => 1, 'auditTimeOut' => $auditTimeOut);
         }
     }
     //工作审批 end
     //审批后执行数组
     $Model = M();
     //查询 可执行的 模块 名称
     $isexecutoridSql = "SELECT a.`name`,a.cname,b.executorid AS executorida,b.turnexecutorid,p.executorid\n\t\t\t\tFROM mis_work_executing_set AS a\n\t\t\t\tLEFT JOIN mis_work_executing AS b ON a. NAME = b.tablename\n\t\t\t\tLEFT JOIN process_info as p ON p.id = b.ptmptid\n\t\t\t\tWHERE dotype <> 1 and a.status=1";
     $isexecutoridArr = $this->query($isexecutoridSql);
     $executorid = array();
     //执行人 数组
     $workExecutor = array();
     //定义 可执行的tablename
     foreach ($isexecutoridArr as $k => $v) {
         $executorid = array_merge(explode(",", $v['executorida']), explode(",", $v['turnexecutorid']), explode(",", $v['executorid']));
         if (in_array($userid, $executorid) || isset($_SESSION['a'])) {
             //当前登录人在执行人数组中
             $workExecutor[] = $v['name'];
         }
     }
     //构造 查询 要处理的数量sql
     $numsql .= "SELECT COUNT(tablename) AS num, tablename, b.executorid AS executoridb, b.turnexecutorid,p.executorid\n\t\t\t\tFROM mis_work_executing_set AS a\n\t\t\t\tLEFT JOIN mis_work_executing AS b ON a. NAME = b.tablename\n\t\t\t\tLEFT JOIN process_info AS p ON b.ptmptid = p.id\n\t\t\t\tWHERE (dotype <> 1)";
     if (!isset($_SESSION['a'])) {
         //如果不是管理员 过滤条件
         $numsql .= "AND ( ( FIND_IN_SET('{$userid}', turnexecutorid) )\n\t\t\tOR ( FIND_IN_SET('{$userid}', b.executorid) )\n\t\t\tOR ( FIND_IN_SET('{$userid}', p.executorid) ) ) ";
     }
     $numsql .= "GROUP BY tablename";
     //获取 需要处理的数量 数组
     $numlist = $this->query($numsql);
     //查询 信息sql
     $workmap['name'] = array('in', $workExecutor);
     $workmap['dotype'] = array('neq', 1);
     $workSet = M("mis_work_executing_set");
     //数组
     $arrlist = $workSet->field("mis_work_executing_set.id,name,b.createtime,cname,dotype")->where($workmap)->join(" LEFT JOIN mis_work_executing as b ON b.tablename =mis_work_executing_set.`name`")->group("tablename")->select();
     //组装数量到数组中
     foreach ($numlist as $k => $v) {
         foreach ($arrlist as $k1 => $v1) {
             if ($v['tablename'] == $v1['name']) {
                 $moduleNameList[$v1['name'] . $k1] = array('createtime' => $v1['createtime'], 'title' => "[待办]" . $v1['cname'], 'url' => __APP__ . "/MisWorkExecuting/index/jump/4/md/" . $v1['name'] . "/dotype/0/rel/" . $v1['name'] . "_1", 'count' => $v['num']);
             }
         }
         $daibanNum += $v['num'];
         //待办总数量
     }
     //工作协同待办  查询待办事项条数
     $MisOaFlowsInstanceModel = D("MisOaFlowsInstance");
     $oamapdoing['flowsuser'] = $userid;
     $oamapdoing['status'] = 1;
     $oamapdoing['dostatus'] = array('lt', 2);
     $oaitemdoing = $MisOaFlowsInstanceModel->where($oamapdoing)->order("createtime desc")->select();
     if ($oaitemdoing) {
         $moduleNameList["MisWorkExecutingbox"] = array('createtime' => $oaitemdoing[0]['createtime'], 'title' => "[协同]工作协同", 'url' => __APP__ . "/MisWorkExecuting/index/jump/5/md/MisOaItems/type/3/rel/MisWorkExecutingbox", 'count' => count($oaitemdoing));
     }
     //对数组进行排序
     rsort($moduleNameList);
     //循环数组。进行li的封装
     if ($moduleNameList) {
         foreach ($moduleNameList as $key => $val) {
             $workexeList['html'] .= '<li><a tabid="MisWorkExecuting" tabname="工作中心" href="javascript:;" taburl="' . $val['url'] . '">' . $val['title'] . '&nbsp;( ' . $val['count'] . ' )</a></li>';
         }
     }
     $daibanNum += count($oaitemdoing);
     //待办总数量
     if ($daibanNum > 99) {
         $daibanNum = '99+';
     }
     $workexeList['daiban'] = $daibanNum;
     $workexeList['list'] = $moduleNameList;
     return $workexeList;
 }