/** * @Title: seeProcessDetail * @Description: todo(新版流程查看) * @author 杨东 * @date 2013-4-17 上午10:34:50 * @throws */ public function seeProcessDetail() { $id = $this->escapeStr($_GET['id']); // 当前单据ID $name = $this->getActionName(); // 当前单据模型 $model = D($name); // 构造当前单据模型 $ptmp = $model->where(array("id" => $id))->find(); // 查询当前表的状态noderuleinfo $pihmodel = D('process_info_history'); // 构造流程明细模型 $usermodel = D('User'); // 用户模型 // 新建状态的流程查看(初始化节点) $list = array(); if ($ptmp['flowid']) { // 查询最新流程 $pihmap = array(); $pihmap['pid'] = $ptmp['ptmptid']; $pihmap['tableid'] = $id; $pihmap['tablename'] = $name; $pihlist = $pihmodel->where($pihmap)->order('id desc')->select(); // 存在自定义流程 $allnode = $auditUser = array(); if ($ptmp['allnode']) { $allnode = explode(',', $ptmp['allnode']); } // 所有节点 if ($ptmp['auditUser']) { $auditUser = explode(';', $ptmp['auditUser']); } // 所有用户 $tekey = 1; // 构造所有节点 foreach ($allnode as $k => $v) { $auArr = explode(",", $auditUser[$k]); $str = ""; if (count($auArr) > 1) { $list[$tekey]['bx'] = "(并行)"; } $list[$tekey]['tid'] = $v; $list[$tekey]['name'] = "自定义节点" . $tekey; $list[$tekey]['user'] = $auditUser[$k]; $tekey++; } // 过滤回退以前的数据 $ftrue = true; $judge = array(); foreach ($pihlist as $k => $v) { if ($v['dotype'] == 1) { // 流程新建 $judge[] = $v; break; } if ($ftrue) { $judge[] = $v; } if ($v['dotype'] == 2) { // 流程启动 $ftrue = false; } } // 添加-4流程结束、-2流程启动、-1流程新建节点 array_unshift($list, array('tid' => -1), array('tid' => -2)); array_push($list, array('tid' => -4)); // 结束 // 给流程填满基础信息 foreach ($list as $k => $v) { // 添加中文名称及查看审核人链接 if ($v['tid'] > 0) { $list[$k]["url"] = "__URL__/seeAuditUser/id/" . $id . "/tid/" . $v['tid']; } else { if ($v['tid'] == -1) { $list[$k]['name'] = '新建'; $list[$k]['dotime'] = $ptmp["createtime"]; } else { if ($v['tid'] == -2) { $list[$k]['name'] = '开始'; $list[$k]['dotype'] = '创建'; } else { if ($v['tid'] == -4) { $list[$k]['name'] = '结束'; } } } } $bxuser = array_filter(explode(",", $v['user'])); if (count($bxuser) > 1) { $douser = $doinfo = array(); $dotime = $dotype = 0; foreach ($bxuser as $bxkey => $bcval) { // 添加流程记录信息 foreach ($judge as $k2 => $v2) { // 判断当前节点等于流程明细的审核节点 if ($v['tid'] == $v2['ostatus'] && $bcval == $v2['userid'] && $v['tid'] > 0) { $douser[] = $usermodel->where('id=' . $v2['userid'])->getField('name'); $doinfo[] = $v2['doinfo']; $dotime = $v2['dotime']; $dotype = $v2['dotype']; } } } if (count($bxuser) == count($douser)) { $list[$k]['show'] = 1; // 是否显示 } $list[$k]['dotime'] = $dotime; // 处理时间 $list[$k]['dotype'] = $dotype; // 处理状态 $list[$k]['doinfo'] = $doinfo; // 处理意见 $list[$k]['douser'] = $douser; // 处理人 } else { // 添加流程记录信息 foreach ($judge as $k2 => $v2) { $douser = $usermodel->where('id=' . $v2['userid'])->getField('name'); // 判断当前节点等于流程明细的审核节点 if ($v['tid'] == $v2['ostatus'] && $v['tid'] > 0) { $list[$k]['show'] = 1; // 是否显示 $list[$k]['dotime'] = $v2['dotime']; // 处理时间 $list[$k]['dotype'] = $v2['dotype']; // 处理状态 $list[$k]['douser'][] = $douser; // 处理人 $list[$k]['doinfo'][] = $v2['doinfo']; // 处理意见 } else { if (abs($v['tid']) == $v2['dotype'] && $v['tid'] < 0) { $list[$k]['show'] = 1; // 是否显示 $list[$k]['dotime'] = $v2['dotime']; // 处理时间 $list[$k]['dotype'] = $v2['dotype']; // 处理状态 $list[$k]['douser'][] = $douser; // 处理人 $list[$k]['doinfo'][] = $v2['doinfo']; // 处理意见 } } } } } } else { if ($ptmp['ptmptid'] && !$ptmp['flowid']) { // 查询流程名称 $pimodel = M('process_info_form'); $where = array(); $where['tableid'] = $id; $where['tablename'] = $name; $pname = $pimodel->where($where)->order("id desc")->field('id,name')->find(); $this->assign('pname', $pname['name']); //查询最新流程 $pihmap = array(); $pihmap['tableid'] = $id; $pihmap['tablename'] = $name; //流程历史记录 $pihlist = $pihmodel->where($pihmap)->order('id desc')->select(); //获取节点数据 $process_relation_formDao = M("process_relation_form"); $where = array(); $where['tableid'] = $id; $where['tablename'] = $name; $where['doing'] = 1; $where['flowtype'] = array('gt', 1); $relaformlist = $process_relation_formDao->where($where)->order("sort asc")->getField("relationid,flowtype,id,name,curAuditUser,parallel"); //构造所有节点 foreach ($relaformlist as $k => $v) { $list[$k]['relaid'] = $v['id']; $list[$k]['name'] = $v['name']; $list[$k]['tid'] = $v['id']; $list[$k]['flowtype'] = $v['flowtype']; //当前节点可审核人 $curAuditUser = $v['curAuditUser']; if ($v['parallel'] == 2) { $curAuditUser = array(); //多批次并行。需要解析多批次审核人员 $countAuditUser = explode(";", $v['curAuditUser']); foreach ($countAuditUser as $kk => $vv) { $countAuditUser1 = explode(",", $vv); foreach ($countAuditUser1 as $kkk => $vvv) { array_push($curAuditUser, $vvv); } } $curAuditUser = implode(",", $curAuditUser); } $list[$k]['user'] = $curAuditUser; $list[$k]['parallel'] = $v["parallel"]; } // 过滤回退以前的数据 $ftrue = true; $lcjs = true; $judge = array(); $i = 0; $bool = true; foreach ($pihlist as $k => $v) { if ($v['dotype'] == 8 && $bool) { //第一个就遇到变更,则不填写结束信息 $bool = false; } if ($v['dotype'] == 4 && $bool) { $judge[] = $v; $bool = false; } if ($v['dotype'] == 1) { // 流程新建 $judge[] = $v; break; } if ($ftrue && $v['dotype'] != 4) { $judge[] = $v; } if ($v['dotype'] == 2) { // 流程启动 $ftrue = false; } } // 添加-4流程结束、-2流程启动、-1流程新建节点 array_unshift($list, array('tid' => -1), array('tid' => -2)); array_push($list, array('tid' => -4)); // 结束 // 给流程填满基础信息 foreach ($list as $k => $v) { // 添加中文名称及查看审核人链接 if ($v['tid'] > 0) { if ($v['parallel']) { $list[$k]['bx'] = "(并行)"; } if ($v['flowtype'] != 3) { $list[$k]["url"] = "__URL__/seeAuditUser/id/" . $id . "/tid/" . $v['relaid']; } if ($v['tid'] > 1356969600) { $list[$k]['name'] = "加签节点"; } else { $list[$k]['name'] = $v['name']; } } else { if ($v['tid'] == -1) { $list[$k]['name'] = '新建'; $list[$k]['dotime'] = $ptmp["createtime"]; } else { if ($v['tid'] == -2) { $list[$k]['name'] = '开始'; $list[$k]['dotype'] = '创建'; } else { if ($v['tid'] == -4) { $list[$k]['name'] = '结束'; } } } } if ($v['parallel'] == 2) { // 添加流程记录信息 foreach ($judge as $k2 => $v2) { $douser = $usermodel->where('id=' . $v2['userid'])->getField('name'); // 判断当前节点等于流程明细的审核节点 if ($v['tid'] == $v2['ostatus'] && $v['tid'] > 0) { $list[$k]['show'] = 1; // 是否显示 $list[$k]['dotime'] = $v2['dotime']; // 处理时间 $list[$k]['dotype'] = $v2['dotype']; // 处理状态 $list[$k]['douser'][] = $douser; // 处理人 $list[$k]['doinfo'][] = $v2['doinfo']; // 处理意见 } else { if (abs($v['tid']) == $v2['dotype'] && $v['tid'] < 0) { $list[$k]['show'] = 1; // 是否显示 $list[$k]['dotime'] = $v2['dotime']; // 处理时间 $list[$k]['dotype'] = $v2['dotype']; // 处理状态 $list[$k]['douser'][] = $douser; // 处理人 $list[$k]['doinfo'][] = $v2['doinfo']; // 处理意见 } } } } else { if ($v['parallel'] == 1) { //添加流程记录信息 $bxuser = explode(",", $v['user']); if (count($bxuser) > 1) { $doinfo = array(); $douser = array(); $dotime = $dotype = 0; foreach ($bxuser as $bk => $bv) { // 添加流程记录信息 foreach ($judge as $k2 => $v2) { // 判断当前节点等于流程明细的审核节点 if ($v['tid'] == $v2['ostatus'] && $bv == $v2['userid']) { $douser[] = $usermodel->where('id=' . $v2['userid'])->getField('name'); $doinfo[] = $v2['doinfo']; $dotime = $v2['dotime']; $dotype = $v2['dotype']; } } } if (count($bxuser) == count($douser)) { $list[$k]['show'] = 1; // 是否显示 } $list[$k]['dotime'] = $dotime; // 处理时间 $list[$k]['dotype'] = $dotype; // 处理状态 $list[$k]['doinfo'] = $doinfo; // 处理意见 $list[$k]['douser'] = $douser; // 处理人 } else { // 添加流程记录信息 foreach ($judge as $k2 => $v2) { $douser = $usermodel->where('id=' . $v2['userid'])->getField('name'); // 判断当前节点等于流程明细的审核节点 if ($v['tid'] == $v2['ostatus'] && $v['tid'] > 0) { $list[$k]['show'] = 1; // 是否显示 $list[$k]['dotime'] = $v2['dotime']; // 处理时间 $list[$k]['dotype'] = $v2['dotype']; // 处理状态 $list[$k]['douser'][] = $douser; // 处理人 $list[$k]['doinfo'][] = $v2['doinfo']; // 处理意见 } else { if (abs($v['tid']) == $v2['dotype'] && $v['tid'] < 0) { $list[$k]['show'] = 1; // 是否显示 $list[$k]['dotime'] = $v2['dotime']; // 处理时间 $list[$k]['dotype'] = $v2['dotype']; // 处理状态 $list[$k]['douser'][] = $douser; // 处理人 $list[$k]['doinfo'][] = $v2['doinfo']; // 处理意见 } } } } } else { // 添加流程记录信息 foreach ($judge as $k2 => $v2) { $douser = $usermodel->where('id=' . $v2['userid'])->getField('name'); // 判断当前节点等于流程明细的审核节点 if ($v['tid'] == $v2['ostatus'] && $v['tid'] > 0) { $list[$k]['show'] = 1; // 是否显示 $list[$k]['dotime'] = $v2['dotime']; // 处理时间 $list[$k]['dotype'] = $v2['dotype']; // 处理状态 $list[$k]['douser'][] = $douser; // 处理人 $list[$k]['doinfo'][] = $v2['doinfo']; // 处理意见 } else { if (abs($v['tid']) == $v2['dotype'] && $v['tid'] < 0) { $list[$k]['show'] = 1; // 是否显示 $list[$k]['dotime'] = $v2['dotime']; // 处理时间 $list[$k]['dotype'] = $v2['dotype']; // 处理状态 $list[$k]['douser'][] = $douser; // 处理人 $list[$k]['doinfo'][] = $v2['doinfo']; // 处理意见 } } } } } } } } // 构造节点处理等待时间 foreach ($list as $k => $v) { // 判断处理时间是否存在 if ($list[$k]['dotime']) { $next = $k + 1; // 取到下个审核节点 // 判断下个节点是否小于所有节点之和 if ($next < count($list)) { $nexttime = $list[$next]['dotime']; // 下个节点处理时间 // 判断下个节点时间是否存在 if (!$nexttime) { $nexttime = time(); // 等于当前时间 } // 下个节点时间减去当前节点时间获取小时数 $hours = number_format(($nexttime - $list[$k]['dotime']) / 3600); // 判断小时数是否大于一天 if ($hours > 24) { // 大于一天的 用填进行计算 $list[$k]['days'] = round(number_format($hours) / 24) . '天'; } else { $list[$k]['days'] = number_format($hours) . '小时'; } } else { $list[$k]['days'] = $list[$k - 1]['days']; } $list[$k]['dotime'] = transTime($v['dotime']); } else { $list[$k]['days'] = " "; } } $this->assign('list', $list); $orderno = ""; if ($ptmp['orderno']) { $orderno = $ptmp['orderno']; } else { $orderno = $ptmp['code']; } $this->assign('orderno', $orderno); $this->display('Public:process'); }
public function lookupGetdate() { $name = 'MisWorkPlanContent'; $model = M('mis_work_plan_content'); $map = array(); $map['status'] = 1; if ($_SESSION["a"] != 1) { $map['userid'] = $_SESSION[C('USER_AUTH_KEY')]; } if ($_REQUEST['createid']) { $map['createid'] = $_REQUEST['createid']; } $starttime = strtotime($_REQUEST['starttime']); $endtime = strtotime($_REQUEST['endtime']); $map['createtime'] = array("exp", ">=" . $starttime . " and createtime <" . $endtime); $list = $model->where($map)->field('id,createtime')->select(); $arr = array(); $aaa = array(); foreach ($list as $key => $value) { $daytime = date("Y-m-d", $value['createtime']); $daytime = strtotime($daytime); if (!in_array($daytime, $aaa)) { $start = transTime($value['createtime'], 'Y-m-d H:i:s'); $end = transTime($value['createtime'] + 1, 'Y-m-d H:i:s'); $arr[] = array('id' => $value['id'], 'title' => "", 'start' => $start, 'end' => $end, 'tdclassName' => 'pred'); array_push($aaa, $daytime); } } echo json_encode($arr); }
/** * @Title: getNoticeDetail * @Description: todo(获得系统公告详细信息,返回的是json) * @param unknown_type $id 公告id * @author xiafengqin * @date 2014-4-3 下午3:45:52 * @throws */ public function getNoticeDetail() { //获取系统公告ID $id = $_REQUEST['id']; //判断当前用户是否已查看 未查看则添加记录 $mSAUmodel = M("mis_system_announcement_user"); $readStatus = $mSAUmodel->where("userid=" . $this->userid . " and announceid=" . $id)->getField("status"); $readData = array(); $readData['userid'] = $this->userid; $readData['announceid'] = $id; $readData['status'] = 1; if ($readStatus == NULL) { //新增 $mSAUmodel->data($readData)->add(); } else { if ($readStatus == 0) { //状态为未读时 $mSAUmodel->where("userid=" . $this->userid . " and announceid=" . $_REQUEST['id'])->setField('status', 1); } } $MisSystemAnnouncementModel = D('MisSystemAnnouncement'); $map = array(); $map['status'] = 1; $map['commit'] = 1; $map['id'] = $id; $returnData = $MisSystemAnnouncementModel->where($map)->field('id,title,createid,createtime,content')->find(); if ($returnData) { //声明相关附件表 $modelMAR = M('MisAttachedRecord'); //获取附件信息 $num = 0; $map = array(); $map["status"] = 1; $map["orderid"] = $returnData['id']; $map["type"] = 78; $attarry = $modelMAR->field("upname,attached")->where($map)->select(); if ($attarry) { $returnData['attach'] = array(); foreach ($attarry as $attkey => $attval) { $returnData['attach'][$num]['attachname'] = $attval['upname']; //注意这里的路径,必须是__APP__."/MisSystemAnnouncement/misFileManageDownload/:对应模型名称,不能是__URL__."/misFileManageDownload/;将取不到数据 $returnData['attach'][$num]['attachurl'] = __APP__ . "/MisSystemAnnouncement/misFileManageDownload/path/" . base64_encode($attval['attached']) . "/rename/" . $attval['upname']; $num++; } } else { //你存在数据是赋予空值 $returnData['attach'] = null; } } //将id转化成人名,将时间戳转换成日期格式,将部门取出 $returnData['username'] = getFieldBy($returnData['createid'], 'id', 'name', 'user'); $deptid = getFieldBy($returnData['createid'], 'id', 'dept_id', 'user'); $returnData['deptname'] = getFieldBy($deptid, 'id', 'name', 'mis_system_department'); $returnData['createtime'] = transTime($returnData['createtime']); $returnData['content'] = strip_tags($returnData['content']); unset($returnData['createid']); if ($returnData) { //echo '[{"error":"没有找到数据"}]'; echo json_encode($returnData); } else { echo '{"error":"没有找到数据"}'; } }
/** * * @Title: lookupremindList * @Description: todo(获取用户提醒list) * @param unknown_type $map * @return unknown * @author renling * @date 2014-8-29 下午5:18:47 * @throws */ public function lookupremindList($map) { $uid = $_SESSION[C('USER_AUTH_KEY')]; //提醒表 $MisSystemRemindModel = D('MisSystemRemind'); if ($map) { $userMap = $map; } $alluserid = array(); //查询排除id $MisSystemRemindallList = $MisSystemRemindModel->where(" status=1 and userid ='all' and deluserid not in (" . $uid . ")")->select(); foreach ($MisSystemRemindallList as $akey => $aval) { if ($aval['deluserid']) { $deluserid = explode(",", $aval['deluserid']); if (in_array($uid, array_values($deluserid))) { $alluserid[] = $aval['id']; } } } // if($alluserid){ // $userMap['id']=array("not in",array_values($alluserid)); // } $userMap['_string'] = " userid =" . $uid . " or userid ='all' and status=1 and deluserid not in (" . $uid . ")"; $userMap['status'] = 1; $remindList = $MisSystemRemindModel->where($userMap)->select(); $remindAllList = array(); //当前时间 $time = time(); $nowtime = strtotime(transTime($time, 'Y-m-d') . " 00:00"); //提醒中心单独查询条数 $remindModel = D("MisSystemDataRemindMasView"); foreach ($remindList as $key => $rval) { $count = 0; $sumcount = 0; $val = unserialize($rval['reminddetail']); if ($val['modulename']) { $model = D($val['modulename']); } //封装外层list $remindAllList[$rval['id']] = array('id' => $rval['id'], 'userid' => $rval['userid'], 'color' => $val['color'], 'title' => mb_substr($val['title'], 0, 2, 'utf-8'), 'map' => unserialize($rval['map']), 'name' => $val['modulename'], 'span' => $val['span']); //循环替换map里 time 以及特殊符号表示 foreach ($val['list'] as $lkey => $lval) { if ($lval['map']) { //替换map中不规范数据 $lval['map'] = str_replace(array('"', ''', '<', '>', '$uid', '$time', '$nowtime'), array('"', "'", '<', '>', $uid, $time, $nowtime), $lval['map']); if ($val['modulename'] == 'MisWorkPlan') { $planModel = D("MisWorkPlan"); $plan['_string'] = "( FIND_IN_SET('{$uid}', commentpeople) )"; //查询满足条件条数 $planlist = $planModel->field("id")->where($plan)->select(); if ($planlist) { foreach ($planlist as $v) { $comid .= "," . $v['id']; } $comid = substr($comid, 1); $lval['map'] .= " and id not in (" . $comid . ")"; } } } if ($val['modulename'] == "MisSystemDataRemindSub") { $remindMap = array(); $remindMap['mis_system_data_remind_sub.status'] = 1; //当前用户 $remindMap['mis_system_data_remind_sub.userid'] = $_SESSION[C('USER_AUTH_KEY')]; //未读 $remindMap['mis_system_data_remind_sub.isread'] = 0; //弹框 $remindMap['mis_system_data_remind_sub.operation'] = 1; $remindList = $remindModel->where($remindMap)->getField('pkey,modelname'); $count = count($remindList); } else { //查询符合条件条数 $count = $model->where($lval['map'])->count('*'); } $sumcount += $count; if ($count > 99) { $count = '99+'; } //封装符合条件子数组 list $remindAllList[$rval['id']]['list'][$lkey] = array('relhref' => $lval['relmodule'], 'remindMap' => base64_encode($lval['map']), 'showrules' => $lval['showmap'], 'rulesinfo' => $lval['listarr'], 'rules' => $lval['map'], 'count' => $count, 'keyv' => $lkey, 'reltitle' => $val['title'], 'rtitle' => $lval['rtitle']); } $remindAllList[$rval['id']]['sumcount'] = $sumcount; } //通过keyv 重新对数组进行排序 array_sort($remindAllList, 'keyv', 'desc'); //根据条数重新对数组进行排序 $remindAllList = array_merge(array_sort($remindAllList, 'sumcount', 'desc')); return $remindAllList; }
$res = $db->LimitQuery($sql, $offset, $row, $params) or die($sql); $dataTable = $res->GetRows(); foreach ($dataTable as $k => $v) { $uid = $v['uid']; //用户uid $bid = $v["blogid"]; //动态id $cmnt = (int) $v['replynum']; //评论数 $like = (int) $v['click3']; //喜欢 $share = (int) $v['sharetimes']; //分享 $message = $v["subject"]; //动态内容225字 $dataline = transTime($v["dateline"]); //发布时间 $avatar = getAvatar($uid, "small"); //用户头像 //获取地点. $sql = "select resideprovince, residecity, residedist from disc_common_member_profile where uid='{$uid}'"; $res = $db->Execute($sql) or die($sql); $province = $res->fields['resideprovince'] ? $res->fields['resideprovince'] : "北京"; $city = $res->fields['residecity'] ? $res->fields['residecity'] : "北京"; $dist = $res->fields['residedist']; $place = array($province, $city, $dist); $rows[$k] = array("bid" => $bid, "uid" => $uid, "nickname" => $v['username'], "place" => $place, "avatar" => $avatar, "dateline" => $dataline, "message" => $message, "view" => $v['viewnum'], "cmnt" => $cmnt, "like" => $like, "share" => $share); } $data = array("status" => "ok", "msg" => "data query done.", "page" => $page, "rows" => $rows); } else { if ($act == "like") {
//当时间过期后转回当事人 public function guoqizhuanshou() { //记录成功数 $chenggongshu = 0; //获取当前时间戳 $newtime = time(); //实例化对象 $modelMbw = M('mis_auto_guikc'); $modelMonitoring = M('MisWorkMonitoring'); $map = array(); $map['shixiaoriqi'] = array('lt', $newtime); //是否已失效 0:表示未失效 1:表示已失效 $map['yishixiao'] = 0; //创建流程转售查询 $listMbw = $modelMbw->where($map)->field('id,shixiaoriqi,zhuanshougei,zhuanshouren')->select(); //遍历每行数据 foreach ($listMbw as $key => $val) { // 如果当前时间大于失效时间就把审核人变回原来的审核人 if ($newtime > $val['shixiaoriqi']) { $map = array(); $map['dostatus'] = '0'; $map['zhuanshou'] = '1'; $map['status'] = '1'; $map['_string'] = 'FIND_IN_SET( ' . $val['zhuanshougei'] . ',curAuditUser )'; //查找到的人 $listMonitoring = $modelMonitoring->field('id,curAuditUser,zhuanshou')->where($map)->select(); //遍历misworkmonitoring中的每行数据 进行更新 foreach ($listMonitoring as $mtkey => $mtval) { $mtmap = array(); //以ID来更新 $mtmap['id'] = $mtval['id']; //替换掉审核人 $mtval['curAuditUser'] = str_replace($val['zhuanshougei'], $val['zhuanshouren'], $mtval['curAuditUser']); //另一种更新方法 同时改变转授状态 变回0未转授状态 $data = array('curAuditUser' => $mtval['curAuditUser'], 'zhuanshou' => '0', 'miaoshu' => '转授时间到期,未处理单据自动收回到原审核人'); $bool = $modelMonitoring->where($mtmap)->setField($data); if ($bool == false) { echo $modelMonitoring->getlastSql() . "执行转授审核人撤回失败sql,执行时间是" . transTime(time(), 'Y-m-d H:i:s') . "\n"; } $chenggongshu++; } //将当前恢复过的数据进行失效处理 $where = array(); $where['id'] = $val['id']; $where['yishixiao'] = 1; $modelMbw->save($where); } } $this->transaction_model->commit(); //事务提交 echo "执行成功" . transTime(time(), 'Y-m-d H:i:s') . "\n";
/** * @Title: ageList * @Description: todo(获取年龄阶段数据) * @return Ambigous <multitype:, string, number, unknown> * @author 杨东 * @date 2014-2-27 上午11:38:11 * @throws */ private function ageList() { //人事模型 $MisHrBasicEmployeeModel = D('MisHrBasicEmployee'); //年龄配置模型 $MisHrReportConfigurationModel = D('MisHrReportConfiguration'); $MisHrReportConfigurationList = $MisHrReportConfigurationModel->where("status=1")->select(); //当前时间 $time = date('Y-m-d', strtotime(transTime(time()))); $list = array(); $listmap = array(); foreach ($MisHrReportConfigurationList as $key => $val) { $startage = date('Y-m-d', strtotime("{$time} -" . $val['startage'] . " year")); $endage = date('Y-m-d', strtotime("{$time} -" . $val['endage'] . " year")); $listmap['status'] = 1; $listmap['working'] = 1; //在职 $listmap['_string'] = 'birthday>= ' . strtotime($endage) . " AND birthday<=" . strtotime($startage); $list[$key]['name'] = $val['startage'] . '岁~' . $val['endage'] . "岁"; //组成显示名称 $count = $MisHrBasicEmployeeModel->where($listmap)->count('*'); if ($count) { $list[$key]['count'] = $count; } else { $list[$key]['count'] = 0; } } return $list; }
/** * @Title: lookupGetdate * @Description: todo(获得存在数据库中的日程安排) * @author xiafengqin * @date 2013-7-11 上午11:23:50 * @throws */ public function lookupGetdate() { $start = strtotime($_POST['start']); $end = strtotime($_POST['end']); $model = D('MisUserEvents'); $map = array(); $map['status'] = 1; $map['_string'] = ' (FIND_IN_SET( ' . $_SESSION[C('USER_AUTH_KEY')] . ' , personid ) OR userid = ' . $_SESSION[C('USER_AUTH_KEY')] . ') and ( startdate <' . $end . ' and enddate >=' . $start . ')'; $list = $model->where($map)->select(); $arr = array(); $bgcolor = $this->bgcolor; foreach ($list as $key => $value) { $start = transTime($value['startdate'], 'Y-m-d H:i:s'); $end = transTime($value['enddate'], 'Y-m-d H:i:s'); //86400秒=1天 $allDay = true; if ($value['enddate'] - $value['startdate'] < 86400) { $allDay = false; } if (!$value['importancedegree']) { $value['importancedegree'] = 1; } $scheduletype = $value['scheduletype'] == 2 ? '[工作]' : '[个人]'; $arr[] = array('id' => $value['id'], 'createid' => $value['createid'], 'title' => $scheduletype . missubstr($value['text'], 18, true), 'start' => $start, 'end' => $end, 'allDay' => $allDay, 'importancedegree' => $value['importancedegree'], 'className' => $bgcolor[$value['importancedegree']]['color']); } echo json_encode($arr); }
public function render($data) { //dump($data); //dump($data);exit; $tablename = MODULE_NAME; // 当前类名 //当前id $tableid = $data['id']; $projectid = $data['projectid']; $projectworkid = $data['projectworkid']; //实例化后台用户模型 $userModel = D("User"); //获取节点数据 $process_relation_formDao = M("process_relation_form"); $where = array(); $where['tableid'] = $tableid; $where['tablename'] = $tablename; $relaformlist = $process_relation_formDao->where($where)->order("sort asc")->getField("relationid,flowtype,auditState,id,name,auditUser,parallel,isaudittableid,isauditmodel"); $auditUserArr = array(); $bool = true; foreach ($relaformlist as $key => $val) { $arr = array(); $arr['isaudittableid'] = $val['isaudittableid']; $arr['name'] = $val['name']; $arr['isauditmodel'] = $val['isauditmodel']; $arr['parallel'] = $val['parallel']; $arr['nodeid'] = $val['relationid']; $arr['flowtype'] = $val['flowtype']; if ($val['auditState'] == 1) { //表示当前节点以审核 $arr['auditStatus'] = 1; $arr['classval'] = 'check_current_ed'; } else { if ($bool) { //表示当前为待审核节点 $arr['auditStatus'] = 2; $arr['classval'] = 'check_current'; $bool = false; } else { //未审核节点 $arr['auditStatus'] = 0; $arr['classval'] = ''; } } if ($val['flowtype'] == 3) { $arr['audituser'] = array(); } else { $map = array(); $map['id'] = array(' in ', explode(",", $val["auditUser"])); $userlist = $userModel->where($map)->field("id,name")->select(); $arr['audituser'] = $userlist; } $auditUserArr[] = $arr; } //dump($auditUserArr); $html = ""; //*******************流程审核人部分********************// /* <div class="tml_time_line"> <p><span class="time_line_header">该商机沟通记录:</span></p> <div class="timeline"> <div class="separator"></div> <volist id="voList" name="voList" key="key"> <div class="timeline-entry group_bl_color"> <span class="time_warp">{$voList['linktime']||transtime='Y-m-d'}</span> <div class="metadata"> <p>沟通人:<span class="group_per">{$voList['linkpeople']}</span><span class="icon-map-marker flower_adds"> {$voList['address']}</span></p> </div> <div class="time_line_content"> <ul class="tlc_ul1"> <li> <span>沟通主题:<span class="group_per">{$voList['title']}</span></span> <ul class="tlc_ul1 tlc_ul2" > <li style="list-style-type:none">{$voList['linknews']}</li> <!-- <li>公司规模比较大(拥有2万多头肉羊)</li> <li>对羊肉的品质要求比较高</li> --> </ul> </li> </ul> </div> </div> </volist> </div> </div> */ /* $html .='<div class="fieldset_show_box">'; $html .=' <legend class="fieldset_legend_toggle side-catalog-text side-catalog-firstanchor">'; $html .=' <a name="liuchengtu"></a><b>信息</b>'; $html .=' <div class="tml_style_line tml_sl4 tml_slb_blue"></div>'; $html .=' </legend>'; $html.= '</div>'; $html.= '<div class="fieldsetjs_show_box">'; $html.='<div class="check_info"><div class="check_flow_path">'; foreach($auditUserArr as $k=>$v){ $html .='<div class="'.$v['classval'].'">'; if($k > 0)$html .='<span class="forward_sign icon-double-angle-right"></span>'; $html .='<div class="per_big_box">'; //加上串并行图标 if(count(array_keys($v['audituser']))>1){ if($v['parallel'] == 1){ $html .='<i class="parallel_tips"></i>'; }else{ $html .='<i class="serial_tips"></i>'; } } if($v['flowtype'] == 3){ $html .='<div class="per_box">'; $html .=' <img width="45" src="__PUBLIC__/Images/sub_process.jpg" alt=""/>'; if($v['isaudittableid']){ $bool = getFieldBy($v["isauditmodel"],'name','isprocess','node'); $function = $bool?'auditView':'view'; $html .=' <a href="__APP__/'.$v["isauditmodel"].'/'.$function.'/id/'.$v["isaudittableid"].'" title="'.$v['name'].'" target="navTab"><span>'.$v['name'].'</span></a>'; }else{ $html .=' <span>'.$v['name'].'</span>'; } $html .='</div>'; }else{ foreach($v['audituser'] as $k1=>$v1){ //获取用户的头像。 $pic = $userModel->getUserPic($v1['id']); $html .='<div class="per_box">'; $html .=' <img width="45" src="'.$pic.'" alt=""/>'; $html .=' <span>'.$v1['name'].'</span>'; $html .='</div>'; } } $html.= '</div></div>'; } $html .='</div></div>'; $html .='<div class="clear"></div>'; */ //获取审核意见部分信息 $ProcessInfoHistoryModel = D("ProcessInfoHistory"); //查询最新流程 $pihmap = array(); //$pihmap['ptmptid'] = $data['ptmptid']; //$pihmap['tableid'] = $tableid; //$pihmap['tablename']= $tablename; $pihmap['projectid'] = $projectid; /* if($projectworkid){ $pihmap['projectworkid']=$projectworkid; } */ $pihmap['document'] = 1; $pihlist = $ProcessInfoHistoryModel->where($pihmap)->order('createtime asc')->select(); //dump($ProcessInfoHistoryModel->getlastsql()); //dump($pihlist); // 过滤回退以前的数据 $ftrue = true; $judge = array(); foreach ($pihlist as $k2 => $v2) { if ($v2['dotype'] == 2) { continue; } if ($ftrue) { $judge[] = $v2; } } $i = 0; $html .= '<div class="fieldset_show_box">'; $html .= ' <legend class="fieldset_legend_toggle side-catalog-text side-catalog-firstanchor">'; $html .= ' <a name="liuchengtu"></a><b>审批信息</b>'; $html .= ' <div class="tml_style_line tml_sl4 tml_slb_blue"></div>'; $html .= ' </legend>'; $html .= '</div>'; $html .= '<div class="tml_time_line">'; $html .= '<p><span class="time_line_header">审批记录:</span></p>'; $html .= '<div class="timeline">'; $html .= '<div class="separator"></div>'; foreach ($judge as $k3 => $v3) { if ($v3['ostatus'] > 0 || $v3['dotype'] == 5 || $v3['dotype'] == 8) { //dump($v3); //获取职级名称 $dutyname = getFieldBy(getHrInfo($v3['userid'], "dutyid"), 'id', 'name', 'MisSystemDuty'); $html .= ' <div class="timeline-entry group_bl_color">'; $html .= ' <span class="time_warp">' . transTime($v3['dotime'], 'Y-m-d H:i') . '</span>'; $html .= ' <div class="metadata">'; $html .= '<p>审批人:<span class="group_per">' . getFieldBy($v3['userid'], 'id', 'name', 'user') . '【' . $dutyname . '】</span></p>'; $html .= '</div>'; $html .= '<div class="time_line_content">'; $html .= '<ul class="tlc_ul1">'; $html .= '<li>'; $html .= '<span>审批意见:<span class="group_per">' . $v3['doinfo'] . '</span></span>'; $html .= '<ul class="tlc_ul1 tlc_ul2" >'; $html .= '<li style="list-style-type:none"></li>'; $html .= '</ul>'; $html .= '</li>'; $html .= '</ul>'; $html .= '</div>'; $html .= '</div>'; //获取用户的头像。 /* $pic = $userModel->getUserPic($v3['userid']); $html .='<div class="check_info_content">'; if($i == 0)$html .='<div class="file_name">审批</div><div class="tml_style_line tml_slb_red"></div>'; //获取职级名称 $dutyname = getFieldBy(getHrInfo($v3['userid'],"dutyid"), 'id', 'name', 'MisSystemDuty'); $class = ""; if($v3['dotype'] == 6){ //打回的样式 $class = "tml_waring_color"; } $html .='<div class="check_body">'; $html .=' <div class="check_body_left left">'; $html .=' <img width="45" src="'.$pic.'" alt="">'; $html .=' </div>'; $html .=' <div class="check_body_right left">'; $html .=' <div class="">'; $html .=' <span class="author_color">'.getFieldBy($v3['userid'], 'id', 'name', 'user').'</span>'; $html .=' <span class="tml-mr5 time_color">【'.$dutyname.'】</span>'; $html .=' <span class="time_color">'.transTime($v3['createtime'],'Y-m-d H:i').'</span>'; $html .=' </div>'; $html .=' <div class="check_content '.$class.'">'.$v3['doinfo'].'</div>'; $html .=' </div>'; $html .=' </div>'; $html .='</div>'; */ $i++; } } $html .= '</div>'; $html .= '</div>'; $html .= '</div>'; return $html; }
$affect_rows = $db->Affected_rows(); if ($affect_rows > 0) { $data = array("status" => "ok", "info" => "处理成功"); } else { $data = array("status" => "error", "info" => "处理失败"); } } else { if ($act == "list") { //列出所有申请 $rows = array(); $tid = $_GET['tid']; $sql = "select * from disc_forum_activityapply where tid='{$tid}'"; $res = $db->Execute($sql); $i = 0; while (!$res->EOF) { $rows[$i] = array("applyid" => $res->fields['applyid'], "tid" => $res->fields['tid'], "username" => $res->fields['username'], "uid" => $res->fields['uid'], "message" => $res->fields['message'], "dateline" => transTime($res->fields['dateline']), "payment" => $res->feilds['payment'], "ufielddata" => ""); $i++; $res->MoveNext(); } } else { if ($act == "invite") { //邀请好友参加活动 $tuid = $_GET['touid']; $fuid = $_GET['fromuid']; $username = get_username($fuid); $tid = $_GET['tid']; $tuid = trim($tuid, ","); $tuids = explode(",", $tuid); //查询相关数据 $sql = "select title from disc_forum_activity where tid='{$tid}'"; $res = $db->Execute($sql);
<small>已有<?php echo $applicantsnumber; ?> 人报名</small> <table class='table table-bordered table-hover table-responsive'> <?php if ($applicantsnumber > 0) { foreach ($applicants as $applicant) { ?> <tr> <td><?php echo empty($applicant['realname']) ? '匿名' : $applicant['realname']; ?> </td> <td align="right"><?php echo transTime($applicant['enroll_time']); ?> </td> </tr> <?php } } ?> </table> </div> <div class="countdown"> <p>报名剩余时间</p> <div class="cc"> <div class="cd"> <div><span>totalHours</span><i>时</i></div><div class="dot">:</div>
/** * @Title: getChildTaskTree * @Description: todo(获取子节点) * @return array * @param $taskid taskid * @param $taskTree 节点树 * @param $level 层级 * @author jiangx * @throws */ private function getChildTaskTree($taskid, &$taskTree, $level) { $level++; $model = D("MisTaskInformationView"); $childtask = $model->where('mis_task.pid = ' . $taskid . ' AND mis_task.status = 1')->select(); if (!$childtask) { return true; } foreach ($childtask as $key => $val) { $new = array(); $new['id'] = $val['taskid']; $new['parent'] = $val['pid']; $new['loaded'] = true; $new['expanded'] = false; $new['level'] = $level; $new['remark'] = missubstr(strip_tags($val['remark']), 60, true); $new['title'] = missubstr($val['title'], 30, true); $new['begindate'] = transTime($val['begindate'], 'Y-m-d H:m'); $new['enddate'] = transTime($val['enddate'], 'Y-m-d H:m'); $new['executeuserid'] = $val['executeuser']; $new['executeuser'] = getFieldBy($val['executeuser'], 'id', 'name', 'User'); $new['executingstatus'] = excelTplselected($val['executingstatus'], '1:未查看,2:已查看,3:进行中,4:关闭,5:暂停,6:完成,7:结束,8:申请暂停,0:未启动'); $new['urgentstatus'] = excelTplselected($val['urgentstatus'], '1:<span class="levelGreen"> </span>,2:<span class="levelOrange"> </span>,3:<span class="levelRed"> </span>'); $new['difficulty'] = excelTplselected($val['difficulty'], '1:简单,2:一般,3:困难,4:极难'); $new['chedule'] = '<span class="taskprogressbar"><span class="taskpspan1" style="width:' . $val['chedule'] . '%;"></span><span class="taskpspan2">' . $val['chedule'] . '%</span></span>'; $new['status'] = getStatus($val['status']); $new['button'] = "<a href='__URL__/lookupTask/id/" . $val['id'] . "' title='子任务基本信息查看' target='dialog' width='600' height='500' mask='true'>基本信息</a>"; $taskTree[$new['id']] = $new; $isLeaf = $this->getChildTaskTree($val['taskid'], $taskTree, $level); $taskTree[$new['id']]['isLeaf'] = $isLeaf; } return false; }
/** * @Title: lookupGetdate * @Description: todo(加载选中数据) * @author liminggang * @date 2013-7-3 上午11:07:34 * @throws */ public function lookupGetdate() { $name = 'MisWorkStatement'; $model = M('mis_work_statement'); $map = array(); $map['status'] = 1; $starttime = strtotime($_REQUEST['starttime']); $endtime = strtotime($_REQUEST['endtime']); /* if (! empty ( $name )) { $qx_name=$name; //验证浏览及权限 if( !isset($_SESSION['a']) ){ if( $_SESSION[strtolower($qx_name.'_'.ACTION_NAME)]!=1 ){ if( $_SESSION[strtolower($qx_name.'_'.ACTION_NAME)]==2 ){////判断部门及子部门权限 $map["createid"]=array("in",$_SESSION['user_dep_all_child']); }else if($_SESSION[strtolower($qx_name.'_'.ACTION_NAME)]==3){//判断部门权限 $map["createid"]=array("in",$_SESSION['user_dep_all_self']); }else if($_SESSION[strtolower($qx_name.'_'.ACTION_NAME)]==4){//判断个人权限 $map["createid"]=$_SESSION[C('USER_AUTH_KEY')]; } } } } */ $map["createid"] = $_SESSION[C('USER_AUTH_KEY')]; $map['createtime'] = array("exp", ">=" . $starttime . " and createtime <" . $endtime); $list = $model->where($map)->field('id,createtime')->select(); $aaa = $arr = array(); foreach ($list as $key => $value) { $daytime = date("Y-m-d", $value['createtime']); $daytime = strtotime($daytime); if (!in_array($daytime, $aaa)) { $start = transTime($value['createtime'], 'Y-m-d H:i:s'); $end = transTime($value['createtime'] + 1, 'Y-m-d H:i:s'); $arr[] = array('id' => $value['id'], 'title' => "", 'start' => $start, 'end' => $end, 'tdclassName' => 'pred'); array_push($aaa, $daytime); } } echo json_encode($arr); }
/** * @Title: doFlowsMessage * @Description: todo(处理协同发送消息) * @param 接收人 $auserid * @param 标题 $title * @param 协同ID $ids * @param 处理类型 $type :“审核”、“终止” * @author 杨东 * @date 2014-4-25 上午11:55:21 * @throws */ private function doFlowsMessage($auserid, $title, $ids, $type) { //发布人 $name = getFieldBy($_SESSION[C('USER_AUTH_KEY')], 'id', 'name', 'user'); //发送的系统日志的标题 $messageTitle = $name . $type . '了您发送的协同事项【' . $title . '】 ,请查阅! ' . transTime(time(), 'Y-m-d H:i'); //系统日志的内容 $messageContent = ' <p></p> <span></span> <div style="width:98%;"> <p class="font_darkblue"> 您好!</p> <p> <strong>' . $name . " " . $type . ' </strong>了您发送的协同事项【 <a class="redo tml-c-blue" style="text-decoration: underline" href="__APP__/MisOaItems/view/id/' . $ids . '" target="navTab" title="协同事项_查看" rel="MisOaItemsview">' . $title . '</a> 】 ,请点击链接进行查阅!。</p> <p> 如果您有任何问题,请联系' . $name . '。</p> </div>'; //系统推送消息 $this->pushMessage($auserid, $messageTitle, $messageContent); }
/** * @Title: myEvents * @Description: todo(我的日程管理,在我的桌面日历上面标记我的日程) * @author liminggang * @date 2013-12-30 下午3:19:48 * @throws */ private function myEvents() { //获取当前登录用户 $userid = $_SESSION[C('USER_AUTH_KEY')]; //获取当前登录人的日程 $model = D('MisUserEvents'); //获取当前月份的日程 // $y=date("Y",time()); // $m=date("m",time()); // $d=date("d",time()); // $t0=date('t'); // 本月一共有几天 // $starttime=mktime(0,0,0,$m,1,$y); // 创建本月开始时间 // $endtime=mktime(23,59,59,$m,$t0,$y); // 创建本月结束时间 $map['_string'] = 'FIND_IN_SET( ' . $userid . ',personid ) or userid = ' . $_SESSION[C('USER_AUTH_KEY')]; $map['status'] = 1; $list = $model->where($map)->select(); //第二部,分解日程,特别是一个日程中连续夸天数的。拆分开 if ($list) { $num = count($list); foreach ($list as $key => $val) { $a = strtotime(transTime($val['startdate'])); $b = strtotime(transTime($val['enddate'])); $x = ($b - $a) / 86400; if ($x) { for ($i = 1; $i <= $x; $i++) { $val['begintime'] = strtotime("+" . $i . " day", $a); $list[$num] = $val; $num++; } } $list[$key]['begintime'] = $a; } } $arr = array(); //第三部、分解一天中多个日程。 if ($list) { foreach ($list as $k => $v) { $str = htmlspecialchars_decode($v['details'], ENT_QUOTES); //转码 $str = trim(strip_tags(str_replace(" ", ' ', $str))); //过滤html $v['details'] = $str; if (!in_array($v['begintime'], array_keys($arr))) { $arr[$v['begintime']][] = $v; } else { $arr[$v['begintime']][] = $v; } } } //第四部、判断日程属于那种类型,1,2,3 $azz = array(); foreach ($arr as $k1 => $v1) { $self = 1; foreach ($v1 as $k2 => $v2) { if ($v2['userid'] == $userid) { $self = 1; //自己发 if (in_array($userid, explode(",", $v2['personid']))) { $self = 3; break; } } else { if (in_array($userid, explode(",", $v2['personid']) && $v2['userid'] != $userid)) { $self = 2; //别人发的。 } } } $azz[$k1][$self] = $v1; } $this->assign('myEvents', json_encode($azz)); }
/** * @Title: getMyEvents * @Description: todo(我的日程管理,在我的桌面日历上面标记我的日程) * @author liminggang * @date 2013-12-30 下午3:19:48 * @throws */ public function getMyEvents() { //获取当前登录用户 $userid = $_SESSION[C('USER_AUTH_KEY')]; //获取当前登录人的日程 //$model = D('MisUserEvents'); //获取当前月份的日程 $map['_string'] = 'FIND_IN_SET( ' . $userid . ',personid ) or userid = ' . $_SESSION[C('USER_AUTH_KEY')]; $map['status'] = 1; $list = $this->where($map)->select(); //第二部,分解日程,特别是一个日程中连续夸天数的。拆分开 if ($list) { $num = count($list); foreach ($list as $key => $val) { //转移掉反斜杠 $list[$key]['details'] = preg_replace("|[" . chr(1) . "-" . chr(31) . "]+|", '', $val['details']); $list[$key]['text'] = preg_replace("|[" . chr(1) . "-" . chr(31) . "]+|", '', $val['text']); $a = strtotime(transTime($val['startdate'])); $b = strtotime(transTime($val['enddate'])); $x = ($b - $a) / 86400; if ($x) { for ($i = 1; $i <= $x; $i++) { $val['begintime'] = strtotime("+" . $i . " day", $a); $list[$num] = $val; $num++; } } $list[$key]['begintime'] = $a; } } $arr = array(); //第三部、分解一天中多个日程。 if ($list) { foreach ($list as $k => $v) { $str = htmlspecialchars_decode($v['details'], ENT_QUOTES); //转码 $str = trim(strip_tags(str_replace(" ", ' ', $str))); //过滤html $v['details'] = $str; if (!in_array($v['begintime'], array_keys($arr))) { $arr[$v['begintime']][] = $v; } else { $arr[$v['begintime']][] = $v; } } } //第四部、判断日程属于那种类型,1,2,3 $azz = array(); foreach ($arr as $k1 => $v1) { $self = 1; foreach ($v1 as $k2 => $v2) { if ($v2['userid'] == $userid) { $self = 1; //自己发 if (in_array($userid, explode(",", $v2['personid']))) { $self = 3; break; } } else { if (in_array($userid, explode(",", $v2['personid']) && $v2['userid'] != $userid)) { $self = 2; //别人发的。 } } foreach ($v2 as $k3 => $v3) { $v1[$k2][$k3] = is_string($v3) ? stripslashes($v3) : $v3; } } $azz[$k1][$self] = $v1; } return $azz; }
/** * * @Title: getDeptZtree * @Description: todo(传入公司id生成树形结构 $parentisclick顶级是否可点击) * @param unknown_type $deptlist * @return multitype:multitype:string boolean unknown * @author renling * @date 2014-9-3 上午10:51:02 * @throws */ public function getDeptZtree($companyid, $parentisclick, $rel, $method, $url, $checkuser) { //查询所有部门信息 $where = array(); $where['status'] = 1; if ($companyid) { $where['companyid'] = $companyid; } if (!$method) { $method = "index"; } $deptlist = $this->where($where)->select(); $MisHrPersonnelUserDeptViewModel = D('MisHrPersonnelUserDeptView'); $arr = array(); foreach ($deptlist as $k => $v) { if ($v['iscompany'] == 1) { $pid = 0; } else { $pid = $v['parentid']; } if ($v['iscompany'] == 1 && !$parentisclick) { $arr[] = array('id' => -$v['id'], 'name' => $v['name'], 'title' => $v['name'], 'pId' => $pid, 'isParent' => true, 'open' => 'true'); } else { if ($checkuser) { $hrMap = array(); $hrMap['_string'] = "user_dept_duty.status=1 and user.status>0 and user_dept_duty.deptid=" . $v['id']; if ($companyid) { $newcompanyid = $companyid; } else { $newcompanyid = $v['companyid']; } $hrMap['user_dept_duty.companyid'] = $newcompanyid; //查询该部门下的人员 $MisHrPersonnelList = $MisHrPersonnelUserDeptViewModel->where($hrMap)->select(); if ($MisHrPersonnelList) { $eamil = array(); $userid = array(); $username = array(); $mobile = array(); $personid = array(); foreach ($MisHrPersonnelList as $hrkey => $hrval) { if ($hrval['id']) { $arr[] = array('id' => $hrval['id'], 'email' => $hrval['email'], 'mobile' => $hrval['mobile'], 'personid' => $hrval['id'], 'userid' => $hrval['userid'], 'deptname' => getFieldBy($hrval['deptid'], "id", "name", "mis_system_department"), 'deptid' => $hrval['deptid'], 'worktype' => $hrval['worktype'], 'worktypename' => getFieldBy($hrval['worktype'], "id", "name", "mis_hr_job_info"), 'dutyid' => $hrval['dutyid'], 'chinaid' => $hrval['chinaid'], 'dutyname' => getFieldBy($hrval['dutyid'], "id", "name", "mis_system_duty"), 'indate' => transTime($hrval['indate']), 'pinyin' => $hrval['pinyin'], 'name' => $hrval['name'], 'title' => $hrval['name'], 'username' => $hrval['username'], 'pId' => -$v['id'], 'type' => 'post', "icon" => "__PUBLIC__/Images/icon/group.png", 'open' => 'true'); $eamil[] = $hrval['email']; $userid[] = $hrval['userid']; $username[] = $hrval['username']; $mobile[] = $hrval['mobile']; $personid[] = $hrval['id']; } } } $arr[] = array('id' => -$v['id'], 'ename' => '组部门', 'email' => implode(",", $eamil), 'mobile' => implode(",", $mobile), 'username' => implode(",", $username), 'personid' => implode(",", $personid), 'userid' => implode(",", $userid), 'name' => $v['name'], 'title' => $v['name'], 'pId' => -$pid, 'type' => 'post', 'isParent' => true, 'open' => 'true'); $eamil = array(); $userid = array(); $username = array(); $mobile = array(); $personid = array(); } else { $arr[] = array('id' => $v['id'], 'name' => $v['name'], 'title' => $v['name'], 'pId' => $pid, 'type' => 'post', 'url' => '__URL__/' . $method . '/jump/jump/deptid/' . $v['id'] . '/ptId/' . $v['parentid'] . '/companyid/' . $v['companyid'] . $url, 'target' => 'ajax', 'rel' => $rel, 'isParent' => true, 'open' => 'false'); } $id++; } } return json_encode($arr); }
/** * @Title: lookupGetdate * @Description: todo(获得存在数据库中的任务名,显示在日历上) * @author xiafengqin * @date 2013-7-23 下午1:48:00 * @throws */ public function lookupGetdate() { $executelist = array(); //执行的任务 $tracklist = array(); //跟踪的任务 $viewModel = D("MisTaskInformationView"); $map['status'] = 1; //判断是否有执行权限 if ($_SESSION['a'] || $_SESSION['mistaskadscription_edit']) { $map['_string'] = 'mis_task_information.executeuser = '******'USER_AUTH_KEY')]; $executelist = $viewModel->where($map)->select(); } if ($_SESSION['a'] || $_SESSION['mistaskinformation_trace']) { $map['_string'] = 'mis_task_information.trackuser = '******'USER_AUTH_KEY')]; $tracklist = $viewModel->where($map)->select(); } $arr = array(); foreach ($executelist as $key => $value) { $datas['id'] = $value['id']; $datas['taskid'] = $value['taskid']; $datas['title'] = missubstr($value['title'], 20, true); $datas['start'] = transTime($value['begindate'], 'Y-m-d H:i:s'); $datas['end'] = transTime($value['enddate'], 'Y-m-d H:i:s'); $datas['urgentstatus'] = $value['urgentstatus']; $datas['className'] = $value['urgentstatus'] == 1 ? 'myblue' : ($value['urgentstatus'] == 2 ? 'myorange' : 'myred'); //这里可以设置此action的样式 $datas['type'] = 'execute'; $arr[] = $datas; } foreach ($tracklist as $key => $value) { $datas['id'] = $value['id']; $datas['taskid'] = $value['taskid']; $datas['title'] = missubstr($value['title'], 20, true); $datas['start'] = transTime($value['begindate'], 'Y-m-d H:i:s'); $datas['end'] = transTime($value['enddate'], 'Y-m-d H:i:s'); $datas['urgentstatus'] = $value['urgentstatus']; $datas['className'] = $value['urgentstatus'] == 1 ? 'myblue' : ($value['urgentstatus'] == 2 ? 'myorange' : 'myred'); //这里可以设置此action的样式 $datas['type'] = 'track'; $arr[] = $datas; } echo json_encode($arr); }
/** * * @Title: SaveVersionWord * @Description: todo(生成任意位字符随机数) * @param int $id 操作数据ID * @param string $name 当前操作表单Model名称 * @param boolean $isrelation 是否为直接输出错误信息,false:直接输出,true:异常抛出, 默认false * @param boolean $return 是否返回数据 默认为false * @author xiayuqin * @date 2015-6-27 上午11:23:35 * @throws */ public function SaveVersionWord($id, $name, $isrelation = false, $return = false) { $id = $id; if (!$id) { if (!$isrelation) { $this->error('数据版本错误,ID不存在!'); } else { $msg = "数据版本错误,ID不存在!"; throw new NullPointExcetion($msg); } } if (empty($name)) { $name = $this->getActionName(); } $list = $this->get_export_label($id, $name); //查询节点下面的审批记录 $ProcessInfoHistoryModel = D('ProcessInfoHistory'); //先查询启动流程的意见 $HistoryMap = array(); $HistoryMap['tableid'] = $id; $HistoryMap['tablename'] = $name; $HistoryMap['dotype'] = 2; //流程启动 $History = $ProcessInfoHistoryModel->where($HistoryMap)->order("id asc")->field('id,tableid,tablename,ostatus,dotime,doinfo,userid')->find(); //获取后台用户名称 $userid = ""; $time = ""; if ($History) { $userid = getFieldBy($History['userid'], 'id', 'name', 'user'); $time = transTime($History['dotime'], 'Y/m/d H:i'); } $prorelaName = "制单节点"; //查询当前流程开始节点名称 $process_info = M("process_info"); $promap = array(); $promap['nodename'] = $name; $promap['default'] = 1; $pinfoid = $process_info->where($promap)->getField("id"); if ($pinfoid) { //实例化节点表 $process_relation = M("process_relation"); $promap = array(); $promap['tablename'] = "process_info"; $promap['pinfoid'] = $pinfoid; $promap['flowtype'] = 0; //开始节点 //获取开始节点名称 $prorelaName = $process_relation->where($promap)->getField("name"); } //模式一 begin $newHinfo = array(); //节点名称 $newHinfo['createname']['original'][] = $prorelaName; $newHinfo['createname']['value'][] = $prorelaName; //审核意见 $newHinfo['createdoinfo']['original'][] = $History['doinfo']; $newHinfo['createdoinfo']['value'][] = $History['doinfo']; //审核时间 $newHinfo['createdotime']['original'][] = $time; $newHinfo['createdotime']['value'][] = $time; //审核人 $newHinfo['createuser']['original'][] = $userid; $newHinfo['createuser']['value'][] = $userid; //模式一 end //模式二 begin $list["createname"] = array('name' => "createname", 'showname' => '', 'original' => '', 'value' => $prorelaName); $list["createdoinfo"] = array('name' => "createdoinfo", 'showname' => '', 'original' => '', 'value' => $History['doinfo']); $list["createdotime"] = array('name' => "createdotime", 'showname' => '', 'original' => '', 'value' => $time); $list["createuser"] = array('name' => "createuser", 'showname' => '', 'original' => '', 'value' => $userid); //模式二 end //流程启动节点拼装完成 //拼装流程审核节点意见---- 不管意见是否存在。节点内容全部输出。满足表格形似的意见 $sql = "SELECT flowid,process_relation_form.`name` AS name,user.`name` AS username,doinfo,dotime FROM process_relation_form\n\t\tLEFT JOIN `process_info_history` ON process_relation_form.`id` = process_info_history.`ostatus`\n\t\tLEFT JOIN `user` ON process_info_history.`userid` = user.`id`\n\t\tWHERE process_relation_form.`tablename` = '{$name}' AND process_relation_form.`tableid`={$id} \n\t\tAND process_relation_form.`doing`= 1 AND process_relation_form.catgory = 0 AND process_relation_form.flowtype in (2,3)"; $Mdl = M(); //查询流程审核节点信息 $bach = array(); $relation_formlist = $Mdl->query($sql); foreach ($relation_formlist as $rk => $rv) { if (in_array($rv['flowid'], array_keys($bach))) { $bach[$rv['flowid']] += 1; } else { $bach[$rv['flowid']] = 0; } $time = ""; if ($rv['dotime']) { $time = transTime($rv['dotime'], 'Y/m/d H:i'); } //如果为0 则标记没有 $num = $bach[$rv['flowid']] > 0 ? $bach[$rv['flowid']] : ''; $list[substr(md5($rv['flowid'] . "HS_name"), 0, 8) . $num] = array('name' => substr(md5($rv['flowid'] . "HS_name"), 0, 8) . $num, 'showname' => '', 'original' => '', 'value' => $rv['name']); $list[substr(md5($rv['flowid'] . "HS_doinfo"), 0, 8) . $num] = array('name' => substr(md5($rv['flowid'] . "HS_doinfo"), 0, 8) . $num, 'showname' => '', 'original' => '', 'value' => $rv['doinfo']); $list[substr(md5($rv['flowid'] . "HS_dotime"), 0, 8) . $num] = array('name' => substr(md5($rv['flowid'] . "HS_dotime"), 0, 8) . $num, 'showname' => '', 'original' => '', 'value' => $time); $list[substr(md5($rv['flowid'] . "HS_userid"), 0, 8) . $num] = array('name' => substr(md5($rv['flowid'] . "HS_userid"), 0, 8) . $num, 'showname' => '', 'original' => '', 'value' => $rv['username']); //瓶装表格审批数据 //节点名称 $newHinfo['createname']['original'][] = $rv['name']; $newHinfo['createname']['value'][] = $rv['name']; //审核意见 $newHinfo['createdoinfo']['original'][] = $rv['doinfo']; $newHinfo['createdoinfo']['value'][] = $rv['doinfo']; //审核时间 $newHinfo['createdotime']['original'][] = $time; $newHinfo['createdotime']['value'][] = $time; //审核人 $newHinfo['createuser']['original'][] = $rv['username']; $newHinfo['createuser']['value'][] = $rv['username']; } $tableInfo = array('0' => array('name' => '0', 'is_stats' => 0, 'func' => '', 'funcdata' => '', 'original' => $newHinfo['createname']['original'], 'value' => $newHinfo['createname']['value']), '1' => array('name' => '1', 'is_stats' => 0, 'func' => '', 'funcdata' => '', 'original' => $newHinfo['createdoinfo']['original'], 'value' => $newHinfo['createdoinfo']['value']), '2' => array('name' => '2', 'is_stats' => 0, 'func' => '', 'funcdata' => '', 'original' => $newHinfo['createuser']['original'], 'value' => $newHinfo['createuser']['value']), '3' => array('name' => '3', 'is_stats' => 0, 'func' => '', 'funcdata' => '', 'original' => $newHinfo['createdotime']['original'], 'value' => $newHinfo['createdotime']['value'])); $hisarr = array(); //构造整个审核意见框 $hisarr = array('name' => 'doinfoval', 'is_datatable' => 1, 'title_none' => 1, 'showname' => '审核意见', 'value' => $tableInfo); $list['doinfoval'] = $hisarr; if ($return) { return $list; } else { //获取当前模型的名称,得到版本控制 $actionName = getFieldBy($name, 'name', 'title', 'node'); $savewordModel = M('mis_system_template_saveword'); $savewordMap['modelid'] = $id; $savewordMap['modelname'] = $name; $savecount = $savewordModel->where($savewordMap)->count('*'); if ($savecount) { $savecount += 1; $savename = $actionName . "(" . $savecount . ")"; } else { $savename = $actionName . "(1)"; } $wordData['modelid'] = $id; $wordData['modelname'] = $name; $wordData['fileurl'] = null; $wordData['swfurl'] = null; $wordData['filename'] = $savename . date('Y-m-d H:i:s', time()); $wordData['isexport'] = 0; $wordData['createtime'] = time(); $wordData['type'] = 0; $query = $savewordModel->add($wordData); if ($query == false) { if (!$isrelation) { $this->error('版本控制保存失败'); } else { $msg = "版本控制保存失败 [sql error]" . $savewordModel->getError() . '[action]' . $name; throw new NullPointExcetion($msg); } } //数据采用文件缓存方式。文件目录在Dynamicconf/FormListData/$name/$name.$id $FormListDataModel = D("FormListData"); $FormListDataModel->SetRules($list, $name, $name . $query); } }
public function render($data) { if ($data['ShowActionName']) { $modulename = $data['ShowActionName']; } else { $modulename = MODULE_NAME; // 当前类名 } //获取流程转授用户信息 $zhuanshoupson = $this->getZshouPserSon(); //实例化后台用户模型 $userModel = D("User"); //获取节点数据 $process_relation_formDao = M("process_relation_form"); //批次并行 $process_relation_parallelDao = M("process_relation_parallel"); $where = array(); $where['tableid'] = $data['id']; $where['tablename'] = $modulename; $where['doing'] = 1; $where['flowtype'] = array('gt', 1); $relaformlist = $process_relation_formDao->where($where)->order("sort asc")->getField("relationid,flowtype,auditState,id,name,auditUser,parallel,bacthname,isaudittableid,isauditmodel,catgory"); //查询开始节点名称 $prorelaName = "制单节点"; //查询当前流程开始节点名称 $process_info = M("process_info"); $promap = array(); $promap['nodename'] = $modulename; $promap['default'] = 1; $pinfoid = $process_info->where($promap)->getField("id"); if ($pinfoid) { //实例化节点表 $process_relation = M("process_relation"); $promap = array(); $promap['tablename'] = "process_info"; $promap['pinfoid'] = $pinfoid; $promap['flowtype'] = 0; //开始节点 //获取开始节点名称 $prorelaName = $process_relation->where($promap)->getField("name"); } $createUser[] = array('relationid' => 0, 'auditUser' => $data['createid'], 'name' => $prorelaName, 'auditState' => 1); //开始节点查询完毕 $relaformlist = array_merge($createUser, $relaformlist); $auditUserArr = array(); $bool = true; foreach ($relaformlist as $key => $val) { $userlist = array(); $arr = array(); $arr['isaudittableid'] = $val['isaudittableid']; $arr['name'] = $val['name']; $arr['isauditmodel'] = $val['isauditmodel']; $arr['parallel'] = $val['parallel']; $arr['nodeid'] = $val['id']; $arr['flowtype'] = $val['flowtype']; if ($val['auditState'] == 1) { //表示当前节点已审核 $arr['auditStatus'] = 1; $arr['classval'] = 'check_current_ed'; } else { if ($bool) { //表示当前为待审核节点 $arr['auditStatus'] = 2; $arr['classval'] = 'check_current'; $bool = false; } else { //未审核节点 $arr['auditStatus'] = 0; $arr['classval'] = ''; } } if ($val['parallel'] == 2) { $person = array(); //多批次审核人串并混搭 $map = array(); $map['tablename'] = $modulename; $map['tableid'] = $data['id']; $map['relation_formid'] = $val['id']; $relation_parallellist = $process_relation_parallelDao->where($map)->select(); foreach ($relation_parallellist as $k1 => $v1) { if (explode(",", $v1['curAuditUser'])) { $map = array(); $map['id'] = array(' in ', explode(",", $v1['curAuditUser'])); $userlist = $userModel->where($map)->field("id,name")->select(); } $arr1 = array(); //判断颜色值 $classval = ""; if ($v1['auditState'] == 2) { //审核完成 $classval = "check_current_ed"; } if ($v1['auditState'] == 1) { //待审核 $classval = "check_current"; } $arr1[] = array('classval' => $classval, 'bacthname' => $v1['bactchname'], 'auditUser' => $userlist); if (!in_array($v1['sort'], array_keys($person))) { $person[$v1['sort']] = $arr1; } else { $person[$v1['sort']] = array_merge($person[$v1['sort']], $arr1); } } $arr['audituser'] = $person; } else { if (explode(",", $val['curAuditUser'])) { $map = array(); $map['id'] = array(' in ', explode(",", $val["auditUser"])); $userlist = $userModel->where($map)->field("id,name")->select(); } $arr['audituser'] = $userlist; } $auditUserArr[] = $arr; } //$disableNoneModel审核信息 默认不显示状态的模块 by xyz 2015-10-28 $disableNoneModel = array("MisAutoJds", "MisAutoHxz", "MisAutoXny"); $disable = ''; if (in_array($modulename, $disableNoneModel)) { $disable = 'style="display:none;"'; } $html = ""; //*******************流程审核人部分********************// $html .= '<div class="fieldset_show_box">'; $html .= ' <legend class="fieldset_legend_toggle side-catalog-text side-catalog-firstanchor">'; $html .= ' <a name="liuchengtu"></a><b>审核信息</b>'; $html .= ' <div class="tml_style_line tml_sl4 tml_slb_blue"></div>'; $html .= ' </legend>'; $html .= '</div>'; $html .= '<div class="fieldsetjs_show_box" ' . $disable . '>'; $html .= '<div class="check_info"><div class="check_flow_path check_flow_path_new">'; foreach ($auditUserArr as $k => $v) { $html .= '<div class="' . $v['classval'] . '">'; if ($k > 0) { $html .= '<span class="forward_sign icon-double-angle-right"></span>'; } $html .= '<div class="per_big_box">'; $html .= '<div class="pro_top_title">' . $v['name'] . '</div>'; //加上串并行图标 if (count(array_keys($v['audituser'])) > 1) { if ($v['parallel'] >= 1) { $html .= '<i class="parallel_tips"></i>'; } else { $html .= '<i class="serial_tips"></i>'; } } if ($v['flowtype'] == 3) { $html .= '<div class="per_box">'; $html .= ' <img width="45" src="__PUBLIC__/Images/sub_process.jpg" alt=""/>'; $name = array(); foreach ($v['audituser'] as $k1 => $v1) { //定义转授人 $zhuanshouren = ""; if ($zhuanshoupson) { foreach ($zhuanshoupson as $zskey => $zsval) { if ($zsval['zhuanshouren'] == $v1['id']) { if ($zsval['zhuanshoufanwei'] == "全部") { $zhuanshouren = getFieldBy($zsval['zhuanshougei'], "id", "name", "user"); } else { //转授明细,暂留 } } } } if ($zhuanshouren) { $str = $v1['name'] . "->" . $zhuanshouren; } else { $str = $v1['name']; } //拼装转子流程人 array_push($name, $str); } $name = implode(",", $name); if ($v['parallel'] == 0) { if ($v['isaudittableid']) { $bool = getFieldBy($v["isauditmodel"], 'name', 'isprocess', 'node'); $function = $bool ? 'auditView' : 'view'; $html .= ' <a href="__APP__/' . $v["isauditmodel"] . '/' . $function . '/id/' . $v["isaudittableid"] . '" title="' . $v['name'] . '" target="navTab"><span>' . $v['name'] . '<br/>' . $name . '</span></a>'; } else { $html .= ' <span>' . $v['name'] . '<br/>' . $name . '</span>'; } } else { $html .= ' <span>' . $v['name'] . '<br/>' . $name . '</span>'; } $html .= '</div>'; } else { if ($v['parallel'] == 2) { foreach ($v['audituser'] as $k2 => $v2) { foreach ($v2 as $kk => $vv) { if ($kk > 0) { $html .= '<span class="forward_sign icon-double-angle-right"></span>'; } $html .= '<div class="per_big_box per_big_box_new">'; $html .= '<div class="' . $vv['classval'] . '">'; $html .= '<div class="pro_top_title">' . $vv['bacthname'] . '</div>'; foreach ($vv['auditUser'] as $k3 => $v3) { //定义转授人 $zhuanshouren = ""; if ($zhuanshoupson) { foreach ($zhuanshoupson as $zskey => $zsval) { if ($zsval['zhuanshouren'] == $v3['id']) { if ($zsval['zhuanshoufanwei'] == "全部") { $zhuanshouren = getFieldBy($zsval['zhuanshougei'], "id", "name", "user"); } else { //转授明细,暂留 } } } } if ($zhuanshouren) { $str = $v3['name'] . "->" . $zhuanshouren; } else { $str = $v3['name']; } //获取用户的头像。 $pic = $userModel->getUserPic($v3['id']); $html .= '<div class="per_box"><img width="45" alt="" src="' . $pic . '"> <span>' . $str . '</span></div>'; } $html .= '</div>'; $html .= '</div>'; } $html .= '<div class="clear"></div>'; } } else { foreach ($v['audituser'] as $k1 => $v1) { //定义转授人 $zhuanshouren = ""; if ($zhuanshoupson) { foreach ($zhuanshoupson as $zskey => $zsval) { if ($zsval['zhuanshouren'] == $v1['id']) { if ($zsval['zhuanshoufanwei'] == "全部") { $zhuanshouren = getFieldBy($zsval['zhuanshougei'], "id", "name", "user"); } else { //转授明细,暂留 } } } } if ($zhuanshouren) { $str = $v1['name'] . "->" . $zhuanshouren; } else { $str = $v1['name']; } //获取用户的头像。 $pic = $userModel->getUserPic($v1['id']); $html .= '<div class="per_box">'; $html .= ' <img width="45" src="' . $pic . '" alt=""/>'; $html .= ' <span>' . $str . '</span>'; $html .= '</div>'; } } } $html .= '</div></div>'; } $html .= '</div><div class="clear"></div></div>'; $html .= '<div class="clear"></div>'; //获取审核意见部分信息 $ProcessInfoHistoryModel = D("ProcessInfoHistory"); //查询最新流程 $pihmap = array(); //$pihmap['ptmptid'] = $data['ptmptid']; $pihmap['tableid'] = $data['id']; $pihmap['tablename'] = $modulename; $pihlist = $ProcessInfoHistoryModel->where($pihmap)->order('id desc')->select(); // 过滤回退以前的数据 // $ftrue = true; // $judge = array(); // foreach ($pihlist as $k2 => $v2) { // $judge[] = $v2; // } $i = 0; foreach ($pihlist as $k3 => $v3) { // if($v3['ostatus']>0 || $v3['dotype'] == 5 || $v3['dotype']==8 || $v3['dotype'] == 2){ //获取用户的头像。 $pic = $userModel->getUserPic($v3['userid']); $html .= '<div class="check_info_content">'; if ($i == 0) { $html .= '<div class="file_name">审批</div><div class="tml_style_line tml_slb_red"></div>'; } //获取职级名称 if ($v3['ostatus'] > 1430000000) { $relationname = "加签节点"; } else { $relationname = getFieldBy($v3['ostatus'], 'id', 'name', 'process_relation_form'); } $class = ""; if ($v3['dotype'] == 6) { //打回的样式 $class = "tml_waring_color"; } $html .= '<div class="check_body">'; $html .= ' <div class="check_body_left left">'; $html .= ' <img width="45" src="' . $pic . '" alt="">'; $html .= ' </div>'; $html .= ' <div class="check_body_right left">'; $html .= ' <div class="">'; $html .= ' <span class="author_color">' . getFieldBy($v3['userid'], 'id', 'name', 'user') . '</span>'; $html .= ' <span class="tml-mr5 time_color">【' . $relationname . '】</span>'; $html .= ' <span class="time_color">' . transTime($v3['createtime'], 'Y-m-d H:i') . '</span>'; $html .= ' </div>'; $html .= ' <div class="check_content ' . $class . '">' . $v3['doinfo'] . '</div>'; $html .= ' </div>'; $html .= '<div class="clear"></div>'; $html .= '</div>'; $html .= '</div>'; $i++; // } } $html .= '</div>'; return $html; }
function typeConvert($source, $param = null) { if (!empty($source) && !empty($param)) { $type = null; //初始化类型 $tempArr = null; //初始化承载值 $returnData = null; //初始化返回值 if (is_string($param)) { $tempArr = array(); $tempArr = explode("|", $param); $type = $tempArr['0']; } else { if (is_array($param)) { $type = $param['type']; } } switch ($type) { case 'time': $returnData = transTime($source); break; case 'bool': $returnData = (bool) $source; break; case 'int': $returnData = (int) $source; break; case 'float': //还可以扩展参数 $returnData = round(floatval($source), 2); break; case 'string': $returnData = (string) $source; break; case 'array': $returnData = (array) $source; break; case 'object': $returnData = (object) $source; break; case 'null': $returnData = NULL; break; default: $returnData = $source; break; } return $returnData; } else { return $source; } }
/** * @Title: _before_add * @Description: todo(打开新增页面前置函数) * @author xiafengqin * @date 2013-6-1 下午3:33:00 * @throws */ public function _before_add() { //自动生成订单 $scnmodel = D('SystemConfigNumber'); $orderno = $scnmodel->GetRulesNO('mis_hr_evaluation_train'); $this->assign("orderno", $orderno); //订单编号可写 $writable = $scnmodel->GetWritable('mis_hr_evaluation_train'); $this->assign("writable", $writable); //查询所有部门信息 $deptmodel = D("MisSystemDepartment"); $deptlist = $deptmodel->where("status=1")->select(); //selectTree做用是生成树型结构的下接选择 $deptlists = $this->selectTree($deptlist); $this->assign("deptlist", $deptlists); //部门ID,装表单中的部门默认选种 $classsource = $_REQUEST['classsource']; $this->assign('classsource', $classsource); //获取当前时间 $time = transTime(time(), 'Y'); $this->assign("time", $time); }
echo count($participation); ?> </p> <?php if ($this->session->flashdata('msg')) { echo "<div class='message'>" . $this->session->flashdata('msg') . "</div>"; } if (!empty($participation)) { echo "<table class='table table-striped table-bordered table-hover table-responsive'>"; $headers = array('会员编号', '会员姓名', '用户名', '报名时间', '会员管理'); echo "<tr>"; foreach ($headers as $header) { echo "<th>" . $header . "</th>"; } echo "</tr>"; foreach ($participation as $key => $list) { echo "<tr>"; echo "<td >" . $list['id'] . "</td>"; echo "<td>" . $list['realname'] . "</td>"; echo "<td>" . $list['username'] . "</td>"; echo "<td>" . transTime($list['enroll_time']) . "</td>"; echo "<td align='center'>" . anchor('admin/users/edit/' . $list['id'], '查看') . "</td>"; echo "</tr>"; } echo "</table>"; } ?> </div> </div> </div>
/** * 回复邮件 **/ public function replyMessage() { //调出用户例表 $modelMM = A('MisMessage'); $modelMM->searchuser(); $id = $_REQUEST['id']; $name = "MisMessageUser"; $model = D($name); //联合查询条件 $condition['a.id'] = $id; $list = $model->table('mis_message_user as a')->where($condition)->join('mis_message as b ON a.sendid = b.id')->find(); //获取原始邮件信息 并组装到div中 传入页面 $list['createname'] = getFieldBy($list['createid'], 'id', 'name', 'user'); // $list['createtime'] = transTime($list['createtime'], 'Y-m-d h:i'); $message = "<div style='background:#e0ecf9;'>\n\t\t <p>--------------原始邮件----------------</p>\n\t\t <p><b>主题</b>:{$list['title']}</p>\n\t\t <p><b>发件人</b>:{$list['createname']}</p>\n\t\t <p><b>发件时间</b>:{$list['createtime']}</p>\n <p><b>收件人</b>:{$list['recipientname']}</p>\n\t\t </div><br/>"; //回复 if (!$_REQUEST['transpond']) { $list['content'] = $message . $list['content'] . '<br/>'; } else { $list['title'] = "转发:" . $list['title']; //获取附件信息 $this->getAttachedRecordList($list['id'], true, true, array(' in', array('MisMessageDrafts', 'MisMessage', 'MisMessageInbox'))); } $this->assign("vo", $list); //转发 $this->assign('transpond', $_REQUEST['transpond']); $this->assign('isreply', $_REQUEST['isreply']); $this->assign('outbox', $_REQUEST['outbox']); $this->display(); }
/** * @Title: getHistory * @Description: todo(查询审批数据信息) * @param string 模型名称 $tablename * @param int 模型数据ID $tableid * @return array 返回处理后的审批记录信息数据 * @author liminggang * @date 2015-11-11 下午5:32:18 * @throws */ function getHistory($tablename, $tableid) { //查询是否存在审批历史一件 $process_info_historyDao = M("process_info_history"); $map = array(); // $map["ostatus"] = array("gt",0); $map["_string"] = "ostatus >0 || dotype = 2"; $map["tableid"] = $tableid; $map["tablename"] = $tablename; $pihlist = $process_info_historyDao->where($map)->field("id,dotype,doinfo,userid,dotime,ostatus")->order('id desc')->select(); //过滤回退以前的数据 $ftrue = true; $judge = array(); foreach ($pihlist as $k2 => $v2) { if ($v2['dotype'] == 2) { $judge[] = $v2; break; } if ($ftrue) { $judge[] = $v2; } } $message = array(); //拼装历史意见 if ($judge) { //查询审批节点名称 $process_relationDao = M("process_relation_form"); foreach ($judge as $k => $v) { $map = array(); $map['id'] = $v['ostatus']; if ($v['dotype'] == 2) { //获取审核节点名称 $relationname = "启动节点"; } else { //获取审核节点名称 $relationname = $process_relationDao->where($map)->getField("name"); } //获取审核人 $username = getFieldBy($v['userid'], "id", "name", "user"); $message["info_history" . $v['id']] = array('name' => $username . "({$relationname})", 'value' => $v['doinfo'] . " " . transTime($v['dotime'], 'Y-m-d H:i')); } } return $message; }
/** * @Title: insert * @Description: 流程节点插入,和流程节点审核人信息的插入 * @author liminggang * @date 2014-9-18 下午2:51:49 * @throws */ public function insert() { //实例化流程节点模板过滤 $MisFieldFilterModel = D("MisFieldFilter"); //模型名称 $nodename = $_POST['nodename']; //获取流程所有数据 $workflowVal = $_REQUEST['workflowVal']; $flowdata = array(); foreach ($workflowVal as $key => $val) { //组合流程节点格式 $flowdata[] = json_decode(html_entity_decode($val), true); } //流程节点数据表 $ProcessRelationModel = D("ProcessRelation"); //查询当前模型是否存在其他流程 $process_infoDao = D("processInfo"); //获取流程信息 if ($_POST['id']) { //修改方法 //组合流程数据 $name = $_POST['name']; $data['id'] = $_POST['id']; $data['name'] = $name; $data['catgory'] = $_POST['catgory']; $data['typeid'] = $_POST['typeid']; $data['flowtrack'] = json_encode($flowdata); $data['title'] = $_POST['title']; $data['updatetime'] = time(); $data['default'] = $_POST['default'] ? $_POST['default'] : ''; $data['updateid'] = $_SESSION[C('USER_AUTH_KEY')]; $addresult = $process_infoDao->save($data); if ($addresult === false) { $this->error("流程操作失败,请联系管理员"); } //成功重新赋值为数据ID $addresult = $_POST['id']; //先删除原有的流程批次信息,在进行新增 $map = array(); $map['pinfoid'] = $addresult; $map['tablename'] = "process_info"; $relaids = $ProcessRelationModel->where($map)->getField("id,pinfoid"); if ($relaids) { //删除知会人员信息 $mis_system_selectuserDao = M("mis_system_selectuser"); $map = array(); $map['modelname'] = "ProcessManage"; $map['tableid'] = array(' in ', array_keys($relaids)); $result = $mis_system_selectuserDao->where($map)->delete(); if (!$result) { $this->error("数据清理失败,请联系管理员"); } //流程审核人数据表mis_system_user_bactch $MisSystemUserBactchModel = D("MisSystemUserBactch"); $map = array(); $map['id'] = array(' in ', array_keys($relaids)); $resultrela = $ProcessRelationModel->where($map)->delete(); $map = array(); $map['tablename'] = 'process_relation'; $map['tableid'] = array(' in ', array_keys($relaids)); $resultbactch = $MisSystemUserBactchModel->where($map)->delete(); if (!$resultrela || !$resultbactch) { $this->error("数据清理失败,请联系管理员"); } } } else { //流程名称 $where = array(); $where['nodename'] = $nodename; $where['catgory'] = $_POST['catgory']; $infolist = $process_infoDao->where($where)->getField("id,name"); if (count($infolist) > 0) { //存在其他流程,修改为非默认使用流程 $result = $process_infoDao->where($where)->setField("default", 0); if ($result === false) { $this->error("修改其他默认流程失败,请联系管理员"); } } //组合流程数据 $name = $_POST['name']; $data['name'] = $name; $data['catgory'] = $_POST['catgory']; $data['nodename'] = $nodename; $data['typeid'] = $_POST['typeid']; $data['default'] = $_POST['default']; $data['title'] = $_POST['title']; $data['flowtrack'] = json_encode($flowdata); $data['createtime'] = time(); $data['createid'] = $_SESSION[C('USER_AUTH_KEY')]; $data['companyid'] = $_SESSION['companyid']; $addresult = $process_infoDao->add($data); } if ($addresult === false) { $this->error("流程操作失败,请联系管理员"); } else { //流程审核人数据表mis_system_user_bactch $MisSystemUserBactchModel = D("MisSystemUserBactch"); //实例化用户模型 $UserModel = D("User"); foreach ($flowdata as $key => $val) { //进行html标签替换 $processcondition = str_replace(array('"', ''', '<', '>'), array('"', "'", '<', '>'), $val['processcondition']); $processrules = str_replace(array('"', ''', '<', '>'), array('"', "'", '<', '>'), $val['processrules']); //组装存储数组 $data = array(); $data['tablename'] = "process_info"; $data['pinfoid'] = $addresult; $data['flowid'] = $val['ids']; $data['name'] = $val['processname']; $data['flowtype'] = $val['choose'] ? $val['choose'] : 0; $data['processto'] = $val['processto'] ? $val['processto'] : ''; $data['processall'] = $val['processall'] ? $val['processall'] : ''; $data['processcondition'] = $processcondition ? $processcondition : ''; $data['processrules'] = $processrules ? $processrules : ''; $data['processrulesinfo'] = $val['processrulesinfo'] ? $val['processrulesinfo'] : ''; $data['filterwritsetempty'] = $val['filterwritsetempty'] ? $val['filterwritsetempty'] : ''; $data['filterreadsetempty'] = $val['filterreadsetempty'] ? $val['filterreadsetempty'] : ''; $data['isauditmodel'] = $val['isauditmodel'] ? $val['isauditmodel'] : ''; $data['issourcemodel'] = $val['issourcemodel'] ? $val['issourcemodel'] : ''; $data['sort'] = $val['level']; $data['istuihui'] = $val['istuihui']; $data['parallel'] = $val['processaudit']['parallel']; $data['isauto'] = $val['processaudit']['isauto']; $data['document'] = $val['processaudit']['document']; $data['ismobile'] = $val['processaudit']['ismobile']; $data['createtime'] = time(); $data['createid'] = $_SESSION[C('USER_AUTH_KEY')]; $data['companyid'] = $_SESSION['companyid']; $relaid = $ProcessRelationModel->add($data); if ($relaid) { $filterwritsetempty = array_filter(explode(",", $data['filterwritsetempty'])); $filterreadsetempty = array_filter(explode(",", $data['filterreadsetempty'])); $arr = array(); foreach ($filterwritsetempty as $wkey => $wval) { $arr[$wval] = array(1, 0); } foreach ($filterreadsetempty as $rkey => $rval) { if (in_array($rval, array_keys($arr))) { $arr[$rval] = array(1, 1); } else { $arr[$rval] = array(0, 1); } } if ($arr) { //组合节点不可操作字段 $data = array(); $data = array($nodename, $relaid, '', $arr); try { $MisFieldFilterModel->createFilter($data); } catch (Exception $e) { logs($e->getMessage(), "filter" . transTime(time())); } } if (is_array($val['informpersonid']) && isset($val['informpersonid'])) { //插入数据 if ($val['informpersonid']['sysselectuser'] && $val['informpersonid']) { /* * 满足此setSelectUser方法。配置post参数 */ $_POST['recipientname'] = $val['informpersonid']['recipientname']; $_POST['recipient'] = $val['informpersonid']['recipient']; $_POST['groupname'] = $val['informpersonid']['groupname']; $_POST['groupid'] = $val['informpersonid']['groupid']; $_POST['sysselectuser'] = $val['informpersonid']['sysselectuser']; $result = $UserModel->setSelectUser("ProcessManage", $relaid, "sysselectuser"); if (!$result) { $this->error("添加知会人失败!"); } } } $dataList = array(); if (is_array($val['processaudit']) && isset($val['processaudit'])) { $bacthcval = $val['processaudit']; //审核人相关信息 $userobjid = explode(";", $bacthcval['userobjid']); $bactchname = explode(";", $bacthcval['bactchname']); $userobjidname = explode(";", $bacthcval['userobjidname']); $userobj = explode(";", $bacthcval['userobj']); $userobjname = explode(";", $bacthcval['userobjname']); //进行html标签替换 $htmlrule = str_replace(array('"', ''', '<', '>'), array('"', "'", '<', '>'), $bacthcval['rule']); $htmlrulename = str_replace(array('"', ''', '<', '>'), array('"', "'", '<', '>'), $bacthcval['rulename']); $rule = explode(";", $htmlrule); $rulename = explode(";", $htmlrulename); $bactch = explode(";", $bacthcval['bactch']); $rulesinfo = explode(";", $bacthcval['rulesinfo']); foreach ($userobjid as $objkey => $objval) { //插入批次信息 $dataList[] = array('name' => $bactchname[$objkey], 'tablename' => "process_relation", 'tableid' => $relaid, 'userobjid' => $objval, 'userobj' => $userobj[$objkey], 'userobjname' => $userobjname[$objkey], 'rule' => $rule[$objkey], 'rulename' => $rulename[$objkey], 'rulesinfo' => $rulesinfo[$objkey], 'sort' => $bactch[$objkey], 'createtime' => time(), 'createid' => $_SESSION[C('USER_AUTH_KEY')]); } $bactchResult = $MisSystemUserBactchModel->addAll($dataList); if ($bactchResult === false) { $this->error("流程新增失败,请联系管理员"); } } } else { $this->error("流程新增失败,请联系管理员"); } } $this->success("流程新增成功!"); } }
/** * @Title: getlefttree * @Description: todo(获取左侧树) * @author libo * @date 2014-3-14 下午6:18:33 * @throws */ public function getlefttree() { //加载配置文件 $list = (require './Dynamicconf/System/selectlist.inc.php'); //实例化 $MHPIIImodel = D("MisHrPersonnelIndustrialInjuryInfo"); $treez = array(); // 树初始化 //全部 $treez[] = array('id' => -1, 'pId' => 0, 'name' => '全部', 'title' => '全部', 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/all/1/jump/1", 'open' => true); //其他类型 $treez[] = array('id' => 115, 'pId' => -1, 'name' => '其他类型', 'title' => '其他类型', 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/enddate/all/jump/1", 'open' => true); $qttreenode[] = array('id' => 1, 'pId' => 115, 'name' => '预截止', 'title' => '预截止', 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/enddate/1/jump/1", 'open' => true); $qttreenode[] = array('id' => 2, 'pId' => 115, 'name' => '已完结', 'title' => '已完结', 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/disposestage/7/jump/1/enddate/2", 'open' => true); $treez = array_merge($treez, $qttreenode); //伤势分类 $treez[] = array('id' => 111, 'pId' => -1, 'name' => '伤势分类', 'title' => '伤势分类', 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/hurtcondition/all/jump/1", 'open' => true); //获取伤势分类 $HClist = $list["hurtcondition"]["hurtcondition"]; if ($HClist) { foreach ($HClist as $key => $value) { $hctreenode[] = array('id' => $key, 'pId' => 111, 'name' => $value, 'title' => $value, 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/hurtcondition/" . $key . "/jump/1", 'open' => true); } } if ($HClist) { $treez = array_merge($treez, $hctreenode); } //时间分类 $treez[] = array('id' => 112, 'pId' => -1, 'name' => '时间分类', 'title' => '时间分类', 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/accidenttime/all/jump/1", 'open' => true); //获取时间分类 $MHPIIItimelist = $MHPIIImodel->where("status=1")->order('accidenttime desc')->getfield('accidenttime'); //获取年 $yealtime = substr(transTime($MHPIIItimelist), 0, 4); for ($i = $yealtime; $i > $yealtime - 4; $i--) { if ($i == $yealtime - 3) { $name = "年以前"; $nname = "_1"; } else { $name = '年'; $nname = "_2"; } $treenode[] = array('id' => 1, 'pId' => 112, 'name' => $i . $name, 'title' => $i . $name, 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/accidenttime/" . $i . $nname . "/jump/1", 'open' => true); } if ($treenode) { $treez = array_merge($treez, $treenode); } //区域类型 $treez[] = array('id' => 113, 'pId' => -1, 'name' => '区域类型', 'title' => '区域类型', 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/hurtdistrict/all/jump/1", 'open' => true); //获取区域分类 $MSSmodel = D("MisSalesSite"); $hurtdistrictlist = $MHPIIImodel->where("status=1")->field('hurtdistrict')->group('hurtdistrict')->select(); if ($hurtdistrictlist['0']['hurtdistrict'] == 0) { //当没有区域选择时 unset($hurtdistrictlist['0']); } if ($hurtdistrictlist) { foreach ($hurtdistrictlist as $k => $v) { $MSname = $MSSmodel->where("status=1 and id=" . $v['hurtdistrict'])->getField('name'); $hdtreenode[] = array('id' => $v, 'pId' => 113, 'name' => $MSname, 'title' => $MSname, 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/hurtdistrict/" . $v['hurtdistrict'] . "/jump/1", 'open' => true); } } if ($hurtdistrictlist) { $treez = array_merge($treez, $hdtreenode); } //阶段 $treez[] = array('id' => 114, 'pId' => -1, 'name' => '阶段', 'title' => '阶段', 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/disposestage/all/jump/1", 'open' => true); //获取阶段分类 $DSlist = $list["disposestage"]["disposestage"]; if ($DSlist) { foreach ($DSlist as $k1 => $v1) { $dstreenode[] = array('id' => $k1, 'pId' => 114, 'name' => $v1, 'title' => $v1, 'rel' => "MisHrPersonnelIndustrialInjuryInfoBox", 'target' => 'ajax', 'icon' => "", 'url' => "__URL__/index/disposestage/" . $k1 . "/jump/1", 'open' => true); } } if ($DSlist) { $treez = array_merge($treez, $dstreenode); } $this->assign("tree", json_encode($treez)); }
/** * @Title: lookupGetdate */ public function lookupGetdate() { $name = 'MisOaMeetingSummary'; $model = D($name); $userid = $_SESSION[C('USER_AUTH_KEY')]; $map = array(); $map['status'] = 1; $map['_string'] = "FIND_IN_SET( '{$userid}' ,joinpeople )"; $map['stepType'] = 1; $starttime = strtotime($_REQUEST['starttime']); $endtime = strtotime($_REQUEST['endtime']); $map["createid"] = $_SESSION[C('USER_AUTH_KEY')]; $map['createtime'] = array("exp", ">=" . $starttime . " and createtime <" . $endtime); $list = $model->where($map)->field('id,createtime')->select(); $aaa = $arr = array(); foreach ($list as $key => $value) { $daytime = date("Y-m-d", $value['createtime']); $daytime = strtotime($daytime); if (!in_array($daytime, $aaa)) { $start = transTime($value['createtime'], 'Y-m-d H:i:s'); $end = transTime($value['createtime'] + 1, 'Y-m-d H:i:s'); $arr[] = array('id' => $value['id'], 'title' => "", 'start' => $start, 'end' => $end, 'tdclassName' => 'pred'); array_push($aaa, $daytime); } } echo json_encode($arr); }
/** * @Title: lookupemployeeInfo * @Description: todo(AJAX 请求获得试用员工信息) * @author renling * @date 2013-7-31 下午4:23:25 * @throws */ public function lookupemployeeInfo() { $id = $_POST['id']; $MisHrBasicEmployeeModel = D('MisHrBasicEmployee'); $MisHrBasicEmployeeList = $MisHrBasicEmployeeModel->where(" status=1 and id=" . $id)->find(); //计算试用天数 $pedate = $MisHrBasicEmployeeList['transferdate'] - $MisHrBasicEmployeeList['indate']; $pedate = round($pedate / 3600 / 24); //计算已经试用天数 $date = time() - $MisHrBasicEmployeeList['indate']; $date = round($date / 3600 / 24); $this->assign("date", $date); //以下if判断为排除空null显示 if ($MisHrBasicEmployeeList['phone']) { $voInfo['phone'] = $MisHrBasicEmployeeList['phone']; } else { $voInfo['phone'] = ""; } if (getFieldBy($MisHrBasicEmployeeList['deptid'], 'id', 'name', 'mis_system_department')) { $voInfo['deptname'] = getFieldBy($MisHrBasicEmployeeList['deptid'], 'id', 'name', 'mis_system_department'); } else { $voInfo['deptname'] = ""; } if ($MisHrBasicEmployeeList['dutyname']) { $voInfo['dutyname'] = $MisHrBasicEmployeeList['dutyname']; } else { $voInfo['dutyname'] = ""; } if (getFieldBy($MisHrBasicEmployeeList['dutylevelid'], 'id', 'name', 'duty')) { $voInfo['dutylevelid'] = getFieldBy($MisHrBasicEmployeeList['dutylevelid'], 'id', 'name', 'duty'); } else { $voInfo['dutylevelid'] = ""; } if (transTime($MisHrBasicEmployeeList['indate'])) { $voInfo['indate'] = transTime($MisHrBasicEmployeeList['indate']); } else { $voInfo['indate'] = ""; } $voInfo['chinaid'] = $MisHrBasicEmployeeList['chinaid']; $voInfo['name'] = $MisHrBasicEmployeeList['name']; $voInfo['sex'] = $MisHrBasicEmployeeList['sex']; $voInfo['age'] = $MisHrBasicEmployeeList['age']; $voInfo['worktype'] = $MisHrBasicEmployeeList['worktype']; $voInfo['pedate'] = $pedate; $voInfo['date'] = $date; echo json_encode($voInfo); }
private function getGttXml($id, $key, $type, &$str) { //获取该项目中的mis_system_flow_form数据 $MisSystemFlowFomrDao = M("mis_system_flow_form"); $submap['status'] = 1; $submap['category'] = $id; $sublist = $MisSystemFlowFomrDao->where($submap)->select(); foreach ($sublist as $k => $v) { //获取是否还有下一级 $where = array(); $where['fid'] = $v['id']; $where['status'] = 1; $Summary = 0; $k = $k + 1; $a = str_replace(".", "-", $key); $ks = $a . "-" . $k; $keys = $key . "." . $k; $str .= '<Task>'; $str .= '<UID>' . $ks . '</UID>'; $str .= '<ID>' . $ks . '</ID>'; $str .= '<Name>' . $v['name'] . '</Name>'; $str .= '<CreateDate>' . transTime($val['createtime']) . '</CreateDate>'; $str .= '<OutlineNumber>' . $keys . '</OutlineNumber>'; $str .= '<Start>' . transTime($v['begintime'], 'Y-m-d H:i:s') . '</Start>'; $str .= '<Finish>' . transTime($v['endtime'], 'Y-m-d H:i:s') . '</Finish>'; $str .= '<Summary>' . $Summary . '</Summary>'; $str .= '<PercentComplete>0</PercentComplete>'; $str .= '</Task>'; } }