百度智能外呼对接。

This commit is contained in:
haown 2024-09-06 17:05:46 +08:00
parent 8f8d74d00c
commit ec4fb23e75
10 changed files with 125 additions and 12 deletions

View File

@ -135,6 +135,16 @@ public class QuestionInfo extends BaseEntity {
*/ */
private Long sourceTemplateId; private Long sourceTemplateId;
/**
* 话术表ID
*/
private Long scriptInfoId;
/**
* 机器人模板ID(冗余字段)
*/
private String robotPublishId;
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

View File

@ -81,8 +81,17 @@ public class QuestionSubjectOption extends BaseEntity {
@Excel(name = "选项备注") @Excel(name = "选项备注")
private String optionRemark; private String optionRemark;
/**
* 匹配问题文本如果带变量则用竖线|分隔分段匹配各分段必须都匹配
*/
private String speechContextText;
@Override /**
* 匹配意图描述如果多个意图用竖线|隔开任意一个匹配即可
*/
private String intent;
@Override
public String toString() { public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId()) .append("id", getId())

View File

@ -91,6 +91,12 @@ public class SignPatientManageRouteNode extends BaseEntity {
@Excel(name = "话术表 ID") @Excel(name = "话术表 ID")
private Long scriptInfoId; private Long scriptInfoId;
/**
* 爱医声平台机器人ID
*/
@ApiModelProperty(value = "爱医声平台机器人ID")
private String robotPublishId;
/** 电话模板ID */ /** 电话模板ID */
@ApiModelProperty(value = "电话模板ID") @ApiModelProperty(value = "电话模板ID")
@Excel(name = "电话模板ID") @Excel(name = "电话模板ID")

View File

@ -448,4 +448,19 @@ public class AIOBServiceImpl implements IAIOBService {
importTask(importTaskDto); importTask(importTaskDto);
} }
/**
* @description 通过通话记录解析问卷内容
* @param record 通话记录
* @Author haown
* @Date 2024-9-6 14:30
*/
private void parseQuestionInfo(JSONArray record) {
// record=[{"role":"speech","timestamp":1724917698521,"contextText":"您好,我是山东省立医院的电话客服,请问您是李四本人或家属吗?", "sn":"19a09431-1ac6-43a1-8f9f-4b6f617bed73","intent":"NOINTENT","start":"00:00.033","stop":"00:06.974","timeLen":6941,"interrupted":false,"silent":false,"nodeInfo":"eyJwcm9jZXNzTmFtZSI6IuaFoueXheeUqOiNr+Wbnuiuv+ivneacryIsIm5vZGVOYW1lIjoi5byA5Zy655m96IqC54K5X3RwcnZtc2g4IiwiaW50ZW50IjoiIiwiZW50aXR5IjpbXSwic3lzdGVtRXZlbnQiOiIiLCJmYXEiOiIifQ=="},
// {"role":"voice","timestamp":1724917707542,"content":"是的","contextText":"是的","sn":"0e5c9c4e65db11ef_2_1","start":"00:06.930","stop":"00:08.330","timeLen":1400,"interrupted":false,"silent":false},
// {"role":"speech","timestamp":1724917708359,"content":"是的","contextText":"好的,您之前在我们医院住过院,想了解一下您近期的健康状况。","sn":"0e5c9c4e65db11ef_2_1","intent":"patient_self","start":"00:09.871","stop":"00:15.793","timeLen":5922,"interrupted":false,"silent":false,"nodeInfo":"eyJwcm9jZXNzTmFtZSI6IuaFoueXheeUqOiNr+Wbnuiuv+ivneacryIsIm5vZGVOYW1lIjoi5pys5Lq66IqC54K5X3Nyd2Q5MTR3IiwiaW50ZW50Ijoi5piv5pys5Lq6IiwiZW50aXR5IjpbXSwic3lzdGVtRXZlbnQiOiIiLCJmYXEiOiIifQ=="},
// {"role":"voice","timestamp":1724917718191,"content":"好的嗯","contextText":"好的嗯","sn":"0e5c9c4e65db11ef_4_1","start":"00:16.650","stop":"00:18.970","timeLen":2320,"interrupted":false,"silent":false},
// {"role":"speech","timestamp":1724917718873,"content":"好的嗯","contextText":"您是否正常按时服药呢?","sn":"0e5c9c4e65db11ef_4_1","intent":"NOINTENT","start":"00:20.385","stop":"00:22.917","timeLen":2532,"interrupted":false,"silent":false,"nodeInfo":"eyJwcm9jZXNzTmFtZSI6IuaFoueXheeUqOiNr+Wbnuiuv+ivneacryIsIm5vZGVOYW1lIjoi6IKv5a6a6IqC54K5X3F6aWpzb2g2IiwiaW50ZW50IjoiIiwiZW50aXR5IjpbXSwic3lzdGVtRXZlbnQiOiIiLCJmYXEiOiIifQ=="},
// {"role":"voice","timestamp":1724917725425,"content":"是的","contextText":"是的","sn":"0e5c9c4e65db11ef_6_1","start":"00:24.810","stop":"00:26.210","timeLen":1400,"interrupted":false,"silent":false},
// {"role":"speech","timestamp":1724917725993,"content":"是的","contextText":"祝您早日康复。","sn":"0e5c9c4e65db11ef_6_1","intent":"sys_yes","start":"00:27.505","stop":"00:29.637","timeLen":2132,"interrupted":false,"silent":false,"nodeInfo":"eyJwcm9jZXNzTmFtZSI6IuaFoueXheeUqOiNr+Wbnuiuv+ivneacryIsIm5vZGVOYW1lIjoi5oyJ5pe25pyN6I2v6IqC54K5X3Bxd2RkcDBpIiwiaW50ZW50Ijoi6IKv5a6a5oSP5Zu+IiwiZW50aXR5IjpbXSwic3lzdGVtRXZlbnQiOiIiLCJmYXEiOiIifQ=="}],
}
} }

