修改曜智外呼。
This commit is contained in:
parent
601e89dd79
commit
bf57c37b93
@ -1,7 +1,6 @@
|
||||
package com.xinelu.manage.mapper.patientquestionoptionresult;
|
||||
|
||||
import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
||||
@ -708,7 +708,8 @@ public class AIOBServiceImpl implements IAIOBService {
|
||||
}
|
||||
|
||||
questionSubmitResultMapper.updatePatientQuestionSubmitResult(patientQuestionSubmitResult);
|
||||
if(patientQuestionOptionResults.size()>0) {
|
||||
if(CollectionUtils.isNotEmpty(patientQuestionOptionResults)) {
|
||||
log.info("问卷选项结果:{}", patientQuestionOptionResults);
|
||||
patientQuestionOptionResultMapper.saveQuestionOptionList(patientQuestionOptionResults);
|
||||
}
|
||||
totalScore[0] = totalScore[0].add(questionSubjectVO.getQuestionScore() == null ? BigDecimal.ZERO : questionSubjectVO.getQuestionScore());
|
||||
@ -736,7 +737,8 @@ public class AIOBServiceImpl implements IAIOBService {
|
||||
patientQuestionOptionResult.setQuestionSubjectResultId(patientQuestionSubjectResult.getId());
|
||||
patientQuestionOptionResults.add(patientQuestionOptionResult);
|
||||
});
|
||||
if(patientQuestionOptionResults.size()>0) {
|
||||
if(CollectionUtils.isNotEmpty(patientQuestionOptionResults)) {
|
||||
log.info("问卷选项结果:{}", patientQuestionOptionResults);
|
||||
patientQuestionOptionResultMapper.saveQuestionOptionList(patientQuestionOptionResults);
|
||||
}
|
||||
totalScore[0] = totalScore[0].add(BigDecimal.ZERO);
|
||||
|
||||
@ -9,7 +9,6 @@ import com.xinelu.common.config.SystemBusinessConfig;
|
||||
import com.xinelu.common.constant.Constants;
|
||||
import com.xinelu.common.constant.PhoneMessageRemindConstants;
|
||||
import com.xinelu.common.constant.TaskCreateTypeConstant;
|
||||
import com.xinelu.common.constant.TaskStatisticsTypeConstants;
|
||||
import com.xinelu.common.enums.ContentedAndRemarkableFlagEnum;
|
||||
import com.xinelu.common.enums.ErrorStatusEnum;
|
||||
import com.xinelu.common.enums.NodeExecuteResultStatusEnum;
|
||||
@ -289,10 +288,10 @@ public class YZAIOBSServiceImpl implements IYZAIOBSService {
|
||||
phoneDialRecordMapper.insertPhoneDialRecord(phoneDialRecord);
|
||||
|
||||
// 修改任务统计表数据
|
||||
if (patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord) > 0) {
|
||||
// 任务统计表修改
|
||||
patientTaskStatisticsService.updateNum(signPatientManageRoute.getPatientId(), TaskStatisticsTypeConstants.TASK_EXECUTE_NUM, 1);
|
||||
}
|
||||
//if (patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord) > 0) {
|
||||
// // 任务统计表修改
|
||||
// patientTaskStatisticsService.updateNum(signPatientManageRoute.getPatientId(), TaskStatisticsTypeConstants.TASK_EXECUTE_NUM, 1);
|
||||
//}
|
||||
|
||||
//接通状态,1-已接通
|
||||
if (dutyCallbackDataDto.getIsAnswer() != null && dutyCallbackDataDto.getIsAnswer() == 1) {
|
||||
@ -409,7 +408,9 @@ public class YZAIOBSServiceImpl implements IYZAIOBSService {
|
||||
boolean hasQuestion = false;
|
||||
String aiobQuestionName = "";
|
||||
for (int i = 0; i < recordList.size(); i++) {
|
||||
if (recordList.get(i).getContextText().contains(questionNameAlias.replaceAll("\\p{P}", ""))) {
|
||||
if (StringUtils.equals(recordList.get(i).getRole(), "speech") && StringUtils.isNotBlank(recordList.get(i).getContextText())
|
||||
&&recordList.get(i).getContextText().contains(questionNameAlias.replaceAll("\\p{P}", ""))
|
||||
) {
|
||||
hasQuestion = true;
|
||||
aiobQuestionName = recordList.get(i).getContextText();
|
||||
break;
|
||||
@ -440,13 +441,10 @@ public class YZAIOBSServiceImpl implements IYZAIOBSService {
|
||||
questionSubjectOptions.forEach(questionSubjectOption -> {
|
||||
PatientQuestionOptionResult patientQuestionOptionResult = new PatientQuestionOptionResult();
|
||||
BeanUtils.copyProperties(questionSubjectOption, patientQuestionOptionResult);
|
||||
patientQuestionOptionResult.setOptionChooseSign(0);
|
||||
patientQuestionOptionResult.setOptionChooseSign(1);
|
||||
// 设置是否选中, 根据回调数据中命中的意向查询
|
||||
List<String> intents = Arrays.asList(questionSubjectOption.getIntent().split("\\|"));
|
||||
for (String intent : intents) {
|
||||
if (callResultIntents.contains(intent)) {
|
||||
patientQuestionOptionResult.setOptionChooseSign(1);
|
||||
}
|
||||
if (callResultIntents.contains(questionSubjectOption.getIntent())) {
|
||||
patientQuestionOptionResult.setOptionChooseSign(0);
|
||||
}
|
||||
|
||||
patientQuestionOptionResult.setId(null);
|
||||
@ -477,11 +475,10 @@ public class YZAIOBSServiceImpl implements IYZAIOBSService {
|
||||
if (!CollectionUtils.isEmpty(contentedFlag)) {
|
||||
patientQuestionSubmitResult.setContentedFlag(ContentedAndRemarkableFlagEnum.DISCONTENTED.getInfo());
|
||||
}
|
||||
|
||||
patientQuestionOptionResultMapper.saveQuestionOptionList(patientQuestionOptionResults);
|
||||
}
|
||||
questionSubmitResultMapper.updatePatientQuestionSubmitResult(patientQuestionSubmitResult);
|
||||
|
||||
patientQuestionOptionResultMapper.saveQuestionOptionList(patientQuestionOptionResults);
|
||||
|
||||
totalScore[0] = totalScore[0].add(questionSubjectVO.getQuestionScore() == null ? BigDecimal.ZERO : questionSubjectVO.getQuestionScore());
|
||||
} else {
|
||||
@ -508,7 +505,8 @@ public class YZAIOBSServiceImpl implements IYZAIOBSService {
|
||||
patientQuestionOptionResult.setQuestionSubjectResultId(patientQuestionSubjectResult.getId());
|
||||
patientQuestionOptionResults.add(patientQuestionOptionResult);
|
||||
});
|
||||
if(patientQuestionOptionResults.size()>0) {
|
||||
if(!CollectionUtils.isEmpty(patientQuestionOptionResults)) {
|
||||
log.info("问卷选项结果:{}", patientQuestionOptionResults);
|
||||
patientQuestionOptionResultMapper.saveQuestionOptionList(patientQuestionOptionResults);
|
||||
}
|
||||
totalScore[0] = totalScore[0].add(BigDecimal.ZERO);
|
||||
@ -537,20 +535,18 @@ public class YZAIOBSServiceImpl implements IYZAIOBSService {
|
||||
callRecord.setRole(str1[0]);
|
||||
if (StringUtils.equals("机器人", str1[0])) {
|
||||
callRecord.setRole("speech");
|
||||
if (str1.length > 1) {
|
||||
if(StringUtils.isNotBlank(str1[1])) {
|
||||
// 用^分隔
|
||||
String[] content = str1[1].split("\\^");
|
||||
for (int i = 0; i < content.length; i++) {
|
||||
if (StringUtils.contains(content[i], "txt=")) {
|
||||
callRecord.setContextText(content[i].replaceAll("txt=", ""));
|
||||
}
|
||||
if (str1.length > 1 && StringUtils.isNotBlank(str1[1])) {
|
||||
// 用^分隔
|
||||
String[] content = str1[1].split("\\^");
|
||||
for (int i = 0; i < content.length; i++) {
|
||||
if (StringUtils.contains(content[i], "txt=")) {
|
||||
callRecord.setContextText(content[i].replaceAll("txt=", ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (StringUtils.equals("用户", str1[0])) {
|
||||
callRecord.setRole("voice");
|
||||
if (str1.length > 1) {
|
||||
if (str1.length > 1 && StringUtils.isNotBlank(str1[1])) {
|
||||
callRecord.setContextText(str1[1]);
|
||||
}
|
||||
}
|
||||
@ -570,15 +566,33 @@ public class YZAIOBSServiceImpl implements IYZAIOBSService {
|
||||
*/
|
||||
private String getReply(List<CallRecord> callRecordList, String question) {
|
||||
for (int i = 0; i < callRecordList.size(); i++) {
|
||||
if (StringUtils.equals(callRecordList.get(i).getContextText(), question)) {
|
||||
if (StringUtils.equals("voice",callRecordList.get(i+1).getRole())) {
|
||||
if (StringUtils.equals(callRecordList.get(i).getContextText(), question) && i+1 <= callRecordList.size() && StringUtils.equals("voice", callRecordList.get(i+1).getRole())) {
|
||||
// 问题可能出现多次补充的情况,用[p2000]标签来标识是补充的问题。
|
||||
if (callRecordList.get(i).getContextText().contains("[p2000]")) {
|
||||
// 查找通话内容中包含[p2000]的用户回复
|
||||
return getReplyByLabel(callRecordList, "[p2000]", i);
|
||||
} else {
|
||||
return callRecordList.get(i+1).getContextText();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private String getReplyByLabel(List<CallRecord> callRecordList, String label, int i) {
|
||||
List<CallRecord> subRecord = callRecordList.subList(i, callRecordList.size());
|
||||
StringBuffer reply = new StringBuffer();
|
||||
if (!CollectionUtils.isEmpty(subRecord)) {
|
||||
for (int j = 0; j < subRecord.size(); j++) {
|
||||
if (StringUtils.isNotBlank(subRecord.get(j).getContextText()) && subRecord.get(j).getContextText().contains(label) && j+1 <= subRecord.size() && StringUtils.equals("voice",subRecord.get(j+1).getRole())) {
|
||||
reply.append(StringUtils.isBlank(subRecord.get(j+1).getContextText()) ? "" : subRecord.get(j+1).getContextText());
|
||||
}
|
||||
}
|
||||
}
|
||||
return reply.toString();
|
||||
}
|
||||
|
||||
private void genenrateQuestion(SignPatientManageRouteNode node, PatientInfo patientInfo, Long taskExecuteRecordId) {
|
||||
QuestionInfo questionInfo = questionInfoMapper.selectQuestionInfoById(node.getQuestionInfoId());
|
||||
// 1、保存patient_question_submit_result
|
||||
@ -627,8 +641,7 @@ public class YZAIOBSServiceImpl implements IYZAIOBSService {
|
||||
questionSubjectOptions.forEach(questionSubjectOption -> {
|
||||
PatientQuestionOptionResult patientQuestionOptionResult = new PatientQuestionOptionResult();
|
||||
BeanUtils.copyProperties(questionSubjectOption, patientQuestionOptionResult);
|
||||
patientQuestionOptionResult.setOptionChooseSign(0);
|
||||
patientQuestionOptionResult.setOptionChooseSign(0);
|
||||
patientQuestionOptionResult.setOptionChooseSign(1);
|
||||
patientQuestionOptionResult.setId(null);
|
||||
patientQuestionOptionResult.setCreateTime(LocalDateTime.now());
|
||||
patientQuestionOptionResult.setQuestionSubjectResultId(patientQuestionSubjectResult.getId());
|
||||
@ -653,9 +666,11 @@ public class YZAIOBSServiceImpl implements IYZAIOBSService {
|
||||
if (!CollectionUtils.isEmpty(contentedFlag)) {
|
||||
patientQuestionSubmitResult.setContentedFlag(ContentedAndRemarkableFlagEnum.DISCONTENTED.getInfo());
|
||||
}
|
||||
log.info("问卷选项结果:{}", patientQuestionOptionResults);
|
||||
patientQuestionOptionResultMapper.saveQuestionOptionList(patientQuestionOptionResults);
|
||||
}
|
||||
questionSubmitResultMapper.updatePatientQuestionSubmitResult(patientQuestionSubmitResult);
|
||||
patientQuestionOptionResultMapper.saveQuestionOptionList(patientQuestionOptionResults);
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.xinelu.manage.mapper.patientquestionoptionresult.PatientQuestionOptionResultMapper">
|
||||
|
||||
<resultMap type="PatientQuestionOptionResult" id="PatientQuestionOptionResultResult">
|
||||
<resultMap type="com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult" id="PatientQuestionOptionResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="questionSubjectResultId" column="question_subject_result_id"/>
|
||||
<result property="questionnaireSubjectId" column="questionnaire_subject_id"/>
|
||||
@ -48,7 +48,7 @@
|
||||
</sql>
|
||||
|
||||
<select id="selectPatientQuestionOptionResultList" parameterType="PatientQuestionOptionResult"
|
||||
resultMap="PatientQuestionOptionResultResult">
|
||||
resultMap="PatientQuestionOptionResult">
|
||||
<include refid="selectPatientQuestionOptionResultVo"/>
|
||||
<where>
|
||||
<if test="questionSubjectResultId != null ">
|
||||
@ -94,7 +94,7 @@
|
||||
</select>
|
||||
|
||||
<select id="selectPatientQuestionOptionResultById" parameterType="Long"
|
||||
resultMap="PatientQuestionOptionResultResult">
|
||||
resultMap="PatientQuestionOptionResult">
|
||||
<include refid="selectPatientQuestionOptionResultVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
@ -194,23 +194,23 @@
|
||||
remarkable_flag,
|
||||
question_subject_option_id
|
||||
) values
|
||||
<foreach item="QuestionSubjectOption" index="index" collection="list" separator=",">
|
||||
<foreach item="item" index="index" collection="list" separator=",">
|
||||
(
|
||||
#{QuestionSubjectOption.questionSubjectResultId},
|
||||
#{QuestionSubjectOption.questionnaireSubjectId},
|
||||
#{QuestionSubjectOption.questionName},
|
||||
#{QuestionSubjectOption.optionName},
|
||||
#{QuestionSubjectOption.optionAnswer},
|
||||
#{QuestionSubjectOption.optionScore},
|
||||
#{QuestionSubjectOption.optionChooseSign},
|
||||
#{QuestionSubjectOption.optionSubmitAnswer},
|
||||
#{QuestionSubjectOption.optionSort},
|
||||
#{QuestionSubjectOption.optionRemark},
|
||||
#{QuestionSubjectOption.createBy},
|
||||
#{QuestionSubjectOption.createTime},
|
||||
#{QuestionSubjectOption.contentedFlag},
|
||||
#{QuestionSubjectOption.remarkableFlag},
|
||||
#{QuestionSubjectOption.questionSubjectOptionId}
|
||||
#{item.questionSubjectResultId},
|
||||
#{item.questionnaireSubjectId},
|
||||
#{item.questionName},
|
||||
#{item.optionName},
|
||||
#{item.optionAnswer},
|
||||
#{item.optionScore},
|
||||
#{item.optionChooseSign},
|
||||
#{item.optionSubmitAnswer},
|
||||
#{item.optionSort},
|
||||
#{item.optionRemark},
|
||||
#{item.createBy},
|
||||
#{item.createTime},
|
||||
#{item.contentedFlag},
|
||||
#{item.remarkableFlag},
|
||||
#{item.questionSubjectOptionId}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
@ -128,8 +128,8 @@ public class YZAIOBSTask {
|
||||
|
||||
if (ObjectUtils.isNotEmpty(scriptInfo)) {
|
||||
// 查询机构拨打时间设置
|
||||
LocalTime localStartTime = LocalTime.now();
|
||||
LocalTime localEndTime = LocalTime.now();
|
||||
LocalTime localStartTime = LocalTime.parse("08:00");
|
||||
LocalTime localEndTime = LocalTime.parse("17:00");
|
||||
Long hospitalId = patientInfoImportMainMapper.selectHospitalAgencyId(sn);
|
||||
if (hospitalId != null) {
|
||||
DialTime dialTime = patientInfoImportMainMapper.selectDialTimeById(hospitalId);
|
||||
@ -141,7 +141,7 @@ public class YZAIOBSTask {
|
||||
List<SysDictData> sysDictDataList = iSysDictTypeService.selectDictDataByType(Constants.DIAL_TIME);
|
||||
if (CollectionUtils.isEmpty(sysDictDataList) || sysDictDataList.size() != 2) {
|
||||
dateStartTime = LocalTime.parse("08:00");
|
||||
dateEndTime = LocalTime.parse("19:00");
|
||||
dateEndTime = LocalTime.parse("17:00");
|
||||
} else {
|
||||
dateStartTime = LocalTime.parse(sysDictDataList.get(0).getDictValue());
|
||||
dateEndTime = LocalTime.parse(sysDictDataList.get(1).getDictValue());
|
||||
@ -303,7 +303,8 @@ public class YZAIOBSTask {
|
||||
createDutyDto.setDutyName(dutyName);
|
||||
createDutyDto.setDutyType(scriptInfo.getRobotPublishId());
|
||||
createDutyDto.setDutySceneId(Integer.parseInt(scriptInfo.getRobotPublishId()));
|
||||
createDutyDto.setOutboundPeriods("[\"09:00~11:30\",\"14:00~17:30\"]");
|
||||
//createDutyDto.setOutboundPeriods("[\"09:00~11:30\",\"14:00~18:30\"]");
|
||||
createDutyDto.setOutboundPeriods("[\"08:00~18:30\"]");
|
||||
createDutyDto.setStartDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
||||
createDutyDto.setEndDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
||||
JSONObject repStrategy = new JSONObject();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user