本帖最后由 kimi 于 2013-12-18 10:20 编辑
现在有青岛和济南两个分公司,但是角色是一样的,我要通过当前登录用户的部门里的字,进行相应角色选择,现在的代码只能出一个,假如角色是“产品经理”,济南有4个,青岛有两个。我要在流程中将所有是济南的产品经理全部找出来做为流程的审批人,帮我优化一下下面的代码吧,不会写了。- function GetUserByJiaoSe(JiaoSeName)
- {
- //println("======================"+JiaoSeName);
- //获取用户对象
- var userVO = getUserById(getWebUser().getId());
- //获取用户所属部门,这里返回的是用户所属的所有部门
- var WebUserdept = userVO.getDepartments();
- //println("名称:--------------"+ WebUserdept);
- var WebUserDeptname="";
- var suoshu=""; //所属
- for(var iter = WebUserdept.iterator();iter.hasNext();)
- {
- var value1 = iter.next();
- WebUserDeptname +=value1.getName()+";"
- //println("部门名称:--------------"+WebUserDeptname);
- //println("截取前两个字:"+WebUserDeptname.substring(0,2));
- }
- suoshu=WebUserDeptname.substring(0,2);
- //找出指定角色的人
- var roleid = getRoleIdByName(JiaoSeName);
- //println("角色ID号:================"+roleid);
- //找出角色下人员所属部门
- var users = getUsersByRoleId(roleid);
- var shenpiren="";
- for(var iter2=users.iterator();users !=null && iter2.hasNext();)
- {
- var user=iter2.next();
- var Names="";
- //---------------------------------------------------
- //println("用户:================"+user.getName());
- //获取用户对象
- var userVO2 = getUserById(user.getId());
- //获取用户所属部门,这里返回的是用户所属的所有部门
- var dept2 = userVO2.getDepartments();
- var deptname2="";
- for(var iter3 = dept2.iterator();iter3.hasNext();)
- {
- var value2 = iter3.next();
- deptname2 +=user.getName()+":"+value2.getName()+";";
-
- //查找字符串是否包含特定字符,如:“青岛”
- var k =deptname2.indexOf(suoshu);
- //println("是否包含特定所属:-------------------"+k);
-
- if(k>0)
- {
- var arr = splitText(deptname2, ":");
- shenpiren=user;
- }
- }
- //---------------------------------------------------
- //Names += user.getName();//用户名称集合
- }
- //println("ssssssssssssssssssss"+shenpiren);
- return shenpiren;
- }
复制代码 |