View File

@ -20,6 +20,7 @@ import com.xinelu.common.enums.ErrorStatusEnum;
import com.xinelu.common.enums.NodeExecuteResultStatusEnum; import com.xinelu.common.enums.NodeExecuteResultStatusEnum;
import com.xinelu.common.enums.NodeExecuteStatusEnum; import com.xinelu.common.enums.NodeExecuteStatusEnum;
import com.xinelu.common.enums.PhoneConnectStatusEnum; import com.xinelu.common.enums.PhoneConnectStatusEnum;
import com.xinelu.common.enums.PhoneDialMethodEnum;
import com.xinelu.common.enums.PhoneMessageRemindEnum; import com.xinelu.common.enums.PhoneMessageRemindEnum;
import com.xinelu.common.enums.PhoneRedialTimesEnum; import com.xinelu.common.enums.PhoneRedialTimesEnum;
import com.xinelu.common.enums.RouteNodeNameEnum; import com.xinelu.common.enums.RouteNodeNameEnum;
@ -732,6 +733,10 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout
templateDetail = JSONObject.parseObject(JSONObject.toJSONString(scriptInfo)); templateDetail = JSONObject.parseObject(JSONObject.toJSONString(scriptInfo));
manageRouteNode.setTemplateType(TemplateTypeConstants.SCRIPT); manageRouteNode.setTemplateType(TemplateTypeConstants.SCRIPT);
manageRouteNode.setTemplateDetail(templateDetail); manageRouteNode.setTemplateDetail(templateDetail);
if (StringUtils.equals(PhoneDialMethodEnum.AI.getInfo(), manageRouteNode.getPhoneDialMethod()) && StringUtils.isBlank(scriptInfo.getRobotPublishId())) {
throw new ServiceException("第三方机器人id为空");
}
} }
// 电话短信内容 // 电话短信内容
if (node.getPhoneMessageTemplateId() != null) { if (node.getPhoneMessageTemplateId() != null) {
@ -777,6 +782,10 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout
templateDetail = JSONObject.parseObject(JSONObject.toJSONString(scriptInfo)); templateDetail = JSONObject.parseObject(JSONObject.toJSONString(scriptInfo));
manageNode.setTemplateType(TemplateTypeConstants.SCRIPT); manageNode.setTemplateType(TemplateTypeConstants.SCRIPT);
manageNode.setTemplateDetail(templateDetail); manageNode.setTemplateDetail(templateDetail);
if (StringUtils.equals(PhoneDialMethodEnum.AI.getInfo(), manageNode.getPhoneDialMethod()) && StringUtils.isBlank(scriptInfo.getRobotPublishId())) {
throw new ServiceException("第三方机器人id为空");
}
} }
} else if (manageNode.getQuestionInfoId() != null) { // 问卷 } else if (manageNode.getQuestionInfoId() != null) { // 问卷
// 查询问卷详情 // 查询问卷详情

View File

@ -28,6 +28,7 @@ import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecor
import com.xinelu.manage.domain.patienttaskstatistics.PatientTaskStatistics; import com.xinelu.manage.domain.patienttaskstatistics.PatientTaskStatistics;
import com.xinelu.manage.domain.patientvisitrecord.PatientVisitRecord; import com.xinelu.manage.domain.patientvisitrecord.PatientVisitRecord;
import com.xinelu.manage.domain.propagandainfo.PropagandaInfo; import com.xinelu.manage.domain.propagandainfo.PropagandaInfo;
import com.xinelu.manage.domain.questioninfo.QuestionInfo;
import com.xinelu.manage.domain.scriptInfo.ScriptInfo; import com.xinelu.manage.domain.scriptInfo.ScriptInfo;
import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute;
import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode;
@ -748,6 +749,9 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage
// 话术库json内容替换 // 话术库json内容替换
manageNode.setPhoneNodeContent(getFlowScheme(scriptInfo.getFlowScheme(), labelFieldContentList)); manageNode.setPhoneNodeContent(getFlowScheme(scriptInfo.getFlowScheme(), labelFieldContentList));
manageNode.setPhoneTemplateId(scriptInfo.getScriptId()); manageNode.setPhoneTemplateId(scriptInfo.getScriptId());
if (StringUtils.equals(PhoneDialMethodEnum.AI.getInfo(), manageNode.getPhoneDialMethod()) && StringUtils.isBlank(scriptInfo.getRobotPublishId())) {
throw new ServiceException("第三方机器人id为空");
}
} }
} }
// 电话短信内容 // 电话短信内容
@ -1168,8 +1172,17 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage
break; break;
// 问卷 // 问卷
case TaskNodeTypeConstants.QUESTIONNAIRE_SCALE: case TaskNodeTypeConstants.QUESTIONNAIRE_SCALE:
QuestionInfo questionInfo = questionInfoService.selectQuestionInfoById(node.getTemplateId());
manageRouteNode.setQuestionInfoId(node.getTemplateId()); manageRouteNode.setQuestionInfoId(node.getTemplateId());
manageRouteNode.setQuestionnaireName(node.getTemplateName()); manageRouteNode.setQuestionnaireName(node.getTemplateName());
if (ObjectUtils.isNotEmpty(questionInfo)) {
manageRouteNode.setScriptInfoId(questionInfo.getScriptInfoId());
manageRouteNode.setRobotPublishId(questionInfo.getRobotPublishId());
// 节点是否是AI电话
if (StringUtils.equals(PhoneDialMethodEnum.AI.getInfo(), manageRouteNode.getPhoneDialMethod()) && StringUtils.isBlank(questionInfo.getRobotPublishId())) {
throw new ServiceException("第三方机器人id为空");
}
}
break; break;
// 话术 // 话术
case TaskNodeTypeConstants.PHONE_OUTBOUND: case TaskNodeTypeConstants.PHONE_OUTBOUND:
@ -1179,9 +1192,10 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage
if (ObjectUtils.isNotEmpty(scriptInfo)) { if (ObjectUtils.isNotEmpty(scriptInfo)) {
// 话术库json内容替换 // 话术库json内容替换
manageRouteNode.setPhoneNodeContent(getFlowScheme(scriptInfo.getFlowScheme(), labelFieldContentList)); manageRouteNode.setPhoneNodeContent(getFlowScheme(scriptInfo.getFlowScheme(), labelFieldContentList));
manageRouteNode.setRobotPublishId(scriptInfo.getRobotPublishId());
// 节点是否是AI电话 // 节点是否是AI电话
if (StringUtils.equals(PhoneDialMethodEnum.AI.getInfo(), manageRouteNode.getPhoneDialMethod())) { if (StringUtils.equals(PhoneDialMethodEnum.AI.getInfo(), manageRouteNode.getPhoneDialMethod()) && StringUtils.isBlank(scriptInfo.getRobotPublishId())) {
throw new ServiceException("第三方机器人id为空");
} }
} }
break; break;

