获得审批人的id
//sima 传入uid 得到所有上级部门负责人id
private function partment($uid,$level='')
{
//传入部门id 返回本部门所有上级部门负责人的id
$data = array();
function sima($pid)
{
$res = M('Department')
->alias('d')
->field('d.did did ,p.did pid , d.dperson dp , p.dperson pd')
->join('ganen_department p on d.dpid = p.did ')
->where("d.did = $pid")
->find();
$data =$res['pd'];
if(!empty($res['pid']) )
{
$data=$data.','.sima($res['pid']);
}
//如果得到的是0或者null 则跳过
return trim(trim($data,','),'0');
}
//传入uid 得到部门id
$res = M('Department_station')->field('did')->where("uid = $uid")->find();
if(!empty($res['did']))
{
$did = $res['did'];
}else{
return '部门有误';
}
$leader_id = sima($did);
//判断传入的uid 是否为本部门的负责人
//如果为本部门的负责人 则不必区分是否为 项目
$Depar = M('Department')->field('dperson,is_pro')->where("did = $did")->find();
if($uid != $Depar['dperson'])
{
//将本部门负责人的id 加上
$leader_id = $Depar['dperson'].','.$leader_id;
//查找项目负责人的id 要区分是咨询部还是项目部
//查到所负责项目的主管 如果只有一个项目 主管审批 如果多个项目 主管不批 总监审批
$res = M('Project_salary')->field('projectids')->where("uid = $uid and status = 1")->find();
$pro = $res['projectids'];
//判断是否只有一个项目
$arr = explode(',',$pro);
//删除数组内的空值
$arr = array_filter($arr);
$charge = '';
if(count($arr) == 1)
{
//项目部
if($Depar['is_pro'] == 1)
{
$res=M('Project')->field('charge')->where("id = $pro")->find();
$charge['leader'] = $res['charge'];
}
//咨询部
if($Depar['is_pro'] == 2)
{
$res=M('Project')->field('charge_answer')->where("id = $pro")->find();
$charge['leader'] = $res['charge_answer'];
}
}
}
//判断是否为项目部门
//解决负责人为0 出现,的问题
//将字符串变为数组
$arr = explode(',',$leader_id);
//删除数组内的空值
$arr_id = array_filter($arr);
//判断主管id是否为空
if(!empty($charge['leader']))
{
//在数组的头部植入主管id
array_unshift($arr_id,$charge['leader']);
//$leader_id = $charge['leader'].','.$leader_id;
}
//判断审批级别
if(!empty($level))
{
//通过审批级别 得到截取数组
$arr_id =array_slice($arr_id,0,$level);
}
//将数组重新变为字符串
$leader_id = implode(',',$arr_id);
return $leader_id;
}
获得审批人的id的更多相关文章
- 关于OA流程相关数据表的设计
一.前言 近期有些同学问起流程的表设计,终于有时间能写下博客,并整理下之前所发布的文章. 之前的文章讲到的表设计,没有给全且还存在漏洞,在这里向各位同学表示歉意.这是我个人最新领悟的一些流程思维,欢迎 ...
- flowable的多人会签和一票否决
项目结构: 接下来代码: Duorenhuiqian.bpmn20.xml: <?xml version="1.0" encoding="UTF-8"?& ...
- 关于全局ID,雪花(snowflake)算法的说明
上次简单的说一下:http://www.cnblogs.com/dunitian/p/6041745.html#uid C#版本的国外朋友已经封装了,大家可以去看看:https://github.co ...
- 有朋友问了数据库ID不连续,怎么获取上一篇和下一篇的文章?(不是所有情况都适用)
呃 (⊙o⊙)…,逆天好久没写SQL了,EF用的时间长了,SQL都不怎么熟悉了......[SQL水平比较菜,大牛勿喷] 方法很多种,说个最常见的处理 因为id是自增长的,所以一般情况下下一篇文章的I ...
- android 使用Tabhost 发生could not create tab content because could not find view with id 错误
使用Tabhost的时候经常报:could not create tab content because could not find view with id 错误. 总结一下发生错误的原因,一般的 ...
- SharePoint 2013: A feature with ID has already been installed in this farm
使用Visual Studio 2013创建一个可视web 部件,当右击项目选择"部署"时报错: "Error occurred in deployment step ' ...
- ILJMALL project过程中遇到Fragment嵌套问题:IllegalArgumentException: Binary XML file line #23: Duplicate id
出现场景:当点击"分类"再返回"首页"时,发生error退出 BUG描述:Caused by: java.lang.IllegalArgumentExcep ...
- thinkphp-无限分类下根据任意部门获取顶级部门ID
根据所得到的部门编号获取顶级部门ID: 参数 - department_id 表格组织架构: tab_departments department_id parent_id name 1 1 顶级 2 ...
- 分布式唯一ID生成服务
SNService是一款基于分布式的唯一ID生成服务,主要用于提供大数量业务数据建立唯一ID的需要;服务提供最低10K/s的唯一ID请求处理.如果你部署服务的CPU资源达到4核的情况下那该服务最低可以 ...
随机推荐
- Leetcode129. Sum Root to Leaf Numbers求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点生成的所有 ...
- Django项目:CRM(客户关系管理系统)--39--31PerfectCRM实现King_admin编辑多对多限制
readonly_fields = ('qq', 'consultant','tags',) # 不可修改 # forms.py # ————————19PerfectCRM实现King_admin数 ...
- HTML+JS---限制表单多次提交
限制表单多次提交: 表单只能提交一次 function check_form_data(){ $("#once_submit").attr("disabled" ...
- vmware 虚拟机有时候显示有网络访问,但是打不开网页的白痴解决办法
我遇到这种情况的原因是经常更换电脑连接方式(手机wifi.校园网有线网.校园网无线网.电信网.隔壁同学wifi网),所以ip经常变动,所以产生了解决此问题的方法 先连好网络-->打开编辑--&g ...
- Shell 常用特性
管道(|) 管道 (|): 将一个命令的输出作为另外一个命令的输入. 管道同样可以在标准输入输出和标准错误输出间做代替工作,这样一来,可以将某一个程序的输出送到另一个程序的输入,其语法如下: ...
- 【react】react-reading-track
这是一个很有趣的图书阅读demo 先放github地址:https://github.com/onlyhom/react-reading-track 我觉得这个博主的项目很有意思呢 我们一起看看代码啊 ...
- Vue.js @click点击无效?
原因, 那个点击的元素, 没有在 <div id="app"></div>里面
- eclipse中部署web项目
因为eclipse是免费的,所以很多企业都会选用eclipse作为开发工作,那么我们就需要熟练使用eclipse部署web项目. 第一步:选择window -> preferences ,选择s ...
- 写论文,没数据?R语言抓取网页大数据
写论文,没数据?R语言抓取网页大数据 纵观国内外,大数据的市场发展迅猛,政府的扶持也达到了空前的力度,甚至将大数据纳入发展战略.如此形势为社会各界提供了很多机遇和挑战,而我们作为卫生(医学)统计领域的 ...
- C++学习笔记----2.4 C++对象的内存模型
转载自:http://c.biancheng.NET/cpp/biancheng/view/2995.html点击打开链接 当对象被创建时,编译器会为每个对象分配内存空间,包括成员变量和成员函数. 直 ...