外呼记录查询条件修改

This commit is contained in:
zhangheng 2024-12-18 17:46:35 +08:00
parent e68836950c
commit 4c9a214935
5 changed files with 113 additions and 19 deletions

View File

@ -19,6 +19,11 @@ public enum QuestionTypeEnum {
* 满意度问卷 * 满意度问卷
*/ */
SATISFACTION_QUESTIONNAIRE("SATISFACTION_QUESTIONNAIRE"), SATISFACTION_QUESTIONNAIRE("SATISFACTION_QUESTIONNAIRE"),
/**
* 反馈填空题
*/
FEEDBACK_BLANKS_SUBJECT("FEEDBACK_BLANKS_SUBJECT"),
; ;
final private String info; final private String info;

View File

@ -64,4 +64,29 @@ public class UploadRobotPublishRecordDto {
* 任务节点类型,PHONE_OUTBOUND电话外呼;QUESTIONNAIRE_SCALE问卷量表 * 任务节点类型,PHONE_OUTBOUND电话外呼;QUESTIONNAIRE_SCALE问卷量表
*/ */
private String taskNodeType; private String taskNodeType;
/**
* 节点任务执行状态已执行EXECUTED未执行UNEXECUTED
*/
private String nodeExecuteStatus;
/**
* 任务执行类型批量还是单个执行
*/
private String taskExcuteType;
/**
* 导入流水号
*/
private String sn;
/**
* 整个问卷中是否包含不满意项;DISCONTENTED:不满意;CONTENTED:满意;默认CONTENTED;
*/
private String contentedFlag;
/**
* 题目类型
*/
private String questionType;
} }

View File

@ -13,12 +13,7 @@ import com.xinelu.common.constant.TemplateTypeConstants;
import com.xinelu.common.constant.TriggerConditionOperatorConstants; import com.xinelu.common.constant.TriggerConditionOperatorConstants;
import com.xinelu.common.constant.TriggerLogicConstants; import com.xinelu.common.constant.TriggerLogicConstants;
import com.xinelu.common.constant.VisitMethodConstants; import com.xinelu.common.constant.VisitMethodConstants;
import com.xinelu.common.enums.MessageStatusEnum; import com.xinelu.common.enums.*;
import com.xinelu.common.enums.NodeExecuteResultStatusEnum;
import com.xinelu.common.enums.NodeExecuteStatusEnum;
import com.xinelu.common.enums.PhoneDialMethodEnum;
import com.xinelu.common.enums.RouteCheckStatusEnum;
import com.xinelu.common.enums.RouteNodeNameEnum;
import com.xinelu.common.exception.ServiceException; import com.xinelu.common.exception.ServiceException;
import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.utils.StringUtils; import com.xinelu.common.utils.StringUtils;
@ -1410,6 +1405,9 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage
*/ */
@Override @Override
public List<UploadRobotPublishRecordVo> uploadRobotPublishRecord(UploadRobotPublishRecordDto uploadRobotPublishRecordDto) { public List<UploadRobotPublishRecordVo> uploadRobotPublishRecord(UploadRobotPublishRecordDto uploadRobotPublishRecordDto) {
if (Objects.nonNull(uploadRobotPublishRecordDto)){
uploadRobotPublishRecordDto.setQuestionType(QuestionTypeEnum.FEEDBACK_BLANKS_SUBJECT.getInfo());
}
return signPatientManageRouteNodeMapper.selectTaskContented(uploadRobotPublishRecordDto); return signPatientManageRouteNodeMapper.selectTaskContented(uploadRobotPublishRecordDto);
} }

View File