View File

@ -21,6 +21,8 @@
<result property="questionnaireRemark" column="questionnaire_remark"/> <result property="questionnaireRemark" column="questionnaire_remark"/>
<result property="sourceTemplateId" column="source_template_id"/> <result property="sourceTemplateId" column="source_template_id"/>
<result property="questionType" column="question_type"/> <result property="questionType" column="question_type"/>
<result property="scriptInfoId" column="script_info_id"/>
<result property="robotPublishId" column="robot_publish_id"/>
<result property="createBy" column="create_by"/> <result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/> <result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/> <result property="updateBy" column="update_by"/>
@ -44,7 +46,9 @@
questionnaire_remark, questionnaire_remark,
source_template_id, source_template_id,
question_type, question_type,
create_by, script_info_id,
robot_publish_id,
create_by,
create_time, create_time,
update_by, update_by,
update_time update_time
@ -208,6 +212,10 @@
</if> </if>
<if test="questionType != null">question_type, <if test="questionType != null">question_type,
</if> </if>
<if test="scriptInfoId != null">script_info_id,
</if>
<if test="robotPublishId != null">robot_publish_id,
</if>
<if test="createBy != null">create_by, <if test="createBy != null">create_by,
</if> </if>
<if test="createTime != null">create_time, <if test="createTime != null">create_time,
@ -248,6 +256,10 @@
</if> </if>
<if test="questionType != null">#{questionType}, <if test="questionType != null">#{questionType},
</if> </if>
<if test="scriptInfoId != null">#{scriptInfoId},
</if>
<if test="robotPublishId != null">#{robotPublishId},
</if>
<if test="createBy != null">#{createBy}, <if test="createBy != null">#{createBy},
</if> </if>
<if test="createTime != null">#{createTime}, <if test="createTime != null">#{createTime},
@ -307,6 +319,12 @@
<if test="questionType != null">question_type = <if test="questionType != null">question_type =
#{questionType}, #{questionType},
</if> </if>
<if test="scriptInfoId != null">script_info_id =
#{scriptInfoId},
</if>
<if test="robotPublishId != null">robot_publish_id =
#{robotPublishId},
</if>
<if test="createBy != null">create_by = <if test="createBy != null">create_by =
#{createBy}, #{createBy},
</if> </if>

