获取部门代码¶
本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1f1a54bc7jime
脚本说明¶
该脚本用于获取部门的代码。在MyApps平台中,部门对象包含部门代码(code)属性,可以通过部门对象或SQL查询获取部门代码。
常见实现方式¶
方式1:根据部门ID获取部门代码¶
(function(){
var departmentId = "部门ID";
var department = getDepartmentById(departmentId);
if(department != null){
return department.getCode();
}
return "";
})();
方式2:根据部门名称获取部门代码¶
(function(){
var departmentName = "部门名称";
var department = getDepartmentByName(departmentName);
if(department != null){
return department.getCode();
}
return "";
})();
方式3:获取当前用户部门的代码¶
(function(){
var currentUser = getWebUser();
var department = currentUser.getDepartment();
if(department != null){
return department.getCode();
}
return "";
})();
方式4:通过SQL查询获取部门代码¶
(function(){
var departmentId = "部门ID";
var domainId = getWebUser().getDomainid();
var sql = "SELECT code FROM t_department WHERE id = '" + departmentId + "' AND domainid = '" + domainId + "'";
var result = findBySQL(sql);
if(result != null){
return result.getItemValueAsString("code");
}
return "";
})();
扩展示例¶
示例1:获取部门代码并验证¶
(function(){
var departmentId = "部门ID";
var department = getDepartmentById(departmentId);
if(department != null){
var code = department.getCode();
if(code != null && code.trim().length > 0){
return code;
}else{
return "部门代码为空";
}
}
return "部门不存在";
})();
示例2:获取部门代码及详细信息¶
(function(){
var departmentId = "部门ID";
var department = getDepartmentById(departmentId);
if(department != null){
var info = {
id: department.getId(),
name: department.getName(),
code: department.getCode()
};
return JSON.stringify(info);
}
return "{}";
})();
示例3:批量获取多个部门的代码¶
(function(){
var departmentIds = ["部门ID1", "部门ID2", "部门ID3"];
var codes = {};
for(var i = 0; i < departmentIds.length; i++){
var department = getDepartmentById(departmentIds[i]);
if(department != null){
codes[departmentIds[i]] = department.getCode();
}
}
return JSON.stringify(codes);
})();
示例4:根据部门名称获取部门代码(带域ID)¶
(function(){
var departmentName = "部门名称";
var domainId = getWebUser().getDomainid();
var sql = "SELECT code FROM t_department WHERE name = '" + departmentName + "' AND domainid = '" + domainId + "'";
var result = findBySQL(sql);
if(result != null){
return result.getItemValueAsString("code");
}
return "";
})();
示例5:获取部门代码并格式化输出¶
(function(){
var departmentId = "部门ID";
var department = getDepartmentById(departmentId);
if(department != null){
var code = department.getCode();
var name = department.getName();
return "部门名称: " + name + ", 部门代码: " + (code != null ? code : "无");
}
return "部门不存在";
})();
示例6:获取当前用户默认部门的代码¶
(function(){
var currentUser = getWebUser();
var defaultDepartment = currentUser.getDefaultDepartment();
if(defaultDepartment != null){
return defaultDepartment.getCode();
}
// 如果没有默认部门,使用主部门
var department = currentUser.getDepartment();
if(department != null){
return department.getCode();
}
return "";
})();
示例7:根据部门代码获取部门ID(反向查询)¶
(function(){
var departmentCode = "部门代码";
var domainId = getWebUser().getDomainid();
var sql = "SELECT id FROM t_department WHERE code = '" + departmentCode + "' AND domainid = '" + domainId + "'";
var result = findBySQL(sql);
if(result != null){
return result.getId();
}
return "";
})();
示例8:获取所有部门的代码列表¶
(function(){
var domainId = getWebUser().getDomainid();
var sql = "SELECT id, name, code FROM t_department WHERE domainid = '" + domainId + "' ORDER BY code";
var departments = queryBySQL(sql);
var codes = [];
if(departments != null && departments.size() > 0){
for(var it = departments.iterator(); it.hasNext();){
var dept = it.next();
var code = dept.getItemValueAsString("code");
if(code != null && code.trim().length > 0){
codes.push({
id: dept.getId(),
name: dept.getItemValueAsString("name"),
code: code
});
}
}
}
return JSON.stringify(codes);
})();
示例9:获取部门代码并用于业务逻辑¶
(function(){
var departmentId = "部门ID";
var department = getDepartmentById(departmentId);
if(department != null){
var code = department.getCode();
// 根据部门代码进行业务判断
if(code != null){
if(code.startsWith("DEPT")){
return "标准部门: " + code;
}else if(code.startsWith("TEMP")){
return "临时部门: " + code;
}else{
return "其他部门: " + code;
}
}
}
return "部门代码不存在";
})();
示例10:错误处理和日志记录¶
(function(){
var departmentId = "部门ID";
try{
var department = getDepartmentById(departmentId);
if(department != null){
var code = department.getCode();
println("部门ID: " + departmentId);
println("部门名称: " + department.getName());
println("部门代码: " + (code != null ? code : "无"));
return code != null ? code : "";
}else{
println("错误: 未找到部门ID " + departmentId);
return "";
}
}catch(e){
println("错误: 获取部门代码失败 - " + e.getMessage());
return "";
}
})();
关键函数说明¶
getDepartmentById(departmentId): 根据部门ID获取部门对象getDepartmentByName(departmentName): 根据部门名称获取部门对象department.getCode(): 获取部门代码department.getName(): 获取部门名称department.getId(): 获取部门IDgetWebUser().getDepartment(): 获取当前用户的部门对象getWebUser().getDefaultDepartment(): 获取当前用户的默认部门对象findBySQL(sql): 执行SQL查询并返回单条记录queryBySQL(sql): 执行SQL查询并返回多条记录getWebUser().getDomainid(): 获取当前用户的域ID
部门代码说明¶
在MyApps平台中: - 部门代码: 部门的唯一标识代码,通常用于业务逻辑和系统集成 - 代码唯一性: 部门代码在同一域内应该是唯一的 - 代码格式: 部门代码可以是字母、数字或组合 - 代码用途: 用于部门识别、数据关联、系统集成等场景
注意事项¶
- ⚠️ 部门存在性: 获取部门代码前需要确保部门存在
- ⚠️ 空值处理: 部门代码可能为空,需要判断
- ⚠️ 域ID: 查询时建议加上域ID条件,避免跨域数据
- ⚠️ 代码唯一性: 部门代码在同一域内应该唯一
- ⚠️ 性能优化: 批量获取时注意性能优化
- 部门代码是部门的重要属性之一
- 可以通过部门对象直接获取代码
- 也可以直接通过SQL查询部门表获取代码
使用场景¶
- 根据部门代码进行业务判断
- 部门信息展示
- 数据关联和查询
- 系统集成
- 部门管理功能
如需查看完整脚本代码,请访问源文档链接。