纷享销客销售订单配件回访CRM业务流程待办提醒

1、设置——>流程管理——>业务流程管理。

Groovy代码如下:

//开始时间
DateTime startTime = '2020-01-01 00:00';
//结束时间
DateTime endTime = '2020-12-31 23:59';
//是否新老客户
List customList = ["option1", "cgpt378qs"];
//配件销售订单数量
def num = 0;
//test发金额
def sendAmount = 3999;

def searchCondition = QueryTemplate.AND(
        ["field_QlmK7__c": QueryOperator.IN(customList)],
        ["field_Gy2i7__c": QueryOperator.EQ(num)],
        ["field_qnWxZ__c": QueryOperator.GT(sendAmount)],
        ["create_time": QueryOperator.GTE(startTime)],
        ["create_time": QueryOperator.LTE(endTime)]
)

Fx.log.info("查询条件为 :" + searchCondition)
//查询条件 要以id 进行排序,find默认的排序是最后修改时间,如果排序字段存在重复,数据库是不能保证每次查询出来顺序是一致的
//分页的时候可能会出现重复数据,导致执行遗漏。
Map orderBy = ["_id": -1]

boolean hasData = true
Integer limit = 100
//循环聚合所有数据
Map updateData = [:]
Range range = Ranges.of(0, 200)
range.each { i ->
    if (hasData == false) {
        return
    }

    Integer skip = i * limit
    def (Boolean error, QueryResult result, String errorMessage) = Fx.object.find("AccountObj",
            FQLAttribute.builder()
                    .orderBy(orderBy)
                    .limit(limit)
                    .skip(skip)
                    .columns(["_id", "name", "create_time", "owner", "remark", "tel"])
                    .queryTemplate(searchCondition)
                    .build(),
            SelectAttribute.builder().build())

    if (error) {
        hasData = false
        Fx.log.info("查询失败" + "当前跳过的数量为 " + skip + "错误原因为" + errorMessage)
        return
    }
    log.info(result)
    //获取所有更新的数据,如果是预设对象,就在循环里面直接更新。
    List dataList = result.dataList
    if (dataList.size() < limit) {
        hasData = false
    }

    //如果不需要合并数据,在这里就可以100条
    dataList.each { item ->
        Map objectData = item as Map
        log.info(objectData)
        updateData.put(objectData._id, ["owner": objectData.owner, "name": objectData.name])
    }
}

//极端情况,所有查询都失败了
if (!updateData) {
    Fx.log.info("循环查询出来数据为空")
    return
}
//如果是自定义对象,直接调用批量更新即可,更新单次500条限制,所以我们拆分数据
List idList = updateData.keys() as List
//log.info(updateData)
//log.info(idList)
//业务流定义id【详细信息——>API名称】
def bpmId ="678e123q62da500001af2e3e"
List partitionList = Fx.utils.listPartition(idList, 500)
partitionList.each { item ->
    //根据id分批组装数据
    List ids = item as List
    ids.each { id ->
        String stringId = id as String
        log.info(stringId);
        log.info(customName);
        log.info(receiverIds);
        def (Boolean error, String data, String errorMessage) = Fx.bpm.startInstance(bpmId, stringId, "AccountObj");
        if (error) {
            log.info(errorMessage)
        } else {
            log.info(data)
        }
    }
}
Fx.log.info("实际更新的数据为" + idList.size())

 备注:2021年、2022年、2023年数据,只需要修改开始时间和结束时间即可。
//开始时间
DateTime startTime = '2021-01-01 00:00';
//结束时间
DateTime endTime = '2021-12-31 23:59';

参考:
1、Fx.object.find
Fx.object | 纷享销客 | 帮助中心
2、Fx.bpm.startInstance
Fx.bpm | 纷享销客 | 帮助中心

MATLAB代码实现了一个基于多种智能优化算法优化RBF神经网络的回归预测模型,其核心是通过智能优化算法自动寻找最优的RBF扩展参数(spread),以提升预测精度。 1.主要功能 多算法优化RBF网络:使用多种智能优化算法优化RBF神经网络的核心参数spread。 回归预测:对输入特征进行回归预测,适用于连续值输出问题。 性能对比:对比不同优化算法在训练集和测试集上的预测性能,绘制适应度曲线、预测对比图、误差指标柱状图等。 2.算法步骤 数据准备:导入数据,随机打乱,划分训练集和测试集(默认7:3)。 数据归一化:使用mapminmax将输入和输出归一化到[0,1]区间。 标准RBF建模:使用固定spread=100建立基准RBF模型。 智能优化循环: 调用优化算法(从指定文件夹中读取算法文件)优化spread参数。 使用优化后的spread重新训练RBF网络。 评估预测结果,保存性能指标。 结果可视化: 绘制适应度曲线、训练集/测试集预测对比图。 绘制误差指标(MAE、RMSE、MAPE、MBE)柱状图。 十种智能优化算法分别是: GWO:灰狼算法 HBA:蜜獾算法 IAO:改进天鹰优化算法,改进①:Tent混沌映射种群初始化,改进②:自适应权重 MFO:飞蛾扑火算法 MPA:海洋捕食者算法 NGO:北方苍鹰算法 OOA:鱼鹰优化算法 RTH:红尾鹰算法 WOA:鲸鱼算法 ZOA:斑马算法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值