View File

@ -17,6 +17,8 @@
<result property="createTime" column="create_time"/> <result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/> <result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
<result property="speechContextText" column="speech_context_text"/>
<result property="intent" column="intent"/>
</resultMap> </resultMap>
<sql id="selectQuestionSubjectOptionVo"> <sql id="selectQuestionSubjectOptionVo">
@ -31,7 +33,9 @@
create_by, create_by,
create_time, create_time,
update_by, update_by,
update_time update_time,
speech_context_text,
intent
from question_subject_option from question_subject_option
</sql> </sql>
@ -95,6 +99,10 @@
</if> </if>
<if test="updateTime != null">update_time, <if test="updateTime != null">update_time,
</if> </if>
<if test="speechContextText != null">speech_context_text,
</if>
<if test="intent != null">intent,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="questionnaireSubjectId != null">#{questionnaireSubjectId}, <if test="questionnaireSubjectId != null">#{questionnaireSubjectId},
@ -119,6 +127,10 @@
</if> </if>
<if test="updateTime != null">#{updateTime}, <if test="updateTime != null">#{updateTime},
</if> </if>
<if test="speechContextText != null">#{speechContextText},
</if>
<if test="intent != null">#{intent},
</if>
</trim> </trim>
</insert> </insert>
@ -158,6 +170,12 @@
<if test="updateTime != null">update_time = <if test="updateTime != null">update_time =
#{updateTime}, #{updateTime},
</if> </if>
<if test="speechContextText != null">speech_context_text =
#{speechContextText},
</if>
<if test="intent != null">intent =
#{intent},
</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
@ -185,7 +203,9 @@
option_sort, option_sort,
option_remark, option_remark,
create_by, create_by,
create_time create_time,
speech_context_text,
intent
) values ) values
<foreach item="QuestionSubjectOption" index="index" collection="list" separator=","> <foreach item="QuestionSubjectOption" index="index" collection="list" separator=",">
( (
@ -197,7 +217,9 @@
#{QuestionSubjectOption.optionSort}, #{QuestionSubjectOption.optionSort},
#{QuestionSubjectOption.optionRemark}, #{QuestionSubjectOption.optionRemark},
#{QuestionSubjectOption.createBy}, #{QuestionSubjectOption.createBy},
#{QuestionSubjectOption.createTime} #{QuestionSubjectOption.createTime},
#{QuestionSubjectOption.speechContextText},
#{QuestionSubjectOption.intent}
) )
</foreach> </foreach>
</insert> </insert>
@ -215,7 +237,9 @@
create_by, create_by,
create_time, create_time,
update_by, update_by,
update_time update_time,
speech_context_text,
intent
from question_subject_option from question_subject_option
<where> <where>
<if test="questionSubjectIds != null and questionSubjectIds.size() > 0"> <if test="questionSubjectIds != null and questionSubjectIds.size() > 0">

View File

@ -19,6 +19,7 @@
<result property="executeTime" column="execute_time"/> <result property="executeTime" column="execute_time"/>
<result property="phonePushSign" column="phone_push_sign"/> <result property="phonePushSign" column="phone_push_sign"/>
<result property="scriptInfoId" column="script_info_id"/> <result property="scriptInfoId" column="script_info_id"/>
<result property="robotPublishId" column="robot_publish_id"/>
<result property="phoneTemplateId" column="phone_template_id"/> <result property="phoneTemplateId" column="phone_template_id"/>
<result property="phoneTemplateName" column="phone_template_name"/> <result property="phoneTemplateName" column="phone_template_name"/>
<result property="phoneNodeContent" column="phone_node_content"/> <result property="phoneNodeContent" column="phone_node_content"/>
@ -85,7 +86,7 @@
</resultMap> </resultMap>
<sql id="selectSignPatientManageRouteNodeVo"> <sql id="selectSignPatientManageRouteNodeVo">
select id, manage_route_id, manage_route_name, route_node_id, route_node_name, route_node_day, task_type, task_status, task_subdivision, task_node_type, second_classify_describe, execute_time, phone_push_sign, script_info_id, phone_template_id, phone_template_name, phone_node_content,phone_result_json, phone_redial_times, phone_time_interval, phone_message_remind, phone_message_template_id, phone_message_template_name,phone_message_template_content,question_info_id, questionnaire_name, questionnaire_content, question_expiration_date, propaganda_info_id, propaganda_title, propaganda_content, message_push_sign, message_template_id, message_template_code, message_template_name, message_preview, message_node_content, official_push_sign, official_template_id, official_template_code, official_template_name, official_remind_content, official_node_content, follow_template_id, follow_template_name, applet_push_sign, applet_template_id, applet_template_code, applet_template_name, applet_remind_content, applet_prompt_description, applet_node_content, route_check_status, route_check_person, route_check_date, route_check_remark, route_node_remark, node_execute_status, route_handle_remark, route_handle_id, route_handle_person, route_link,text_remind_content, node_content,message_status, del_flag, create_by, create_time, update_by, update_time, phone_dial_method, phone_node_execute_result_status, message_node_execute_result_status, official_node_execute_result_status, applet_node_execute_result_status, node_finish_date, task_id_ext from sign_patient_manage_route_node select id, manage_route_id, manage_route_name, route_node_id, route_node_name, route_node_day, task_type, task_status, task_subdivision, task_node_type, second_classify_describe, execute_time, phone_push_sign, script_info_id, robot_publish_id, phone_template_id, phone_template_name, phone_node_content,phone_result_json, phone_redial_times, phone_time_interval, phone_message_remind, phone_message_template_id, phone_message_template_name,phone_message_template_content,question_info_id, questionnaire_name, questionnaire_content, question_expiration_date, propaganda_info_id, propaganda_title, propaganda_content, message_push_sign, message_template_id, message_template_code, message_template_name, message_preview, message_node_content, official_push_sign, official_template_id, official_template_code, official_template_name, official_remind_content, official_node_content, follow_template_id, follow_template_name, applet_push_sign, applet_template_id, applet_template_code, applet_template_name, applet_remind_content, applet_prompt_description, applet_node_content, route_check_status, route_check_person, route_check_date, route_check_remark, route_node_remark, node_execute_status, route_handle_remark, route_handle_id, route_handle_person, route_link,text_remind_content, node_content,message_status, del_flag, create_by, create_time, update_by, update_time, phone_dial_method, phone_node_execute_result_status, message_node_execute_result_status, official_node_execute_result_status, applet_node_execute_result_status, node_finish_date, task_id_ext from sign_patient_manage_route_node
</sql> </sql>
<select id="selectSignPatientManageRouteNodeList" parameterType="com.xinelu.manage.dto.signpatientmanageroutenode.SignPatientManageRouteNodeDto" resultMap="SignPatientManageRouteNodeResult"> <select id="selectSignPatientManageRouteNodeList" parameterType="com.xinelu.manage.dto.signpatientmanageroutenode.SignPatientManageRouteNodeDto" resultMap="SignPatientManageRouteNodeResult">
@ -238,6 +239,8 @@
</if> </if>
<if test="scriptInfoId != null">script_info_id, <if test="scriptInfoId != null">script_info_id,
</if> </if>
<if test="robotPublishId != null">robot_publish_id,
</if>
<if test="phoneTemplateId != null">phone_template_id, <if test="phoneTemplateId != null">phone_template_id,
</if> </if>
<if test="phoneTemplateName != null">phone_template_name, <if test="phoneTemplateName != null">phone_template_name,
@ -382,6 +385,8 @@
</if> </if>
<if test="scriptInfoId != null">#{scriptInfoId}, <if test="scriptInfoId != null">#{scriptInfoId},
</if> </if>
<if test="robotPublishId != null">#{robotPublishId},
</if>
<if test="phoneTemplateId != null">#{phoneTemplateId}, <if test="phoneTemplateId != null">#{phoneTemplateId},
</if> </if>
<if test="phoneTemplateName != null">#{phoneTemplateName}, <if test="phoneTemplateName != null">#{phoneTemplateName},
@ -502,7 +507,7 @@
</insert> </insert>
<insert id="insertBatch"> <insert id="insertBatch">
insert into sign_patient_manage_route_node(manage_route_id, manage_route_name, route_node_id, route_node_name, route_node_day, task_type, task_status, task_subdivision, task_node_type, second_classify_describe, insert into sign_patient_manage_route_node(manage_route_id, manage_route_name, route_node_id, route_node_name, route_node_day, task_type, task_status, task_subdivision, task_node_type, second_classify_describe,
execute_time, phone_push_sign, script_info_id, phone_template_id, phone_template_name, phone_node_content, phone_result_json, phone_redial_times, phone_time_interval, phone_message_remind, phone_message_template_id, execute_time, phone_push_sign, script_info_id, robot_publish_id, phone_template_id, phone_template_name, phone_node_content, phone_result_json, phone_redial_times, phone_time_interval, phone_message_remind, phone_message_template_id,
phone_message_template_name, phone_message_template_content,question_info_id, questionnaire_name, questionnaire_content, question_expiration_date, propaganda_info_id, propaganda_title, propaganda_content, message_push_sign, phone_message_template_name, phone_message_template_content,question_info_id, questionnaire_name, questionnaire_content, question_expiration_date, propaganda_info_id, propaganda_title, propaganda_content, message_push_sign,
message_template_id, message_template_code, message_template_name, message_preview, message_node_content, official_push_sign, official_template_id, official_template_code,official_template_name, official_remind_content, message_template_id, message_template_code, message_template_name, message_preview, message_node_content, official_push_sign, official_template_id, official_template_code,official_template_name, official_remind_content,
official_node_content, applet_push_sign, applet_template_id, applet_template_code, applet_template_name, applet_remind_content, applet_prompt_description, applet_node_content, official_node_content, applet_push_sign, applet_template_id, applet_template_code, applet_template_name, applet_remind_content, applet_prompt_description, applet_node_content,
@ -511,7 +516,7 @@
values values
<foreach collection="nodeList" item="item" separator=","> <foreach collection="nodeList" item="item" separator=",">
(#{item.manageRouteId},#{item.manageRouteName},#{item.routeNodeId},#{item.routeNodeName},#{item.routeNodeDay},#{item.taskType},#{item.taskStatus},#{item.taskSubdivision},#{item.taskNodeType},#{item.secondClassifyDescribe}, (#{item.manageRouteId},#{item.manageRouteName},#{item.routeNodeId},#{item.routeNodeName},#{item.routeNodeDay},#{item.taskType},#{item.taskStatus},#{item.taskSubdivision},#{item.taskNodeType},#{item.secondClassifyDescribe},
#{item.executeTime},#{item.phonePushSign},#{item.scriptInfoId},#{item.phoneTemplateId},#{item.phoneTemplateName},#{item.phoneNodeContent},#{phoneResultJson},#{item.phoneRedialTimes},#{item.phoneTimeInterval},#{item.phoneMessageRemind},#{item.phoneMessageTemplateId}, #{item.executeTime},#{item.phonePushSign},#{item.scriptInfoId},#{item.robotPublishId},#{item.phoneTemplateId},#{item.phoneTemplateName},#{item.phoneNodeContent},#{phoneResultJson},#{item.phoneRedialTimes},#{item.phoneTimeInterval},#{item.phoneMessageRemind},#{item.phoneMessageTemplateId},
#{item.phoneMessageTemplateName},#{item.phoneMessageTemplateContent}, #{item.phoneMessageTemplateName},#{item.phoneMessageTemplateContent},
#{item.questionInfoId},#{item.questionnaireName},#{item.questionnaireContent},#{item.questionExpirationDate},#{item.propagandaInfoId},#{item.propagandaTitle},#{item.propagandaContent},#{item.messagePushSign}, #{item.questionInfoId},#{item.questionnaireName},#{item.questionnaireContent},#{item.questionExpirationDate},#{item.propagandaInfoId},#{item.propagandaTitle},#{item.propagandaContent},#{item.messagePushSign},
#{item.messageTemplateId}, #{item.messageTemplateCode}, #{item.messageTemplateId}, #{item.messageTemplateCode},
@ -563,6 +568,9 @@
<if test="scriptInfoId != null">script_info_id = <if test="scriptInfoId != null">script_info_id =
#{scriptInfoId}, #{scriptInfoId},
</if> </if>
<if test="robotPublishId != null">robot_publish_id =
#{robotPublishId},
</if>
<if test="phoneTemplateId != null">phone_template_id = <if test="phoneTemplateId != null">phone_template_id =
#{phoneTemplateId}, #{phoneTemplateId},
</if> </if>

View File

@ -83,7 +83,7 @@ public class UploadRobotPublishTask {
*/ */
public void uploadRobotPublishTask() { public void uploadRobotPublishTask() {
log.info("开始执行百度智能外呼创建任务定时任务......"); log.info("开始执行百度智能外呼创建任务定时任务......");
// 查找需要当天执行的AI打电话任务 // 查找需要当天执行的AI打电话任务问卷或电话外呼类型
SignPatientManageRouteNodeDto signPatientManageRouteNodeDto = new SignPatientManageRouteNodeDto(); SignPatientManageRouteNodeDto signPatientManageRouteNodeDto = new SignPatientManageRouteNodeDto();
signPatientManageRouteNodeDto.setTaskNodeType(TaskNodeTypeEnum.PHONE_OUTBOUND.getInfo()); signPatientManageRouteNodeDto.setTaskNodeType(TaskNodeTypeEnum.PHONE_OUTBOUND.getInfo());
signPatientManageRouteNodeDto.setNodeExecuteStatus(NodeExecuteStatusEnum.UNEXECUTED.getInfo()); signPatientManageRouteNodeDto.setNodeExecuteStatus(NodeExecuteStatusEnum.UNEXECUTED.getInfo());