|
@@ -131,6 +131,7 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
|
|
|
|
|
private final EasyCallTaskControlService easyCallTaskControlService;
|
|
private final EasyCallTaskControlService easyCallTaskControlService;
|
|
|
private final CompanySiptaskInfoMapper companySiptaskInfoMapper;
|
|
private final CompanySiptaskInfoMapper companySiptaskInfoMapper;
|
|
|
|
|
+ private final CompanyWorkflowNodeMapper companyWorkflowNodeMapper;
|
|
|
|
|
|
|
|
/** EasyCall intent 意向度重试队列 Redis key 前缀,value 为已重试次数 */
|
|
/** EasyCall intent 意向度重试队列 Redis key 前缀,value 为已重试次数 */
|
|
|
private static final String EASYCALL_INTENT_RETRY_KEY = "easycall:intent:retry:";
|
|
private static final String EASYCALL_INTENT_RETRY_KEY = "easycall:intent:retry:";
|
|
@@ -204,19 +205,20 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
}
|
|
}
|
|
|
int i = companyVoiceRoboticMapper.insert(companyVoiceRobotic);
|
|
int i = companyVoiceRoboticMapper.insert(companyVoiceRobotic);
|
|
|
int isWeCom = companyVoiceRobotic.getIsWeCom() == null ? 1 : companyVoiceRobotic.getIsWeCom();
|
|
int isWeCom = companyVoiceRobotic.getIsWeCom() == null ? 1 : companyVoiceRobotic.getIsWeCom();
|
|
|
- // 设置加微微信列表
|
|
|
|
|
List<RoboticWxVo> qwUserList = companyVoiceRobotic.getQwUserList();
|
|
List<RoboticWxVo> qwUserList = companyVoiceRobotic.getQwUserList();
|
|
|
- List<CompanyVoiceRoboticWx> collect = qwUserList.stream().map(e -> {
|
|
|
|
|
- CompanyVoiceRoboticWx entity = new CompanyVoiceRoboticWx();
|
|
|
|
|
- entity.setIntention(e.getIntention());
|
|
|
|
|
- entity.setRoboticId(companyVoiceRobotic.getId());
|
|
|
|
|
- entity.setIsWeCom(isWeCom);
|
|
|
|
|
- entity.setAccountId(e.getCompanyUserId());
|
|
|
|
|
- entity.setWxDialogId(e.getWxDialogId());
|
|
|
|
|
- entity.setSmsTempId(e.getSmsTempId());
|
|
|
|
|
- return entity;
|
|
|
|
|
- }).collect(Collectors.toList());
|
|
|
|
|
- companyVoiceRoboticWxService.saveBatch(collect);
|
|
|
|
|
|
|
+ if (qwUserList != null && !qwUserList.isEmpty()) {
|
|
|
|
|
+ List<CompanyVoiceRoboticWx> collect = qwUserList.stream().map(e -> {
|
|
|
|
|
+ CompanyVoiceRoboticWx entity = new CompanyVoiceRoboticWx();
|
|
|
|
|
+ entity.setIntention(e.getIntention());
|
|
|
|
|
+ entity.setRoboticId(companyVoiceRobotic.getId());
|
|
|
|
|
+ entity.setIsWeCom(isWeCom);
|
|
|
|
|
+ entity.setAccountId(e.getCompanyUserId());
|
|
|
|
|
+ entity.setWxDialogId(e.getWxDialogId());
|
|
|
|
|
+ entity.setSmsTempId(e.getSmsTempId());
|
|
|
|
|
+ return entity;
|
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
|
+ companyVoiceRoboticWxService.saveBatch(collect);
|
|
|
|
|
+ }
|
|
|
List<CompanyWxClient> clients = companyVoiceRobotic.getUserIds().stream().map(e -> {
|
|
List<CompanyWxClient> clients = companyVoiceRobotic.getUserIds().stream().map(e -> {
|
|
|
CompanyWxClient client = new CompanyWxClient();
|
|
CompanyWxClient client = new CompanyWxClient();
|
|
|
client.setRoboticId(companyVoiceRobotic.getId());
|
|
client.setRoboticId(companyVoiceRobotic.getId());
|
|
@@ -1354,6 +1356,20 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private boolean workflowHasAddWxNode(Long workflowId) {
|
|
|
|
|
+ if (workflowId == null) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ List<CompanyWorkflowNode> nodes = companyWorkflowNodeMapper.selectCompanyWorkflowNodeByWorkflowId(workflowId);
|
|
|
|
|
+ if (nodes == null || nodes.isEmpty()) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ return nodes.stream().anyMatch(n ->
|
|
|
|
|
+ NodeTypeEnum.AI_ADD_WX_TASK_NEW.getCode().equals(n.getNodeType())
|
|
|
|
|
+ || NodeTypeEnum.AI_QW_ADD_WX_TASK.getCode().equals(n.getNodeType())
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public void taskRun(Long id,Long tenantId) {
|
|
public void taskRun(Long id,Long tenantId) {
|
|
|
if(null != tenantId){
|
|
if(null != tenantId){
|
|
@@ -1371,8 +1387,8 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
}
|
|
}
|
|
|
robotic.setTaskStatus(1);
|
|
robotic.setTaskStatus(1);
|
|
|
updateById(robotic);
|
|
updateById(robotic);
|
|
|
- // 根据任务加微方式决定是否直接分配微信 平均时 直接分配用户 场景任务不做分配
|
|
|
|
|
- if (Integer.valueOf(0).equals(robotic.getAddType()) && robotic.getTaskType().equals(TaskTypeEnum.ORDINARY.getValue())) {
|
|
|
|
|
|
|
+ boolean hasAddWxNode = workflowHasAddWxNode(robotic.getCompanyAiWorkflowId());
|
|
|
|
|
+ if (hasAddWxNode && Integer.valueOf(0).equals(robotic.getAddType()) && robotic.getTaskType().equals(TaskTypeEnum.ORDINARY.getValue())) {
|
|
|
allocateWx(robotic);
|
|
allocateWx(robotic);
|
|
|
}
|
|
}
|
|
|
// 新增启动写入任务业务表数据
|
|
// 新增启动写入任务业务表数据
|
|
@@ -1481,10 +1497,10 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
callee.setRunTaskFlow(companyVoiceRobotic.getRunTaskFlow());
|
|
callee.setRunTaskFlow(companyVoiceRobotic.getRunTaskFlow());
|
|
|
callee.setIsWeCom(companyVoiceRobotic.getIsWeCom());
|
|
callee.setIsWeCom(companyVoiceRobotic.getIsWeCom());
|
|
|
companyVoiceRoboticCalleesService.save(callee);
|
|
companyVoiceRoboticCalleesService.save(callee);
|
|
|
- //分配用户
|
|
|
|
|
- if (Integer.valueOf(0).equals(companyVoiceRobotic.getAddType())) {
|
|
|
|
|
|
|
+ boolean hasAddWxNode = workflowHasAddWxNode(companyVoiceRobotic.getCompanyAiWorkflowId());
|
|
|
|
|
+ if (hasAddWxNode && Integer.valueOf(0).equals(companyVoiceRobotic.getAddType())) {
|
|
|
allocateWx4SceneTask(companyVoiceRobotic, client.getId());
|
|
allocateWx4SceneTask(companyVoiceRobotic, client.getId());
|
|
|
- } else if (Integer.valueOf(1).equals(companyVoiceRobotic.getAddType())) {
|
|
|
|
|
|
|
+ } else if (hasAddWxNode && Integer.valueOf(1).equals(companyVoiceRobotic.getAddType())) {
|
|
|
String intention = crmCustomer.getIntention();
|
|
String intention = crmCustomer.getIntention();
|
|
|
String queryIntention = intention;
|
|
String queryIntention = intention;
|
|
|
if (!isPositiveInteger(intention)) {
|
|
if (!isPositiveInteger(intention)) {
|