场景描述:
在销售模块中,会遇到这种情况:如果有销售离职了,在系统中的其原本跟进的客户需要重新分配给其他销售继续进行客户跟进。
功能思路:
划转功能,首先需要先选择哪个被划转人,批量选择需要被划转的客户(被划转人的客户),获取被划转人的客户信息(比如联系人、合同等),再选择接收人,最后通过功能步骤实现客户划转功能。
功能实现:
数据表结构简单表示,可以根据实际需要自行调整。
在白码低代码开发平台上创建一个“批量划转”功能。
功能画布效果:
其中,选择划转客户步骤,属性选项卡设置:
数据处理步骤:
代码示例:
async function runProcess($model = model, $plugin = plugin, $params = params) {
let saler = $params.saler;//接受人
let custList = $params.custList;//客户列表
for (let i = 0; i < custList.length; i++) {
let cust = custList[i];
//更新客户所属销售为接收人
await $plugin.data.updateData("60a7286df4f073243956fc80", cust._id, {//客户
"60a7327442591a1dc3adb216": saler._id,
});
//获取被划转客户的所有联系人
let contactList = await $plugin.data.queryData("60a72af84b77d5588b27735b", {//联系人
"60a72b0c2f46fa549a6816eb": cust._id
});
//更新联系人的跟进销售为接收人
contactList.forEach(contact => {
$plugin.data.updateData("60a72af84b77d5588b27735b", contact._id, {
"60a7353ef4f073243956fd06": saler._id
});
});
//获取客户的所有合同
let contracts = await $plugin.data.queryData("60a72ceaf4f073243956fcc8", {//合同
"60a72cfe4b77d5588b277362": cust._id,
});
//更新合同的跟进销售为接收人
contracts.forEach(contract => {
$plugin.data.updateData("60a72ceaf4f073243956fcc8", contract._id, {
"60a72d2ff4f073243956fccc":saler._id
});
});
}
}
功能实现效果:
划转前的客户:
划转前的联系人:
划转前的合同:
划转:
划转后的客户:
划转后的联系人:
划转后的合同: