JS_调整飞书多维表格中的数据
·
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();
更多推荐

所有评论(0)