工程师,您好!谢谢您的代码参照,以下是我的抄写代码,感觉有些绕。不知能否指出优化的地方。我现在是找到主管领导后,重新用主管领导的USERID去寻部门默认ID和角色ID,而且这样寻出来的有多条数据,我不会优化代码找出第一条值就跳出for循环,用了个笨方法存数组,再抽第一个值。从这里obpm5.`t_user_department_role_set`查出多值是可能打开自动归档(触发了知识库),或者其他原因多了很多角色。
(function(){
var loginNo = "";
var loginName = "";
var dptid = "";
var curDoc = getCurrentDocument();
loginNo = curDoc.getAuthor().getLoginno();
loginName = curDoc.getAuthor().getName();
dptid = curDoc.getAuthor().getDefaultDepartment();
println(loginNo);
println(loginName);
println(dptid);
var dsName = "售后管理系统库";
var id = COUNTER.genUUID();
var sql = "SELECT ITEM_USERID FROM oa5.`tlk_主管领导导入` WHERE ITEM_DEFAULTDEPARTMENT = '" + dptid + "'";
var list = queryByDSName(dsName, sql);
var USERID = "";
for(var itor = list.iterator();itor.hasNext();){
var item = itor.next();
// USERID += "<p>主管领导:" + item.get('ITEM_USERID') + "</p>";
USERID += item.get('ITEM_USERID');
}
println(USERID);
var userlist = createObject("java.util.ArrayList");
var dsName2 = "OA办公";
var sql2 = "SELECT ROLEID, DEPARTMENTID FROM obpm5.`t_user_department_role_set` WHERE USERID = '" + USERID + "'";
var list2 = queryByDSName(dsName2, sql2);
var roleid2 = "";
var dptid2 = "";
for(var itor2 = list2.iterator();itor2.hasNext();){
var item2 = itor2.next();
dptid2 += item2.get('DEPARTMENTID') + "$$";
roleid2 += item2.get('ROLEID') + "$$";
}
var dptid22 = dptid2.split( "$$");
var roleid22 = roleid2.split( "$$");
println(dptid22[0]);
println(roleid22[0]);
userlist.addAll(getUsersByDptIdAndRoleId(dptid22[0],roleid22[0]));
var executiveLeader = curDoc.getItemValueAsString("executiveLeader");
var userVO = getUserById(executiveLeader);
userlist.add(userVO);
return userlist;
})()
补充内容 (2024-3-19 21:59):
发觉还是有多位领导入选 |