/**
* @author QiaoChu
* @codeName 到款认领CRM消息通知
* @description 到款认领CRM消息通知
* @函数需求编号
*/
log.info(context.data)
String id = context.data['_id'] as String;
String status = context.data['status'] as String;
String name = context.data['name'] as String;
String accountId = context.data['account_id'] as String;
//查询六个月以内的销售订单
//开始时间
DateTime dateTime = DateTime.now();
DateTime startTime = dateTime.withMonth(dateTime.month - 6);
//结束时间
DateTime endTime = dateTime;
// 获取客户负责人和团队成员
def ret = Fx.object.findById("AccountObj", accountId,
FQLAttribute.builder().columns(["_id", "name", "owner"]).build(),
SelectAttribute.builder().build()).result() as Map
def teamList = Fx.object.getTeamMember("AccountObj", accountId).result() as List
// 合并去重团队成员
List memberList = (teamList.collect { it["teamMemberEmployee"] }.flatten() + ret['owner']).unique()
// 查询销售订单
def searchCondition = QueryTemplate.AND(
["account_id": QueryOperator.EQ(accountId)],
["create_time": QueryOperator.GTE(startTime)],
["create_time": QueryOperator.LTE(endTime)]
)
Fx.log.info("查询条件为: $searchCondition")
// 分页查询销售订单并去重创建人
List dataAllList = []
Range range = Ranges.of(0, 200)
boolean hasData = true
Integer limit = 100
range.each { i ->
if (!hasData) return
Integer skip = i * limit
def (Boolean error, QueryResult result, String errorMessage) = Fx.object.find(
"SalesOrderObj",
FQLAttribute.builder()
.orderBy(_id: -1)
.limit(limit)
.skip(skip)
.columns(["_id", "created_by"])
.queryTemplate(searchCondition)
.build(),
SelectAttribute.builder().build()
)
if (error) {
Fx.log.info("查询失败,当前跳过的数量为 {$skip},错误原因为 {$errorMessage}")
hasData = false
return
}
dataAllList.addAll(result.dataList)
if (result.dataList.size() < limit) hasData = false
}
if (dataAllList.isEmpty()) {
Fx.log.info("查询出来的数据为空")
return
}
// 获取所有创建人并去重
List memberList2 = dataAllList.collect { it["created_by"] }.flatten().unique()
List memberList3 = (memberList + memberList2).unique()
log.info(memberList3)
if (status == '1') {
log.info(name + ":未认款")
Notice objectNotify = Notice.objectNotice("ReceivedPaymentObj", id)
def (Boolean error, String data, String errorMessage) = Fx.message.sendNotice("到款认领", "请确认到款认领", memberList3, objectNotify)
if (error) {
log.info(errorMessage)
} else {
log.info(data)
}
} else {
log.info(name + ":已认款")
}
参考:
1、Fx.object.findById
Fx.object | 纷享销客 | 帮助中心
2、getTeamMember 获取团队成员
Fx.object | 纷享销客 | 帮助中心
3、Fx.object.find
Fx.object | 纷享销客 | 帮助中心
4、Fx.message.sendNotice
Fx.message | 纷享销客 | 帮助中心