JS_调整飞书多维表格中的数据_使用的AW

// 飞书应用配置
const APP_ID = "XXX";
const APP_SECRET = "XXX";

// 表格配置
const APP_TOKEN = "XXX";
const TABLE_ID = "XXX";

// 技术支持姓名
const rpa_coach = startTrigger.data.rpa_coach;

// 获取 tenant_access_token
async function getTenantAccessToken() {
    const url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal";
    const headers = {
        "Content-Type": "application/json; charset=utf-8"
    };
    const data = {
        app_id: APP_ID,
        app_secret: APP_SECRET
    };

    const response = await fetch(url, {
        method: "POST",
        headers,
        body: JSON.stringify(data)
    });
    const result = await response.json();

    if (result.code === 0) {
        return result.tenant_access_token;
    } else {
        throw new Error(`获取token失败: ${result.msg}`);
    }
}

// 查询技术支持人员的工作负荷
async function queryRpaCoachWorkload(token, rpa_coach) {
    const url = `https://open.feishu.cn/open-apis/bitable/v1/apps/${APP_TOKEN}/tables/${TABLE_ID}/records/search`;
    const headers = {
        "Authorization": `Bearer ${token}`,
        "Content-Type": "application/json; charset=utf-8"
    };
    const data = {
        view_id: "vewSz3NSZh",
        field_names: ["RPA教练", "工作负荷"],
        filter: {
            conjunction: "and",
            conditions: [
                {
                    field_name: "RPA教练",
                    operator: "is",
                    value: [rpa_coach]
                }
            ]
        }
    };

    const response = await fetch(url, {
        method: "POST",
        headers,
        body: JSON.stringify(data)
    });
    const result = await response.json();

    if (result.code === 0) {
        const records = result.data?.items || [];
        if (records.length > 0) {
            const record = records[0];
            const workload = record.fields?.["工作负荷"];
            const record_id = record.record_id;
            return { rpa_coach, workload, record_id };
        } else {
            // 不抛异常,返回特殊标识
            return { rpa_coach, workload: null, record_id: null, message: "未找到对应RPA教练的工作负荷记录" };
        }
    } else {
        throw new Error(`查询记录失败: ${result.msg}`);
    }
}

// 更新技术支持人员工作负荷
async function updateRpaCoachWorkloadRecord(token, record_id, updated_workload) {
    const url = `https://open.feishu.cn/open-apis/bitable/v1/apps/${APP_TOKEN}/tables/${TABLE_ID}/records/${record_id}`;
    const headers = {
        "Authorization": `Bearer ${token}`,
        "Content-Type": "application/json; charset=utf-8"
    };
    const data = {
        fields: {
            "工作负荷": updated_workload
        }
    };

    const response = await fetch(url, {
        method: "PUT",
        headers,
        body: JSON.stringify(data)
    });
    const result = await response.json();
    return { success: result.code === 0, code: result.code, msg: result.msg };
}

async function updateRpaCoachWorkloadSafe() {
    const token = await getTenantAccessToken();
    const query_result = await queryRpaCoachWorkload(token, rpa_coach);
    if (query_result.record_id === null) {
        // 未找到记录,直接返回该信息
        return {
            rpa_coach: rpa_coach,
            update_msg: "未找到对应RPA教练的工作负荷记录"
        };
    }
    const record_id = query_result.record_id;
    const current_workload = query_result.workload;
    const updated_workload = current_workload - 1;
    const update_result = await updateRpaCoachWorkloadRecord(token, record_id, updated_workload);
    return {
        rpa_coach: rpa_coach,
        previous_workload: current_workload,
        updated_workload,
        update_success: update_result.success,
        update_code: update_result.code,
        update_msg: update_result.msg
    };
}

return updateRpaCoachWorkloadSafe();
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