天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 2334|回复: 0

[Iscript] 根据部门id,查询按部门等级排序后的所有上级部门名称【Iscript-根据部门id查询】

[复制链接]
abelard 发表于 2013-4-15 11:29:51 | 显示全部楼层 |阅读模式
本帖最后由 abelard 于 2013-4-15 11:32 编辑

Q:如何实现查询,根据部门id,查询出该部门所有上级部门,并且上级部门按等级排序。
A:对应该问题,提供以下两种脚本实现:
1.通过方法getSuperiorDeptList方法获取所有上级部门的id集合,再通过等级排序获得部门名称。
var depid = getItemValueAsString("CUST_A01_DEP");//当前部门的id
var depNameList = "";
if (depid != null && depid.trim().length() >0){
var deptProcess = createProcess("cn.myapps.core.department.ejb.DepartmentProcess");
var dept= deptProcess.doView(depid);//doView的参数是部门的id
var odeps = deptProcess.getSuperiorDeptList(depid);//当前部门上级的id集合
if (odeps != null && odeps.size()>0){
  for(var j=0;j<odeps.size()-1;j++)
                {
           for (var it =odeps.iterator(); it.hasNext();){
               var department = it.next();  
                l=department.getLevel();  //获取部门的等级(int类型)0往后部门等级越低。
                 if(l==j)
                   {
                   depNameList += department.getName();//取得各级部门名称并合并
                   }
                }
}
}
}
depNameList;
2.通过获取部门的INDEXCODE,再通过-分割成数组,遍历后通过getName方法获取排序后的部门名称。
var depid ="11e1-7f98-b0420aa7-a04d-05b43c063ac2";//当前部门的id
var depNameList = "";

if (depid != null && !depid.equals("")){
       var deptProcess = createProcess("cn.myapps.core.department.ejb.DepartmentProcess");
           var dept= deptProcess.doView(depid);//doView的参数是部门的id
                var depIndex= dept.getIndexCode();//获取INDEXCODE
           var arr = splitText( depIndex, "_");//按分隔符创建数组
for (var i=0;i<arr.length-1;i++){
   dept= deptProcess.doView(arr);//doView的参数是上级部门的id
   depNameList += dept.getName();//获得部门名称并连接
}
}
depNameList;

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 15:48

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表