Q:用代码把用户的默认部门改成别的部门,例如把张三的默认部门行政部改为财务部
A:您好,您可以参考类似如下代码实现:
- var user=getUserByLoginno("aaaa");//根据用户帐号获取用户对象
- println(user+" ======user=====");
- var udd =user.getDefaultDepartment(); //获取用户默认部门
- println(udd+" =====udd用户默认部门======");
- var ndeptid =getCurrentDocument().getItemValueAsString("部门")//用户新默认部门id
- var userProcess =getUserProcess();
- var userid=new Array();
- userid[0]=user.getId();
- //首先要根据获取用户所属部门,如果已经有要添加到部门,那就不进行添加了。
- var detps=user.getDepartments(); //获取用户所属部门
- var value1="";
- for(var iter = datas.iterator();iter.hasNext();){
- var dept1 = iter.next();
- if(dept1!=null){
- value1+=dept1.getId()+";";
- }
- }
- println(value1+" ==========value1======");
- var rtn=value1.indexOf(ndeptid); //判断用户所属部门是否包含了新设置的默认部门
- println(rtn+" =========rtn======");
- if(rtn==-1)
- {
- println("11111111111");
- userProcess.addUserToDept(userid,ndeptid);
- println("2222222222");
- }
- if(ndeptid.trim().length()>0){
- var user2= getUserById(user.getId()); //根据用户id获取最新属性的用户对象
- user2.setDefaultDepartment(ndeptid); //设置用户新的默认部门
- println(user2+" =======user2======");
- userProcess.doUpdate(user2);
- var userProcessWS=new Packages.cn.myapps.webservice.UserService();
- var rtn2=userProcessWS.removeDepartment(user2.getId(),udd); // 用户所属部门中,从旧的默认部门中移除
- }
复制代码 |