|
@@ -5,20 +5,26 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.fs.common.utils.StringUtils;
|
|
import com.fs.common.utils.StringUtils;
|
|
|
import com.fs.common.utils.spring.SpringUtils;
|
|
import com.fs.common.utils.spring.SpringUtils;
|
|
|
import com.fs.company.domain.*;
|
|
import com.fs.company.domain.*;
|
|
|
|
|
+import com.fs.company.enums.BusinessTypeEnum;
|
|
|
import com.fs.company.mapper.CompanyVoiceRoboticCallLogCallphoneMapper;
|
|
import com.fs.company.mapper.CompanyVoiceRoboticCallLogCallphoneMapper;
|
|
|
import com.fs.company.mapper.CompanyVoiceRoboticCalleesMapper;
|
|
import com.fs.company.mapper.CompanyVoiceRoboticCalleesMapper;
|
|
|
import com.fs.company.mapper.CompanyWorkflowNodeMapper;
|
|
import com.fs.company.mapper.CompanyWorkflowNodeMapper;
|
|
|
|
|
+import com.fs.company.param.CompanyVoiceRoboticCallBlacklistCheckParam;
|
|
|
import com.fs.company.param.ExecutionContext;
|
|
import com.fs.company.param.ExecutionContext;
|
|
|
|
|
+import com.fs.company.service.ICompanyVoiceRoboticCallBlacklistService;
|
|
|
import com.fs.company.service.ICompanyVoiceRoboticService;
|
|
import com.fs.company.service.ICompanyVoiceRoboticService;
|
|
|
import com.fs.company.service.easycall.IEasyCallService;
|
|
import com.fs.company.service.easycall.IEasyCallService;
|
|
|
import com.fs.company.service.impl.CompanyVoiceRoboticCallLogCallphoneServiceImpl;
|
|
import com.fs.company.service.impl.CompanyVoiceRoboticCallLogCallphoneServiceImpl;
|
|
|
import com.fs.company.vo.AiCallConfigVO;
|
|
import com.fs.company.vo.AiCallConfigVO;
|
|
|
import com.fs.company.vo.AiCallWorkflowConditionVo;
|
|
import com.fs.company.vo.AiCallWorkflowConditionVo;
|
|
|
|
|
+import com.fs.company.vo.CompanyVoiceRoboticCallBlacklistCheckVO;
|
|
|
import com.fs.company.vo.ExecutionResult;
|
|
import com.fs.company.vo.ExecutionResult;
|
|
|
import com.fs.company.vo.easycall.EasyCallCommonAddCallListParam;
|
|
import com.fs.company.vo.easycall.EasyCallCommonAddCallListParam;
|
|
|
import com.fs.company.vo.easycall.EasyCallCreateTaskParam;
|
|
import com.fs.company.vo.easycall.EasyCallCreateTaskParam;
|
|
|
import com.fs.company.vo.easycall.EasyCallPhoneItemVO;
|
|
import com.fs.company.vo.easycall.EasyCallPhoneItemVO;
|
|
|
import com.fs.company.vo.easycall.EasyCallTaskVO;
|
|
import com.fs.company.vo.easycall.EasyCallTaskVO;
|
|
|
|
|
+import com.fs.crm.domain.CrmCustomer;
|
|
|
|
|
+import com.fs.crm.service.ICrmCustomerService;
|
|
|
import com.fs.enums.ExecutionStatusEnum;
|
|
import com.fs.enums.ExecutionStatusEnum;
|
|
|
import com.fs.enums.NodeTypeEnum;
|
|
import com.fs.enums.NodeTypeEnum;
|
|
|
import com.fs.his.config.CidPhoneConfig;
|
|
import com.fs.his.config.CidPhoneConfig;
|
|
@@ -55,6 +61,8 @@ public class AiCallTaskNode extends AbstractWorkflowNode {
|
|
|
public AiCallTaskNode(String nodeKey, String nodeName, Map<String, Object> properties) {
|
|
public AiCallTaskNode(String nodeKey, String nodeName, Map<String, Object> properties) {
|
|
|
super(nodeKey, nodeName, properties);
|
|
super(nodeKey, nodeName, properties);
|
|
|
}
|
|
}
|
|
|
|
|
+ private final ICompanyVoiceRoboticCallBlacklistService companyVoiceRoboticCallBlacklistService = SpringUtils.getBean(ICompanyVoiceRoboticCallBlacklistService.class);
|
|
|
|
|
+ private final ICrmCustomerService crmCustomerService = SpringUtils.getBean(ICrmCustomerService.class);
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 收到回调以后,继续判定和执行下一步动作
|
|
* 收到回调以后,继续判定和执行下一步动作
|
|
@@ -272,6 +280,18 @@ public class AiCallTaskNode extends AbstractWorkflowNode {
|
|
|
throw new RuntimeException("被叫人信息异常,calleeId: " + calleeId);
|
|
throw new RuntimeException("被叫人信息异常,calleeId: " + calleeId);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ //校验被叫人是否命中黑名单
|
|
|
|
|
+ CrmCustomer crmCustomer = crmCustomerService.selectCrmCustomerById(callees.getUserId());
|
|
|
|
|
+ CompanyVoiceRoboticCallBlacklistCheckParam companyVoiceRoboticCallBlacklistCheckParam = new CompanyVoiceRoboticCallBlacklistCheckParam();
|
|
|
|
|
+ companyVoiceRoboticCallBlacklistCheckParam.setCompanyId(crmCustomer.getCompanyId());
|
|
|
|
|
+ companyVoiceRoboticCallBlacklistCheckParam.setBusinessType(BusinessTypeEnum.SMS.getCode());
|
|
|
|
|
+ companyVoiceRoboticCallBlacklistCheckParam.setTargetValue(callees.getPhone());
|
|
|
|
|
+ CompanyVoiceRoboticCallBlacklistCheckVO companyVoiceRoboticCallBlacklistCheckVO = companyVoiceRoboticCallBlacklistService.checkBlacklist(companyVoiceRoboticCallBlacklistCheckParam);
|
|
|
|
|
+ if (!companyVoiceRoboticCallBlacklistCheckVO.getPass()){
|
|
|
|
|
+ log.error("workflowCallPhoneOne4EasyCall: 被叫人黑名单校验未通过 - userId: {}", callees.getUserId());
|
|
|
|
|
+ throw new RuntimeException("当前用户黑名单校验未通过");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 3. 构建创建任务参数(AI 外呼模式:taskType=1)
|
|
// 3. 构建创建任务参数(AI 外呼模式:taskType=1)
|
|
|
EasyCallCreateTaskParam createParam = new EasyCallCreateTaskParam();
|
|
EasyCallCreateTaskParam createParam = new EasyCallCreateTaskParam();
|
|
|
// 任务名称:使用工作流实例 ID + 被叫人 ID 组合,保证唯一性
|
|
// 任务名称:使用工作流实例 ID + 被叫人 ID 组合,保证唯一性
|