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

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

[已解决] 美女们,帮我看一下下面的代码怎么优化啊。

[复制链接]
青岛融贯汇众 发表于 2013-12-17 15:35:28 | 显示全部楼层 |阅读模式
本帖最后由 kimi 于 2013-12-18 10:20 编辑

现在有青岛和济南两个分公司,但是角色是一样的,我要通过当前登录用户的部门里的字,进行相应角色选择,现在的代码只能出一个,假如角色是“产品经理”,济南有4个,青岛有两个。我要在流程中将所有是济南的产品经理全部找出来做为流程的审批人,帮我优化一下下面的代码吧,不会写了。
  1. function GetUserByJiaoSe(JiaoSeName)
  2. {
  3.      //println("======================"+JiaoSeName);
  4.         //获取用户对象
  5.         var userVO = getUserById(getWebUser().getId());
  6.         //获取用户所属部门,这里返回的是用户所属的所有部门
  7.         var WebUserdept = userVO.getDepartments();
  8.         //println("名称:--------------"+ WebUserdept);
  9.         var WebUserDeptname="";
  10.         var suoshu="";        //所属
  11.         for(var iter = WebUserdept.iterator();iter.hasNext();)
  12.         {
  13.                 var value1 = iter.next();
  14.                 WebUserDeptname +=value1.getName()+";"          
  15.                 //println("部门名称:--------------"+WebUserDeptname);       
  16.                 //println("截取前两个字:"+WebUserDeptname.substring(0,2));
  17.         }
  18.         suoshu=WebUserDeptname.substring(0,2);

  19.         //找出指定角色的人
  20.         var roleid = getRoleIdByName(JiaoSeName);       
  21.         //println("角色ID号:================"+roleid);
  22.         //找出角色下人员所属部门
  23.         var users = getUsersByRoleId(roleid);
  24.         var shenpiren="";
  25.         for(var iter2=users.iterator();users !=null && iter2.hasNext();)
  26.         {
  27.                 var user=iter2.next();
  28.                 var Names="";
  29.                 //---------------------------------------------------
  30.                 //println("用户:================"+user.getName());
  31.                 //获取用户对象
  32.                 var userVO2 = getUserById(user.getId());
  33.                 //获取用户所属部门,这里返回的是用户所属的所有部门
  34.                 var dept2 = userVO2.getDepartments();
  35.                 var deptname2="";
  36.                 for(var iter3 = dept2.iterator();iter3.hasNext();)
  37.                 {
  38.                         var value2 = iter3.next();
  39.                         deptname2 +=user.getName()+":"+value2.getName()+";";
  40.                        
  41.                         //查找字符串是否包含特定字符,如:“青岛”
  42.                         var k =deptname2.indexOf(suoshu);
  43.                         //println("是否包含特定所属:-------------------"+k);
  44.                        
  45.                         if(k>0)
  46.                         {
  47.                                 var arr = splitText(deptname2, ":");
  48.                                 shenpiren=user;
  49.                         }
  50.                 }       
  51.                 //---------------------------------------------------
  52.                 //Names += user.getName();//用户名称集合
  53.         }
  54.         //println("ssssssssssssssssssss"+shenpiren);
  55.         return shenpiren;
  56. }
复制代码
kimi 发表于 2013-12-17 15:55:04 | 显示全部楼层
您好:您现在的代码您是说只能返回一个正确的用户么?看了你的代码如果您是需要返回多个用户应该是把这些符合条件的用户添加的集合里面去啊,而不是返回单个的用户对象啊,把符合条件的用户添加到集合中去可参考帖子:http://www.teemlink.com/bbs/view ... B%C9%F3%C5%FA%C8%CB
您先尝试,有问题我们再沟通。
 楼主| 青岛融贯汇众 发表于 2013-12-18 10:17:45 | 显示全部楼层
好了,谢谢。
kimi 发表于 2013-12-18 10:20:19 | 显示全部楼层
恩好的,感谢您的反馈。

本版积分规则

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

GMT+8, 2026-8-13 10:21

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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