跳转至

获取部门代码

本文档内容来源于 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(): 获取部门ID
  • getWebUser().getDepartment(): 获取当前用户的部门对象
  • getWebUser().getDefaultDepartment(): 获取当前用户的默认部门对象
  • findBySQL(sql): 执行SQL查询并返回单条记录
  • queryBySQL(sql): 执行SQL查询并返回多条记录
  • getWebUser().getDomainid(): 获取当前用户的域ID

部门代码说明

在MyApps平台中: - 部门代码: 部门的唯一标识代码,通常用于业务逻辑和系统集成 - 代码唯一性: 部门代码在同一域内应该是唯一的 - 代码格式: 部门代码可以是字母、数字或组合 - 代码用途: 用于部门识别、数据关联、系统集成等场景

注意事项

  • ⚠️ 部门存在性: 获取部门代码前需要确保部门存在
  • ⚠️ 空值处理: 部门代码可能为空,需要判断
  • ⚠️ 域ID: 查询时建议加上域ID条件,避免跨域数据
  • ⚠️ 代码唯一性: 部门代码在同一域内应该唯一
  • ⚠️ 性能优化: 批量获取时注意性能优化
  • 部门代码是部门的重要属性之一
  • 可以通过部门对象直接获取代码
  • 也可以直接通过SQL查询部门表获取代码

使用场景

  • 根据部门代码进行业务判断
  • 部门信息展示
  • 数据关联和查询
  • 系统集成
  • 部门管理功能

如需查看完整脚本代码,请访问源文档链接。