|
|
@@ -298,6 +298,82 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 流程Ai呼叫 callOne
|
|
|
+ * @param roboticId
|
|
|
+ * @param callerId
|
|
|
+ * @param workflowInstanceId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public CalltaskcreateaiCustomizeResult workflowCallPhoneOne(Long roboticId, Long callerId, String workflowInstanceId) {
|
|
|
+ try {
|
|
|
+ CompanyVoiceRobotic robotic = companyVoiceRoboticMapper.selectById(roboticId);
|
|
|
+ CompanyVoiceRoboticCallees callees = companyVoiceRoboticCalleesMapper.selectById(callerId);
|
|
|
+ CalleeDomain build = CalleeDomain.builder().number(callees.getPhone()).userData(callees.getId().toString()).build();
|
|
|
+ List<CalleeDomain> mobileList = new ArrayList<>();
|
|
|
+ mobileList.add(build);
|
|
|
+
|
|
|
+ // 构建三方接口请求数据
|
|
|
+ CalltaskcreateaiCustomizeDomain param = new CalltaskcreateaiCustomizeDomain();
|
|
|
+ param.setRobot(robotic.getRobot());
|
|
|
+ param.setDialogID(robotic.getDialogId());
|
|
|
+ param.setMode(robotic.getMode());
|
|
|
+ param.setCallees(mobileList);
|
|
|
+ param.setTaskName(robotic.getName());
|
|
|
+ param.setMultiplier(robotic.getMultiplier());
|
|
|
+ param.setAutoRecall(robotic.getAutoRecall());
|
|
|
+ param.setRecallTimes(robotic.getRecallTimes());
|
|
|
+ if (StringUtils.isNotEmpty(robotic.getWeekDay1())) {
|
|
|
+ param.setWeekday1(Arrays.asList(robotic.getWeekDay1().split(",")));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(robotic.getStartTime1())) {
|
|
|
+ param.setStartTime1(robotic.getStartTime1() + ":00");
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(robotic.getEndTime1())) {
|
|
|
+ param.setEndTime1(robotic.getEndTime1() + ":00");
|
|
|
+ }
|
|
|
+ param.setUserData(workflowInstanceId);
|
|
|
+ JSONObject runParam = (JSONObject) JSON.toJSON(param);
|
|
|
+ runParam.put("companyId", robotic.getCompanyId());
|
|
|
+ CompanyVoiceRoboticCallLogCallphone addLog = CompanyVoiceRoboticCallLogCallphone.initCallLog(
|
|
|
+ runParam.toJSONString(), callerId, roboticId, robotic.getCompanyId());
|
|
|
+ // 请求外呼接口
|
|
|
+ CalltaskcreateaiCustomizeResult result = aiCallService.calltaskcreateaiCustomize(param, robotic.getCompanyId());
|
|
|
+ addLog.setStatus(1);
|
|
|
+ companyVoiceRoboticCallLogCallphoneService.asyncInsertCompanyVoiceRoboticCallLog(addLog);
|
|
|
+ // 设置返回数据
|
|
|
+// robotic.setTaskId(result.getTaskID());
|
|
|
+// robotic.setTaskName(result.getTaskName());
|
|
|
+// companyVoiceRoboticMapper.updateById(robotic);
|
|
|
+ if (StringUtils.isNotBlank(callees.getRunTaskFlow())) {
|
|
|
+ callees.setRunTaskFlow(callees.getRunTaskFlow() + "," + Constants.CELL_PHONE);
|
|
|
+ } else {
|
|
|
+ callees.setRunTaskFlow(Constants.CELL_PHONE);
|
|
|
+ }
|
|
|
+ callees.setTaskId(result.getTaskID());
|
|
|
+ callees.setTaskName(result.getTaskName());
|
|
|
+ companyVoiceRoboticCalleesMapper.updateById(callees);
|
|
|
+ Integer unfulfilledTaskCount = companyVoiceRoboticCalleesMapper.getRoboticIsDoneByRoboticIdAndTaskFlow(roboticId, Constants.CELL_PHONE);
|
|
|
+ //全部完成才更新任务状态
|
|
|
+ if (unfulfilledTaskCount.compareTo(0) == 0) {
|
|
|
+ if (StringUtils.isNotBlank(robotic.getRunTaskFlow())) {
|
|
|
+ robotic.setRunTaskFlow(robotic.getRunTaskFlow() + "," + Constants.CELL_PHONE);
|
|
|
+ } else {
|
|
|
+ robotic.setRunTaskFlow(Constants.CELL_PHONE);
|
|
|
+ }
|
|
|
+ companyVoiceRoboticMapper.updateById(robotic);
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+
|
|
|
+ } catch (Exception ex) {
|
|
|
+ log.error("callPhoneOne异常:", ex);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
@Synchronized
|
|
|
public void sendMsgOne(Long roboticId,Long callerId){
|
|
|
try{
|