批量任务
This commit is contained in:
parent
4562d9f2fc
commit
78bf6fba43
@ -13,18 +13,29 @@ public enum BillSourceEnum {
|
||||
/**
|
||||
* 电话
|
||||
*/
|
||||
TELEPHONE("telephone"),
|
||||
TELEPHONE("telephone","电话"),
|
||||
|
||||
|
||||
/**
|
||||
* 短信
|
||||
*/
|
||||
MESSAGE("message"),
|
||||
MESSAGE("message","短信"),
|
||||
;
|
||||
|
||||
final private String info;
|
||||
private final String code;
|
||||
|
||||
BillSourceEnum(String info) {
|
||||
|
||||
BillSourceEnum(String info, String code) {
|
||||
this.info = info;
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getInfo() {
|
||||
return info;
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,20 +13,30 @@ public enum NodeExecuteStatusEnum {
|
||||
/**
|
||||
* 已执行
|
||||
*/
|
||||
EXECUTED("EXECUTED"),
|
||||
EXECUTED("EXECUTED", "已执行"),
|
||||
/**
|
||||
* 未执行
|
||||
*/
|
||||
UNEXECUTED("UNEXECUTED"),
|
||||
UNEXECUTED("UNEXECUTED", "未执行"),
|
||||
|
||||
/**
|
||||
* 执行中
|
||||
*/
|
||||
EXECUTING("EXECUTING"),
|
||||
EXECUTING("EXECUTING", "执行中"),
|
||||
;
|
||||
final private String info;
|
||||
private final String code;
|
||||
|
||||
NodeExecuteStatusEnum(String info) {
|
||||
NodeExecuteStatusEnum(String info, String code) {
|
||||
this.info = info;
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getInfo() {
|
||||
return info;
|
||||
}
|
||||
}
|
||||
|
||||
@ -310,6 +310,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
||||
batchSendTaskRecordInfo.setBatchTaskSource(batchSendTaskRecordDto.getBatchTaskSource());
|
||||
batchSendTaskRecordInfo.setCreateTime(LocalDateTime.now());
|
||||
batchSendTaskRecordInfo.setPhysicalExaminationLabel(batchSendTaskRecordDto.getPhysicalExaminationLabel());
|
||||
batchSendTaskRecordInfo.setDelFlag(0);
|
||||
int insertBatchSendTaskRecord = batchSendTaskRecordInfoMapper.insertBatchSendTaskRecordInfo(batchSendTaskRecordInfo);
|
||||
if (insertBatchSendTaskRecord <= 0) {
|
||||
log.info("新增批量推送任务记录失败");
|
||||
@ -355,8 +356,8 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
||||
signPatientManageRouteNode.setDialStatus(DialStatusEnum.NODIALED.getInfo());
|
||||
signPatientManageRouteNode.setTaskExcuteType(TaskExcuteTypeEnum.BATCH_TASK.getInfo());
|
||||
signPatientManageRouteNode.setNodePlanTime(batchSendTaskRecordDto.getNodePlanTime());
|
||||
signPatientManageRouteNode.setTaskNodeType(TaskNodeTypeEnum.PHONE_OUTBOUND.getInfo());
|
||||
if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.TELEPHONE.getInfo())) {
|
||||
signPatientManageRouteNode.setTaskNodeType(TaskNodeTypeEnum.PHONE_OUTBOUND.getInfo());
|
||||
signPatientManageRouteNode.setPhonePushSign(1);
|
||||
signPatientManageRouteNode.setScriptInfoId(Objects.isNull(batchSendTaskRecordDto.getScriptInfoId()) ? null : batchSendTaskRecordDto.getScriptInfoId());
|
||||
signPatientManageRouteNode.setRobotPublishId(batchSendTaskRecordDto.getRobotPublishId());
|
||||
@ -371,6 +372,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
||||
signPatientManageRouteNode.setPhoneDialMethod(PhoneDialMethodEnum.AI.getInfo());
|
||||
}
|
||||
if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.MESSAGE.getInfo())) {
|
||||
signPatientManageRouteNode.setTaskNodeType(TaskNodeTypeEnum.TEXT_REMIND.getInfo());
|
||||
signPatientManageRouteNode.setMessagePushSign(1);
|
||||
signPatientManageRouteNode.setMessageTemplateId(Objects.isNull(batchSendTaskRecordDto.getMessageTemplateId()) ? null : batchSendTaskRecordDto.getMessageTemplateId());
|
||||
signPatientManageRouteNode.setMessageTemplateCode(Objects.isNull(batchSendTaskRecordDto.getMessageTemplateCode()) ? null : batchSendTaskRecordDto.getMessageTemplateCode());
|
||||
|
||||
@ -2,6 +2,7 @@ package com.xinelu.manage.service.batchsendtaskrecordinfo.impl;
|
||||
|
||||
import com.xinelu.common.annotation.DataScope;
|
||||
import com.xinelu.common.enums.BillSourceEnum;
|
||||
import com.xinelu.common.enums.NodeExecuteStatusEnum;
|
||||
import com.xinelu.manage.domain.batchsendtaskrecordinfo.BatchSendTaskRecordInfo;
|
||||
import com.xinelu.manage.domain.scriptInfo.ScriptInfo;
|
||||
import com.xinelu.manage.mapper.batchsendtaskrecordinfo.BatchSendTaskRecordInfoMapper;
|
||||
@ -10,6 +11,7 @@ import com.xinelu.manage.mapper.textmessage.TextMessageMapper;
|
||||
import com.xinelu.manage.service.batchsendtaskrecordinfo.IBatchSendTaskRecordInfoService;
|
||||
import com.xinelu.manage.vo.batchsendtaskrecordinfo.BatchSendTaskRecordVo;
|
||||
import com.xinelu.manage.vo.textmessage.TextMessageVO;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -52,7 +54,28 @@ public class BatchSendTaskRecordInfoServiceImpl implements IBatchSendTaskRecordI
|
||||
*/
|
||||
@Override
|
||||
public List<BatchSendTaskRecordInfo> selectBatchSendTaskRecordInfoList(BatchSendTaskRecordInfo batchSendTaskRecordInfo) {
|
||||
return batchSendTaskRecordInfoMapper.selectBatchSendTaskRecordInfoList(batchSendTaskRecordInfo);
|
||||
List<BatchSendTaskRecordInfo> batchSendTaskRecordInfos = batchSendTaskRecordInfoMapper.selectBatchSendTaskRecordInfoList(batchSendTaskRecordInfo);
|
||||
if (CollectionUtils.isEmpty(batchSendTaskRecordInfos)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
for (BatchSendTaskRecordInfo sendTaskRecordInfo : batchSendTaskRecordInfos) {
|
||||
if (StringUtils.isNotBlank(sendTaskRecordInfo.getNodeExecuteStatus()) && sendTaskRecordInfo.getNodeExecuteStatus().equals(NodeExecuteStatusEnum.EXECUTED.getInfo())) {
|
||||
sendTaskRecordInfo.setNodeExecuteStatus(NodeExecuteStatusEnum.EXECUTED.getCode());
|
||||
}
|
||||
if (StringUtils.isNotBlank(sendTaskRecordInfo.getNodeExecuteStatus()) && sendTaskRecordInfo.getNodeExecuteStatus().equals(NodeExecuteStatusEnum.UNEXECUTED.getInfo())) {
|
||||
sendTaskRecordInfo.setNodeExecuteStatus(NodeExecuteStatusEnum.UNEXECUTED.getCode());
|
||||
}
|
||||
if (StringUtils.isNotBlank(sendTaskRecordInfo.getNodeExecuteStatus()) && sendTaskRecordInfo.getNodeExecuteStatus().equals(NodeExecuteStatusEnum.EXECUTING.getInfo())) {
|
||||
sendTaskRecordInfo.setNodeExecuteStatus(NodeExecuteStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
if (StringUtils.isNotBlank(sendTaskRecordInfo.getBatchTaskSource()) && sendTaskRecordInfo.getBatchTaskSource().equals(BillSourceEnum.TELEPHONE.getInfo())) {
|
||||
sendTaskRecordInfo.setBatchTaskSource(BillSourceEnum.TELEPHONE.getCode());
|
||||
}
|
||||
if (StringUtils.isNotBlank(sendTaskRecordInfo.getBatchTaskSource()) && sendTaskRecordInfo.getBatchTaskSource().equals(BillSourceEnum.MESSAGE.getInfo())) {
|
||||
sendTaskRecordInfo.setBatchTaskSource(BillSourceEnum.MESSAGE.getCode());
|
||||
}
|
||||
}
|
||||
return batchSendTaskRecordInfos;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -13,11 +13,13 @@ import com.xinelu.common.constant.TemplateTypeConstants;
|
||||
import com.xinelu.common.constant.TriggerConditionOperatorConstants;
|
||||
import com.xinelu.common.constant.TriggerLogicConstants;
|
||||
import com.xinelu.common.constant.VisitMethodConstants;
|
||||
import com.xinelu.common.core.domain.entity.SysUser;
|
||||
import com.xinelu.common.enums.*;
|
||||
import com.xinelu.common.exception.ServiceException;
|
||||
import com.xinelu.common.utils.SecurityUtils;
|
||||
import com.xinelu.common.utils.StringUtils;
|
||||
import com.xinelu.common.utils.bean.BeanUtils;
|
||||
import com.xinelu.manage.domain.agency.Agency;
|
||||
import com.xinelu.manage.domain.patientinfo.PatientAllInfoViewUppercase;
|
||||
import com.xinelu.manage.domain.patientinfo.PatientInfo;
|
||||
import com.xinelu.manage.domain.patientnodeparamscurrent.PatientNodeParamsCurrent;
|
||||
@ -39,6 +41,7 @@ import com.xinelu.manage.domain.textmessage.TextMessage;
|
||||
import com.xinelu.manage.domain.wechattemplate.WechatTemplate;
|
||||
import com.xinelu.manage.dto.patientinfo.PatientInfoDto;
|
||||
import com.xinelu.manage.dto.signpatientmanageroutenode.*;
|
||||
import com.xinelu.manage.mapper.agency.AgencyMapper;
|
||||
import com.xinelu.manage.mapper.labelfieldcontent.LabelFieldContentMapper;
|
||||
import com.xinelu.manage.mapper.patientinfo.PatientAllInfoViewMapper;
|
||||
import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper;
|
||||
@ -87,6 +90,8 @@ import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.xinelu.system.mapper.SysUserMapper;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.jsoup.Jsoup;
|
||||
@ -148,6 +153,10 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage
|
||||
private PhoneDialRecordMapper phoneDialRecordMapper;
|
||||
@Resource
|
||||
private IAIOBService aiobService;
|
||||
@Resource
|
||||
private SysUserMapper sysUserMapper;
|
||||
@Resource
|
||||
private AgencyMapper agencyMapper;
|
||||
|
||||
/**
|
||||
* 查询签约患者管理任务路径节点
|
||||
@ -1409,6 +1418,14 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage
|
||||
if (Objects.nonNull(uploadRobotPublishRecordDto)){
|
||||
uploadRobotPublishRecordDto.setQuestionType(QuestionTypeEnum.FEEDBACK_BLANKS_SUBJECT.getInfo());
|
||||
}
|
||||
//登录用户科室信息
|
||||
SysUser sysUser = sysUserMapper.selectUserById(SecurityUtils.getUserId());
|
||||
if (Objects.nonNull(sysUser) && Objects.nonNull(sysUser.getHospitalAgencyId())){
|
||||
Agency agency = agencyMapper.selectAgencyById(sysUser.getHospitalAgencyId());
|
||||
if (Objects.nonNull(agency) && Objects.nonNull(agency.getId())){
|
||||
uploadRobotPublishRecordDto.setHospitalAgencyId(agency.getId());
|
||||
}
|
||||
}
|
||||
List<UploadRobotPublishRecordVo> uploadRobotPublishRecordVos = signPatientManageRouteNodeMapper.selectTaskContented(uploadRobotPublishRecordDto);
|
||||
//总分为0设为null
|
||||
if(CollectionUtils.isNotEmpty(uploadRobotPublishRecordVos)){
|
||||
|
||||
@ -1161,10 +1161,6 @@
|
||||
spmrn.sn,
|
||||
spmrn.phone_node_execute_result_status,
|
||||
CASE
|
||||
WHEN spmrn.node_execute_status = 'EXECUTED' THEN '已随访'
|
||||
WHEN spmrn.node_execute_status = 'UNEXECUTED' THEN '未随访'
|
||||
END AS followUpStatus,
|
||||
CASE
|
||||
WHEN spmrn.phone_dial_method = 'AI' THEN 'AI'
|
||||
WHEN spmrn.phone_dial_method = 'COMMON' THEN spmrn.route_handle_person
|
||||
END AS phoneDialMethod,
|
||||
@ -1178,23 +1174,46 @@
|
||||
pqsr.remarkable_flag,
|
||||
pqsr.id,
|
||||
pqsr.total_score,
|
||||
pi.patient_phone,
|
||||
pi.patient_name,
|
||||
CASE
|
||||
WHEN spmr.patient_id is null THEN bsti.patient_name
|
||||
WHEN spmr.patient_id is not null THEN pi.patient_name
|
||||
END AS patientName,
|
||||
CASE
|
||||
WHEN spmr.patient_id is null THEN bsti.patient_phone
|
||||
WHEN spmr.patient_id is not null THEN pi.patient_phone
|
||||
END AS patientPhone,
|
||||
CASE
|
||||
WHEN spmr.patient_id is null THEN bsti.hospital_agency_id
|
||||
WHEN spmr.patient_id is not null THEN pi.hospital_agency_id
|
||||
END AS hospitalAgencyId,
|
||||
CASE
|
||||
WHEN spmr.patient_id is null THEN bsti.hospital_agency_name
|
||||
WHEN spmr.patient_id is not null THEN pi.hospital_agency_name
|
||||
END AS hospitalAgencyName,
|
||||
CASE
|
||||
WHEN spmr.patient_id is null THEN bsti.department_name
|
||||
WHEN spmr.patient_id is not null THEN pi.department_name
|
||||
END AS departmentName,
|
||||
CASE
|
||||
WHEN spmr.patient_id is null THEN bsti.department_id
|
||||
WHEN spmr.patient_id is not null THEN pi.department_id
|
||||
END AS departmentId,
|
||||
CASE
|
||||
WHEN spmr.patient_id is null THEN bsti.visit_date
|
||||
WHEN spmr.patient_id is not null THEN pi.visit_date
|
||||
END AS visitDate,
|
||||
CASE
|
||||
WHEN spmr.patient_id is null THEN bsti.age
|
||||
WHEN spmr.patient_id is not null THEN pi.age
|
||||
END AS age,
|
||||
pi.id AS patientId,
|
||||
pi.department_name,
|
||||
pi.department_id,
|
||||
pi.hospital_agency_id,
|
||||
pi.hospital_agency_name,
|
||||
pi.visit_date,
|
||||
pi.age,
|
||||
pi.patient_visit_record_id,
|
||||
pvr.main_diagnosis,
|
||||
CASE
|
||||
WHEN spmrn.task_node_type = 'PHONE_OUTBOUND' THEN spmrn.script_info_id
|
||||
WHEN spmrn.task_node_type = 'QUESTIONNAIRE_SCALE' THEN qi.script_info_id
|
||||
END AS scriptTemplateId,
|
||||
CASE
|
||||
WHEN spmrn.task_node_type = 'PHONE_OUTBOUND' THEN si.script_name
|
||||
WHEN spmrn.task_node_type = 'PHONE_OUTBOUND' THEN spmrn.phone_template_name
|
||||
WHEN spmrn.task_node_type = 'QUESTIONNAIRE_SCALE' THEN qi.script_name
|
||||
END AS scriptTemplateName,
|
||||
(select fill_blanks_answer from patient_question_subject_result
|
||||
@ -1203,16 +1222,17 @@
|
||||
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_info pi ON spmr.patient_id = pi.id
|
||||
LEFT JOIN patient_visit_record pvr ON pi.id = pvr.patient_id
|
||||
-- LEFT JOIN patient_visit_record pvr ON pi.id = pvr.patient_id
|
||||
LEFT JOIN question_info qi on spmrn.question_info_id = qi.id
|
||||
LEFT JOIN script_info si on si.id = spmrn.script_info_id
|
||||
-- LEFT JOIN script_info si on si.id = spmrn.script_info_id
|
||||
LEFT JOIN batch_send_task_info bsti on spmr.batch_send_task_id = bsti.id
|
||||
WHERE
|
||||
spmrn.del_flag = 0
|
||||
spmrn.del_flag = 0 and spmrn.task_node_type in ('PHONE_OUTBOUND', 'QUESTIONNAIRE_SCALE')
|
||||
<if test="departmentId != null">
|
||||
and pi.department_id = #{departmentId}
|
||||
</if>
|
||||
<if test="hospitalAgencyId != null">
|
||||
and pi.hospital_agency_id = #{hospitalAgencyId}
|
||||
and (pi.hospital_agency_id = #{hospitalAgencyId} or bsti.hospital_agency_id = #{hospitalAgencyId})
|
||||
</if>
|
||||
<if test="patientId != null">
|
||||
and pi.id = #{patientId}
|
||||
@ -1223,9 +1243,6 @@
|
||||
<if test="patientPhone != null">
|
||||
and pi.patient_phone = #{patientPhone}
|
||||
</if>
|
||||
<if test="taskNodeType != null and taskNodeType != ''">
|
||||
and spmrn.task_node_type = #{taskNodeType}
|
||||
</if>
|
||||
<if test="questionInfoId != null">
|
||||
AND spmrn.question_info_id = #{questionInfoId}
|
||||
</if>
|
||||
@ -1250,7 +1267,6 @@
|
||||
<if test="contentedFlag != null and contentedFlag != ''">
|
||||
and pqsr.contented_flag = #{contentedFlag}
|
||||
</if>
|
||||
${params.dataScope}
|
||||
ORDER BY spmrn.create_time DESC
|
||||
</select>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user