@ -88,47 +88,64 @@ public class UploadRobotPublishRecordVo {
private String mainDiagnosis; private String mainDiagnosis;
/** /**
* 冗余:整个问卷中是否包含不满意项;DISCONTENTED:不满意;CONTENTED:满意;默认CONTENTED; * 问卷中不满意项;DISCONTENTED:不满意;CONTENTED:满意;默认CONTENTED;
* 2024/12/2
*/ */
@ApiModelProperty(value = "问卷中不满意项")
@Excel(name = "调查结果") @Excel(name = "调查结果")
private String contentedFlag; private String contentedFlag;
/**
* 调查分数
*/
@ApiModelProperty(value = "调查分数") @ApiModelProperty(value = "调查分数")
@Excel(name = "调查分数") @Excel(name = "调查分数")
private BigDecimal SurveyScore; private BigDecimal SurveyScore;
/**
* 反馈意见
*/
@ApiModelProperty(value = "反馈意见") @ApiModelProperty(value = "反馈意见")
@Excel(name = "反馈意见") @Excel(name = "反馈意见")
private String feedbackMessage; private String fillBlanksAnswer;
/**
* 随访状态
*/
@ApiModelProperty(value = "随访状态") @ApiModelProperty(value = "随访状态")
@Excel(name = "随访状态") @Excel(name = "随访状态")
private String followUpStatus; private String followUpStatus;
/**
* 随访人
*/
@ApiModelProperty(value = "随访人") @ApiModelProperty(value = "随访人")
@Excel(name = "随访人") @Excel(name = "随访人")
private String followUpPerson; private String phoneDialMethod;
/** /**
* 冗余:整个问卷中是否包含异常项;REMARKABLE:异常的;ROUTINE:正常的;默认ROUTINE * 问卷异常项;REMARKABLE:异常的;ROUTINE:正常的;默认ROUTINE
* 2024/12/2
*/ */
@ApiModelProperty(name = "异常项") @ApiModelProperty(name = "异常项")
private String remarkableFlag; private String remarkableFlag;
/** /**
* 执行时间格式HH:mm * 执行时间
*/ */
@ApiModelProperty(value = "执行时间格式yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "执行时间格式yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "随访时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "随访时间", width = 30, dateFormat = "yyyy-MM-dd")
private LocalDateTime nodePlanTime; private LocalDateTime nodePlanTime;
/**
* 抽样人
*/
@ApiModelProperty(value = "抽样人") @ApiModelProperty(value = "抽样人")
@Excel(name = "抽样人") @Excel(name = "抽样人")
private String samplingPersonnel; private String samplingPersonnel;
/**
* 抽样时间
*/
@ApiModelProperty(value = "抽样时间") @ApiModelProperty(value = "抽样时间")
@Excel(name = "抽样时间") @Excel(name = "抽样时间")
private String SampleTime; private String SampleTime;
@ -166,22 +183,51 @@ public class UploadRobotPublishRecordVo {
@ApiModelProperty(value = "任务节点类型") @ApiModelProperty(value = "任务节点类型")
private String taskNodeType; private String taskNodeType;
/**
* 路径节点id
*/
@ApiModelProperty(value = "路径节点id")
private Long manageRouteNodeId;
/** /**
* 电话拨通情况SUCCESS成功FAILURE失败EXPIRED超期自动作废如超期一周NULL或空字符串缺省值表示未执行 * 电话拨通情况SUCCESS成功FAILURE失败EXPIRED超期自动作废如超期一周NULL或空字符串缺省值表示未执行
*/ */
@ApiModelProperty(value = "电话拨通情况") @ApiModelProperty(value = "电话拨通情况")
private String phoneNodeExecuteResultStatus; private String phoneNodeExecuteResultStatus;
/**
* 拨打状态
*/
@ApiModelProperty(value = "拨打状态DIALED,已拨打NODIALED:未拨打默认NULL表示未拨打") @ApiModelProperty(value = "拨打状态DIALED,已拨打NODIALED:未拨打默认NULL表示未拨打")
private String dialStatus; private String dialStatus;
/** /**
* 问卷关联话术id * 问卷关联话术id
*/ */
@ApiModelProperty(value = "问卷关联话术id")
private Long scriptTemplateId; private Long scriptTemplateId;
/** /**
* 问卷关联话术名称 (展示 话术名称 * 问卷关联话术名称
*/ */
@ApiModelProperty(value = "问卷关联话术名称")
private String scriptTemplateName; private String scriptTemplateName;
/**
* 任务执行类型批量还是单个执行
*/
@ApiModelProperty(value = "任务执行类型(批量还是单个执行,'批量任务BATCH_TASK,单个实时拔打任务ACTUAL_TIME_TASK'")
private String taskExcuteType;
/**
* 导入流水号
*/
@ApiModelProperty(value = "导入流水号")
private String sn;
/**
* 患者问卷提交结果信息表id
*/
@ApiModelProperty(value = "患者问卷提交结果信息表id")
private Long taskExecuteRecordId;
} }

View File

@ -1087,6 +1087,7 @@
<select id="selectTaskContented" <select id="selectTaskContented"
resultType="com.xinelu.manage.vo.signpatientmanageroutenode.UploadRobotPublishRecordVo"> resultType="com.xinelu.manage.vo.signpatientmanageroutenode.UploadRobotPublishRecordVo">
SELECT SELECT
spmrn.id manageRouteNodeId,
spmrn.manage_route_name, spmrn.manage_route_name,
spmrn.task_node_type, spmrn.task_node_type,
spmrn.dial_status, spmrn.dial_status,
@ -1094,6 +1095,9 @@
spmrn.questionnaire_name, spmrn.questionnaire_name,
spmrn.node_execute_status, spmrn.node_execute_status,
spmrn.node_plan_time, spmrn.node_plan_time,
spmrn.task_excute_type,
spmrn.sn,
spmrn.phone_node_execute_result_status,
CASE CASE
WHEN spmrn.node_execute_status = 'EXECUTED' THEN '已随访' WHEN spmrn.node_execute_status = 'EXECUTED' THEN '已随访'
WHEN spmrn.node_execute_status = 'UNEXECUTED' THEN '未随访' WHEN spmrn.node_execute_status = 'UNEXECUTED' THEN '未随访'
@ -1101,14 +1105,16 @@
CASE CASE
WHEN spmrn.phone_dial_method = 'AI' THEN 'AI' WHEN spmrn.phone_dial_method = 'AI' THEN 'AI'
WHEN spmrn.phone_dial_method = 'COMMON' THEN spmrn.route_handle_person WHEN spmrn.phone_dial_method = 'COMMON' THEN spmrn.route_handle_person
END AS followUpPerson, END AS phoneDialMethod,
spmrn.create_by AS samplingPersonnel, spmrn.create_by AS samplingPersonnel,
spmrn.create_time AS SampleTime, spmrn.create_time AS SampleTime,
CASE CASE
WHEN pqsr.contented_flag = 'DISCONTENTED' THEN '不满意' WHEN pqsr.contented_flag = 'DISCONTENTED' THEN '不满意'
WHEN pqsr.contented_flag = 'CONTENTED' THEN '满意' WHEN pqsr.contented_flag = 'CONTENTED' THEN '满意'
END AS contentedFlag, END AS contentedFlag,
pqsr.task_execute_record_id,
pqsr.remarkable_flag, pqsr.remarkable_flag,
pqsr.id,
pi.patient_phone, pi.patient_phone,
pi.patient_name, pi.patient_name,
pi.id AS patientId, pi.id AS patientId,
@ -1127,7 +1133,9 @@
CASE CASE
WHEN spmrn.task_node_type = 'PHONE_OUTBOUND' THEN si.script_name WHEN spmrn.task_node_type = 'PHONE_OUTBOUND' THEN si.script_name
WHEN spmrn.task_node_type = 'QUESTIONNAIRE_SCALE' THEN qi.script_name WHEN spmrn.task_node_type = 'QUESTIONNAIRE_SCALE' THEN qi.script_name
END AS scriptTemplateName END AS scriptTemplateName,
(select fill_blanks_answer from patient_question_subject_result
where question_submit_result_id = pqsr.id and question_type = #{questionType}) fillBlanksAnswer
FROM sign_patient_manage_route_node spmrn FROM sign_patient_manage_route_node spmrn
LEFT JOIN sign_patient_manage_route spmr ON spmr.id = spmrn.manage_route_id LEFT JOIN sign_patient_manage_route spmr ON spmr.id = spmrn.manage_route_id
LEFT JOIN patient_question_submit_result pqsr ON pqsr.manage_route_node_id = spmrn.id LEFT JOIN patient_question_submit_result pqsr ON pqsr.manage_route_node_id = spmrn.id
@ -1164,6 +1172,18 @@
<if test="endTime != null"><!-- 结束时间检索 --> <if test="endTime != null"><!-- 结束时间检索 -->
AND date_format(spmrn.node_plan_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d') AND date_format(spmrn.node_plan_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
</if> </if>
<if test="nodeExecuteStatus != null and nodeExecuteStatus != ''">
and spmrn.node_execute_status = #{nodeExecuteStatus}
</if>
<if test="taskExcuteType != null and taskExcuteType != ''">
and spmrn.task_excute_type = #{taskExcuteType}
</if>
<if test="sn != null and sn != ''">
and spmrn.sn = #{sn}
</if>
<if test="contentedFlag != null and contentedFlag != ''">
and spmrn.contented_flag = #{contentedFlag}
</if>
ORDER BY spmrn.create_time DESC ORDER BY spmrn.create_time DESC
</select> </select>
</mapper> </mapper>