为了兼容诊后导入患者,未签约情况,话务外呼代码重构
This commit is contained in:
parent
254839b2fd
commit
368978460b
@ -39,6 +39,11 @@ public class ScriptInfoTaskInfo {
|
||||
*/
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* 管理路径Id
|
||||
*/
|
||||
private Long signPatientManageRouteId;
|
||||
|
||||
/**
|
||||
* 任务Id
|
||||
*/
|
||||
|
||||
@ -422,4 +422,7 @@ public class SignPatientManageRouteNode extends BaseEntity {
|
||||
@ApiModelProperty(value = "第三方返回的任务ID")
|
||||
private String taskIdExt;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "拨打状态:DIALED,已拨打:NODIALED:未拨打;默认NULL表示未拨打")
|
||||
private String dialStatus;
|
||||
}
|
||||
|
||||
@ -85,7 +85,7 @@ public class SignPatientManageRouteNodeDto {
|
||||
* 拨打状态:DIALED,已拨打:NODIALED:未拨打;默认NULL表示未拨打
|
||||
*/
|
||||
@ApiModelProperty(value = "拨打状态:DIALED,已拨打:NODIALED:未拨打;默认NULL表示未拨打")
|
||||
private String dialStaus;
|
||||
private String dialStatus;
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package com.xinelu.manage.mapper.scriptinfotaskinfo;
|
||||
|
||||
import com.xinelu.manage.domain.scriptinfotaskinfo.ScriptInfoTaskInfo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -11,7 +13,9 @@ import java.util.List;
|
||||
*/
|
||||
public interface ScriptInfoTaskInfoMapper {
|
||||
|
||||
String getByNodeId(String signPatientManageRouteNodeId, String aiobTaskType);
|
||||
// String getByNodeId(@Param("signPatientManageRouteNodeId") long signPatientManageRouteNodeId, @Param("aiobTaskType") String aiobTaskType);
|
||||
String getByNodeId(ScriptInfoTaskInfo scriptInfoTaskInfo);
|
||||
|
||||
|
||||
List<ScriptInfoTaskInfo> selectList(ScriptInfoTaskInfo scriptInfoTaskInfo);
|
||||
|
||||
|
||||
@ -88,6 +88,20 @@ public interface SignPatientManageRouteNodeMapper {
|
||||
*/
|
||||
int deleteRouteNodeByManageRouteId(Long manageRouteId);
|
||||
|
||||
/**
|
||||
* 根据ManageRouteId 修改 拔打状态
|
||||
* @param signPatientManageRouteNode
|
||||
* @return
|
||||
*/
|
||||
int updateDialStatusByManageRouteId(SignPatientManageRouteNode signPatientManageRouteNode);
|
||||
|
||||
/**
|
||||
* 修改 拔打状态
|
||||
* @param signPatientManageRouteNode
|
||||
* @return
|
||||
*/
|
||||
int updateDialStatusByNodeId(SignPatientManageRouteNode signPatientManageRouteNode);
|
||||
|
||||
/**
|
||||
* 查询患者任务列表
|
||||
*
|
||||
|
||||
@ -14,9 +14,12 @@ import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRout
|
||||
import com.xinelu.manage.mapper.signpatientrecord.SignPatientRecordMapper;
|
||||
import com.xinelu.manage.service.patienttaskstatistics.IPatientTaskStatisticsService;
|
||||
import com.xinelu.manage.vo.patientinfo.PatientNextTaskVo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -31,21 +34,21 @@ import org.springframework.stereotype.Service;
|
||||
public class PatientTaskStatisticsServiceImpl implements IPatientTaskStatisticsService {
|
||||
@Resource
|
||||
private PatientTaskStatisticsMapper patientTaskStatisticsMapper;
|
||||
@Resource
|
||||
private SignPatientRecordMapper signPatientRecordMapper;
|
||||
@Resource
|
||||
private SignPatientManageRouteNodeMapper signPatientManageRouteNodeMapper;
|
||||
@Resource
|
||||
private SignPatientManageRouteMapper signPatientManageRouteMapper;
|
||||
@Resource
|
||||
private PatientInfoMapper patientInfoMapper;
|
||||
@Resource
|
||||
private SignPatientRecordMapper signPatientRecordMapper;
|
||||
@Resource
|
||||
private SignPatientManageRouteNodeMapper signPatientManageRouteNodeMapper;
|
||||
@Resource
|
||||
private SignPatientManageRouteMapper signPatientManageRouteMapper;
|
||||
@Resource
|
||||
private PatientInfoMapper patientInfoMapper;
|
||||
|
||||
/**
|
||||
* 查询患者任务统计
|
||||
*
|
||||
* @param patientId 患者任务统计主键
|
||||
* @return 患者任务统计
|
||||
*/
|
||||
/**
|
||||
* 查询患者任务统计
|
||||
*
|
||||
* @param patientId 患者任务统计主键
|
||||
* @return 患者任务统计
|
||||
*/
|
||||
@Override
|
||||
public PatientTaskStatistics selectPatientTaskStatisticsByPatientId(Long patientId) {
|
||||
return patientTaskStatisticsMapper.selectPatientTaskStatisticsByPatientId(patientId);
|
||||
@ -70,7 +73,7 @@ public class PatientTaskStatisticsServiceImpl implements IPatientTaskStatisticsS
|
||||
*/
|
||||
@Override
|
||||
public int insertPatientTaskStatistics(PatientTaskStatistics patientTaskStatistics) {
|
||||
return patientTaskStatisticsMapper.insertPatientTaskStatistics(patientTaskStatistics);
|
||||
return patientTaskStatisticsMapper.insertPatientTaskStatistics(patientTaskStatistics);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,118 +109,131 @@ public class PatientTaskStatisticsServiceImpl implements IPatientTaskStatisticsS
|
||||
return patientTaskStatisticsMapper.deletePatientTaskStatisticsByPatientId(signPatientRecordId);
|
||||
}
|
||||
|
||||
@Override public int insertOrUpdate(PatientTaskStatistics patientTaskStatistics) {
|
||||
int flag = 0;
|
||||
SignPatientRecord signPatientRecord = signPatientRecordMapper.selectByPrimaryKey(patientTaskStatistics.getSignPatientRecordId());
|
||||
if (ObjectUtils.isNotEmpty(signPatientRecord)) {
|
||||
PatientTaskStatistics patientTask = patientTaskStatisticsMapper.selectPatientTaskStatisticsByPatientId(patientTaskStatistics.getPatientId());
|
||||
if (ObjectUtils.isEmpty(patientTask)) {
|
||||
// 插入数据
|
||||
flag = patientTaskStatisticsMapper.insertPatientTaskStatistics(patientTaskStatistics);
|
||||
// 查询最新的任务
|
||||
PatientNextTaskVo patientNextTaskVo = patientTaskStatisticsMapper.getPatientNextTask(signPatientRecord.getPatientId());
|
||||
if (ObjectUtils.isNotEmpty(patientNextTaskVo)) {
|
||||
patientTaskStatistics.setNextTaskName(patientNextTaskVo.getTaskName());
|
||||
patientTaskStatistics.setNextTaskTime(patientNextTaskVo.getExecuteDateTime());
|
||||
patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTaskStatistics);
|
||||
}
|
||||
} else {
|
||||
// 修改数据
|
||||
patientTask.setServiceStatus(signPatientRecord.getServiceStatus());
|
||||
patientTask.setRouteCheckStatus(signPatientRecord.getRouteCheckStatus());
|
||||
patientTask.setTaskNum(patientTask.getTaskNum().add(patientTaskStatistics.getTaskNum()));
|
||||
patientTask.setTaskExecuteNum(patientTask.getTaskExecuteNum().add(patientTaskStatistics.getTaskExecuteNum()));
|
||||
patientTask.setTaskFinishNum(patientTask.getTaskFinishNum().add(patientTaskStatistics.getTaskFinishNum()));
|
||||
// 查询最新的任务
|
||||
PatientNextTaskVo patientNextTaskVo = patientTaskStatisticsMapper.getPatientNextTask(signPatientRecord.getPatientId());
|
||||
if (ObjectUtils.isNotEmpty(patientNextTaskVo)) {
|
||||
patientTask.setNextTaskName(patientNextTaskVo.getTaskName());
|
||||
patientTask.setNextTaskTime(patientNextTaskVo.getExecuteDateTime());
|
||||
}
|
||||
flag = patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTask);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public int insertOrUpdate(PatientTaskStatistics patientTaskStatistics) {
|
||||
int flag = 0;
|
||||
String serviceStatus = "";
|
||||
String routeCheckStatus = "";
|
||||
|
||||
return flag;
|
||||
}
|
||||
//如果有签约id,则获取相关状态;否则,统计表不再记录 签约相关属性 20241212 zyk
|
||||
if (Objects.nonNull(patientTaskStatistics.getSignPatientRecordId())) {
|
||||
SignPatientRecord signPatientRecord = signPatientRecordMapper.selectByPrimaryKey(patientTaskStatistics.getSignPatientRecordId());
|
||||
if (ObjectUtils.isNotEmpty(signPatientRecord)) {
|
||||
serviceStatus = signPatientRecord.getServiceStatus();
|
||||
routeCheckStatus = signPatientRecord.getRouteCheckStatus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 修改任务总数、执行数、完成数
|
||||
* @param patientId 签约记录主键
|
||||
* @param type 字段种类,TASK_NUM:任务总数,TASK_EXECUTE_NUM: 任务执行数,TASK_FINISH_NUM:任务完成数
|
||||
* @param count 数量
|
||||
* @return 结果
|
||||
* @Author haown
|
||||
* @Date 2024-08-09 17:43
|
||||
*/
|
||||
@Override
|
||||
public int updateNum(Long patientId, String type, Integer count) {
|
||||
PatientTaskStatistics patientTaskStatistics = patientTaskStatisticsMapper.selectPatientTaskStatisticsByPatientId(patientId);
|
||||
PatientInfo patientInfo = patientInfoMapper.selectPatientInfoById(patientId);
|
||||
if (ObjectUtils.isNotEmpty(patientInfo) && StringUtils.equals(SignRecordServiceStatusConstants.SERVICE_CENTER, patientInfo.getServiceStatus())) {
|
||||
PatientTaskStatistics patientTaskStatisticsView = patientTaskStatisticsMapper.selectNum(patientId);
|
||||
switch (type) {
|
||||
case TaskStatisticsTypeConstants.TASK_NUM:
|
||||
patientTaskStatistics.setTaskNum(patientTaskStatistics.getTaskNum().add(BigDecimal.valueOf(count)));
|
||||
break;
|
||||
case TaskStatisticsTypeConstants.TASK_EXECUTE_NUM:
|
||||
if (ObjectUtils.isEmpty(patientTaskStatisticsView)) {
|
||||
patientTaskStatistics.setTaskExecuteNum(patientTaskStatistics.getTaskExecuteNum().add(BigDecimal.valueOf(count)));
|
||||
} else {
|
||||
patientTaskStatistics.setTaskExecuteNum(patientTaskStatisticsView.getTaskExecuteNum());
|
||||
patientTaskStatistics.setTaskFinishNum(patientTaskStatisticsView.getTaskFinishNum());
|
||||
}
|
||||
// 下次任务
|
||||
PatientNextTaskVo patientNextTask = patientTaskStatisticsMapper.getPatientNextTask(patientId);
|
||||
if (ObjectUtils.isNotEmpty(patientNextTask)) {
|
||||
patientTaskStatistics.setNextTaskName(patientNextTask.getTaskName());
|
||||
patientTaskStatistics.setNextTaskTime(patientNextTask.getExecuteDateTime());
|
||||
patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTaskStatistics);
|
||||
}
|
||||
break;
|
||||
case TaskStatisticsTypeConstants.TASK_FINISH_NUM:
|
||||
if (ObjectUtils.isEmpty(patientTaskStatisticsView)) {
|
||||
patientTaskStatistics.setTaskFinishNum(patientTaskStatistics.getTaskFinishNum().add(BigDecimal.valueOf(count)));
|
||||
} else {
|
||||
patientTaskStatistics.setTaskExecuteNum(patientTaskStatisticsView.getTaskExecuteNum());
|
||||
patientTaskStatistics.setTaskFinishNum(patientTaskStatisticsView.getTaskFinishNum());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTaskStatistics);
|
||||
}
|
||||
PatientTaskStatistics patientTask = patientTaskStatisticsMapper.selectPatientTaskStatisticsByPatientId(patientTaskStatistics.getPatientId());
|
||||
if (ObjectUtils.isEmpty(patientTask)) {
|
||||
// 插入数据
|
||||
flag = patientTaskStatisticsMapper.insertPatientTaskStatistics(patientTaskStatistics);
|
||||
// 查询最新的任务
|
||||
PatientNextTaskVo patientNextTaskVo = patientTaskStatisticsMapper.getPatientNextTask(patientTaskStatistics.getPatientId());
|
||||
if (ObjectUtils.isNotEmpty(patientNextTaskVo)) {
|
||||
patientTaskStatistics.setNextTaskName(patientNextTaskVo.getTaskName());
|
||||
patientTaskStatistics.setNextTaskTime(patientNextTaskVo.getExecuteDateTime());
|
||||
patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTaskStatistics);
|
||||
}
|
||||
} else {
|
||||
// 修改数据
|
||||
patientTask.setServiceStatus(serviceStatus);
|
||||
patientTask.setRouteCheckStatus(routeCheckStatus);
|
||||
patientTask.setTaskNum(patientTask.getTaskNum().add(patientTaskStatistics.getTaskNum()));
|
||||
patientTask.setTaskExecuteNum(patientTask.getTaskExecuteNum().add(patientTaskStatistics.getTaskExecuteNum()));
|
||||
patientTask.setTaskFinishNum(patientTask.getTaskFinishNum().add(patientTaskStatistics.getTaskFinishNum()));
|
||||
// 查询最新的任务
|
||||
PatientNextTaskVo patientNextTaskVo = patientTaskStatisticsMapper.getPatientNextTask(patientTaskStatistics.getPatientId());
|
||||
if (ObjectUtils.isNotEmpty(patientNextTaskVo)) {
|
||||
patientTask.setNextTaskName(patientNextTaskVo.getTaskName());
|
||||
patientTask.setNextTaskTime(patientNextTaskVo.getExecuteDateTime());
|
||||
}
|
||||
flag = patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTask);
|
||||
}
|
||||
|
||||
@Override public int updateNumByManageRouteNodeId(Long manageRouteNodeId, String type, Integer count) {
|
||||
SignPatientManageRouteNode signPatientManageRouteNode = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeById(manageRouteNodeId);
|
||||
if (ObjectUtils.isNotEmpty(signPatientManageRouteNode)) {
|
||||
SignPatientManageRoute signPatientManageRoute = signPatientManageRouteMapper.selectSignPatientManageRouteById(signPatientManageRouteNode.getManageRouteId());
|
||||
if (ObjectUtils.isNotEmpty(signPatientManageRoute)) {
|
||||
return updateNum(signPatientManageRoute.getPatientId(), type, count);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 修改患者统计表任务数量、下次任务
|
||||
* @param patientIdList 患者主键列表
|
||||
* @Author haown
|
||||
* @Date 2024-8-14 11:37
|
||||
*/
|
||||
@Override
|
||||
public void updateNum(List<Long> patientIdList) {
|
||||
// 修改任务执行数量、任务完成数量
|
||||
patientIdList.forEach(patientId -> {
|
||||
PatientTaskStatistics patientTaskStatistics = patientTaskStatisticsMapper.selectNum(patientId);
|
||||
// 修改数据
|
||||
if (ObjectUtils.isNotEmpty(patientTaskStatistics)) {
|
||||
// 下次任务
|
||||
PatientNextTaskVo patientNextTask = patientTaskStatisticsMapper.getPatientNextTask(patientId);
|
||||
patientTaskStatistics.setNextTaskName(patientNextTask.getTaskName());
|
||||
patientTaskStatistics.setNextTaskTime(patientNextTask.getExecuteDateTime());
|
||||
patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTaskStatistics);
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @param patientId 签约记录主键
|
||||
* @param type 字段种类,TASK_NUM:任务总数,TASK_EXECUTE_NUM: 任务执行数,TASK_FINISH_NUM:任务完成数
|
||||
* @param count 数量
|
||||
* @return 结果
|
||||
* @description 修改任务总数、执行数、完成数
|
||||
* @Author haown
|
||||
* @Date 2024-08-09 17:43
|
||||
*/
|
||||
@Override
|
||||
public int updateNum(Long patientId, String type, Integer count) {
|
||||
PatientTaskStatistics patientTaskStatistics = patientTaskStatisticsMapper.selectPatientTaskStatisticsByPatientId(patientId);
|
||||
PatientInfo patientInfo = patientInfoMapper.selectPatientInfoById(patientId);
|
||||
// if (ObjectUtils.isNotEmpty(patientInfo) && StringUtils.equals(SignRecordServiceStatusConstants.SERVICE_CENTER, patientInfo.getServiceStatus()))
|
||||
// 针对 导入用户,未签约的情况,不再判断签约服务状态SignRecordServiceStatusConstants.SERVICE_CENTER
|
||||
if (ObjectUtils.isNotEmpty(patientInfo)) {
|
||||
PatientTaskStatistics patientTaskStatisticsView = patientTaskStatisticsMapper.selectNum(patientId);
|
||||
switch (type) {
|
||||
case TaskStatisticsTypeConstants.TASK_NUM:
|
||||
patientTaskStatistics.setTaskNum(patientTaskStatistics.getTaskNum().add(BigDecimal.valueOf(count)));
|
||||
break;
|
||||
case TaskStatisticsTypeConstants.TASK_EXECUTE_NUM:
|
||||
if (ObjectUtils.isEmpty(patientTaskStatisticsView)) {
|
||||
patientTaskStatistics.setTaskExecuteNum(patientTaskStatistics.getTaskExecuteNum().add(BigDecimal.valueOf(count)));
|
||||
} else {
|
||||
patientTaskStatistics.setTaskExecuteNum(patientTaskStatisticsView.getTaskExecuteNum());
|
||||
patientTaskStatistics.setTaskFinishNum(patientTaskStatisticsView.getTaskFinishNum());
|
||||
}
|
||||
// 下次任务
|
||||
PatientNextTaskVo patientNextTask = patientTaskStatisticsMapper.getPatientNextTask(patientId);
|
||||
if (ObjectUtils.isNotEmpty(patientNextTask)) {
|
||||
patientTaskStatistics.setNextTaskName(patientNextTask.getTaskName());
|
||||
patientTaskStatistics.setNextTaskTime(patientNextTask.getExecuteDateTime());
|
||||
patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTaskStatistics);
|
||||
}
|
||||
break;
|
||||
case TaskStatisticsTypeConstants.TASK_FINISH_NUM:
|
||||
if (ObjectUtils.isEmpty(patientTaskStatisticsView)) {
|
||||
patientTaskStatistics.setTaskFinishNum(patientTaskStatistics.getTaskFinishNum().add(BigDecimal.valueOf(count)));
|
||||
} else {
|
||||
patientTaskStatistics.setTaskExecuteNum(patientTaskStatisticsView.getTaskExecuteNum());
|
||||
patientTaskStatistics.setTaskFinishNum(patientTaskStatisticsView.getTaskFinishNum());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTaskStatistics);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateNumByManageRouteNodeId(Long manageRouteNodeId, String type, Integer count) {
|
||||
SignPatientManageRouteNode signPatientManageRouteNode = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeById(manageRouteNodeId);
|
||||
if (ObjectUtils.isNotEmpty(signPatientManageRouteNode)) {
|
||||
SignPatientManageRoute signPatientManageRoute = signPatientManageRouteMapper.selectSignPatientManageRouteById(signPatientManageRouteNode.getManageRouteId());
|
||||
if (ObjectUtils.isNotEmpty(signPatientManageRoute)) {
|
||||
return updateNum(signPatientManageRoute.getPatientId(), type, count);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param patientIdList 患者主键列表
|
||||
* @description 修改患者统计表任务数量、下次任务
|
||||
* @Author haown
|
||||
* @Date 2024-8-14 11:37
|
||||
*/
|
||||
@Override
|
||||
public void updateNum(List<Long> patientIdList) {
|
||||
// 修改任务执行数量、任务完成数量
|
||||
patientIdList.forEach(patientId -> {
|
||||
PatientTaskStatistics patientTaskStatistics = patientTaskStatisticsMapper.selectNum(patientId);
|
||||
// 修改数据
|
||||
if (ObjectUtils.isNotEmpty(patientTaskStatistics)) {
|
||||
// 下次任务
|
||||
PatientNextTaskVo patientNextTask = patientTaskStatisticsMapper.getPatientNextTask(patientId);
|
||||
patientTaskStatistics.setNextTaskName(patientNextTask.getTaskName());
|
||||
patientTaskStatistics.setNextTaskTime(patientNextTask.getExecuteDateTime());
|
||||
patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTaskStatistics);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
<result property="robotId" column="robot_id"/>
|
||||
<result property="taskId" column="task_id"/>
|
||||
<result property="signPatientManageRouteNodeId" column="sign_patient_manage_route_node_id"/>
|
||||
<result property="signPatientManageRouteId" column="sign_patient_manage_route_id"/>
|
||||
<result property="executeTime" column="execute_time"/>
|
||||
<result property="aiobTaskType" column="aiob_task_type"/>
|
||||
<result property="executeStatus" column="execute_status"/>
|
||||
@ -29,11 +30,19 @@
|
||||
from script_info_task_info
|
||||
</sql>
|
||||
|
||||
<select id="getByNodeId" resultType="java.lang.String">
|
||||
<select id="getByNodeId" resultType="java.lang.String" parameterType="ScriptInfoTaskInfo">
|
||||
select task_id
|
||||
from script_info_task_info
|
||||
where sign_patient_manage_route_node_id = #{signPatientManageRouteNodeId}
|
||||
where 1=1
|
||||
<if test="signPatientManageRouteNodeId!=null">
|
||||
AND sign_patient_manage_route_node_id = #{signPatientManageRouteNodeId}
|
||||
</if>
|
||||
<if test="signPatientManageRouteId!=null">
|
||||
AND sign_patient_manage_route_id = #{signPatientManageRouteId}
|
||||
</if>
|
||||
<if test="aiobTaskType !=null">
|
||||
and aiob_task_type = #{aiobTaskType}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="selectList" resultType="com.xinelu.manage.domain.scriptinfotaskinfo.ScriptInfoTaskInfo">
|
||||
@ -63,6 +72,8 @@
|
||||
</if>
|
||||
<if test="signPatientManageRouteNodeId != null">sign_patient_manage_route_node_id,
|
||||
</if>
|
||||
<if test="signPatientManageRouteId != null">sign_patient_manage_route_id,
|
||||
</if>
|
||||
<if test="executeTime != null">execute_time,
|
||||
</if>
|
||||
<if test="aiobTaskType != null">aiob_task_type,
|
||||
@ -81,6 +92,8 @@
|
||||
</if>
|
||||
<if test="signPatientManageRouteNodeId != null">#{signPatientManageRouteNodeId},
|
||||
</if>
|
||||
<if test="signPatientManageRouteId != null">#{signPatientManageRouteId},
|
||||
</if>
|
||||
<if test="executeTime != null">#{executeTime},
|
||||
</if>
|
||||
<if test="aiobTaskType != null">#{aiobTaskType},
|
||||
@ -96,4 +109,4 @@
|
||||
update script_info_task_info set execute_status = 'EXECUTED'
|
||||
where sign_patient_manage_route_node_id = #{signPatientManageRouteNodeId}
|
||||
</update>
|
||||
</mapper>
|
||||
</mapper>
|
||||
|
||||
@ -87,7 +87,7 @@
|
||||
</resultMap>
|
||||
|
||||
<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, 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
|
||||
select id, manage_route_id, manage_route_name, route_node_id, route_node_name, route_node_day, task_excute_type,node_plan_time,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,dial_status from sign_patient_manage_route_node
|
||||
</sql>
|
||||
|
||||
<select id="selectSignPatientManageRouteNodeList" parameterType="com.xinelu.manage.dto.signpatientmanageroutenode.SignPatientManageRouteNodeDto" resultMap="SignPatientManageRouteNodeResult">
|
||||
@ -137,17 +137,17 @@
|
||||
</foreach>
|
||||
</if>
|
||||
-- 如果是单个执行类型,应考虑默认为空时,按单个任务处理
|
||||
<if test="taskExcuteType != null and taskExcuteType = 'ACTUAL_TIME_TASK'">
|
||||
<if test="taskExcuteType != null and taskExcuteType == 'ACTUAL_TIME_TASK'">
|
||||
and (task_excute_type = #{taskExcuteType} or task_excute_type is null or task_excute_type='')
|
||||
</if>
|
||||
-- 批量任务处理时,直接按条件查询
|
||||
<if test="taskExcuteType != null and taskExcuteType = 'BATCH_TASK'">
|
||||
<if test="taskExcuteType != null and taskExcuteType == 'BATCH_TASK'">
|
||||
and task_excute_type = #{taskExcuteType}
|
||||
</if>
|
||||
<if test="dialStatus !=null and dialStatus = 'NODIALED'">
|
||||
<if test="dialStatus !=null and dialStatus == 'NODIALED'">
|
||||
and (dial_status is null or dial_status = 'NODIALED')
|
||||
</if>
|
||||
<if test="dialStatus !=null and dialStatus = 'DIALED'">
|
||||
<if test="dialStatus !=null and dialStatus == 'DIALED'">
|
||||
and dial_status = 'DIALED'
|
||||
</if>
|
||||
</where>
|
||||
@ -819,6 +819,15 @@
|
||||
where manage_route_id = #{manageRouteId}
|
||||
</update>
|
||||
|
||||
<update id="updateDialStatusByManageRouteId" parameterType="SignPatientManageRouteNode">
|
||||
update sign_patient_manage_route_node set dial_status = #{dialStatus}
|
||||
where manage_route_id = #{manageRouteId}
|
||||
</update>
|
||||
|
||||
<update id="updateDialStatusByNodeId" parameterType="SignPatientManageRouteNode">
|
||||
update sign_patient_manage_route_node set dial_status = #{dialStatus}
|
||||
where id = #{id}
|
||||
</update>
|
||||
<select id="selectPatientTaskList" parameterType="com.xinelu.manage.dto.signpatientmanageroutenode.PatientTaskDto" resultType="com.xinelu.manage.vo.signpatientmanageroutenode.PatientTaskVo">
|
||||
select patient.id as patientId, patient.patient_name,
|
||||
patient.patient_phone,
|
||||
@ -998,6 +1007,7 @@
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
|
||||
<select id="selectNodeCountByCreateTime" resultType="java.lang.Integer">
|
||||
select count(1)
|
||||
from sign_patient_manage_route_node
|
||||
|
||||
@ -91,16 +91,21 @@ public class UploadRobotPublishTask {
|
||||
//只获取 任务执行类型为 批量执行的
|
||||
signPatientManageRouteNodeDto.setTaskExcuteType(TaskExcuteTypeEnum.BATCH_TASK.getInfo());
|
||||
//查询未拨打的
|
||||
signPatientManageRouteNodeDto.setDialStaus(DialStatusEnum.NODIALED.getInfo());
|
||||
signPatientManageRouteNodeDto.setDialStatus(DialStatusEnum.NODIALED.getInfo());
|
||||
|
||||
List<SignPatientManageRouteNode> nodeList = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeList(signPatientManageRouteNodeDto);
|
||||
|
||||
List<SignPatientManageRouteNode> executeNodeList = new ArrayList<>();
|
||||
nodeList.forEach(node -> {
|
||||
SignPatientManageRoute signPatientManageRoute = signPatientManageRouteMapper.selectSignPatientManageRouteById(node.getManageRouteId());
|
||||
SignPatientRecord signPatientRecord = signPatientRecordMapper.selectByPrimaryKey(signPatientManageRoute.getSignPatientRecordId());
|
||||
PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.selectPatientVisitRecordById(signPatientRecord.getPatientVisitRecordId());
|
||||
LocalDateTime executeTime = signPatientManageRouteNodeService.getExecuteTime(node.getExecuteTime(), node.getRouteNodeName(), node.getRouteNodeDay(), patientVisitRecord);
|
||||
LocalDateTime executeTime;
|
||||
if (Objects.nonNull(node.getNodePlanTime()) && org.apache.commons.lang3.StringUtils.isNotBlank(node.getNodePlanTime().toString())) {
|
||||
executeTime = node.getNodePlanTime();
|
||||
} else {
|
||||
SignPatientManageRoute signPatientManageRoute = signPatientManageRouteMapper.selectSignPatientManageRouteById(node.getManageRouteId());
|
||||
SignPatientRecord signPatientRecord = signPatientRecordMapper.selectByPrimaryKey(signPatientManageRoute.getSignPatientRecordId());
|
||||
PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.selectPatientVisitRecordById(signPatientRecord.getPatientVisitRecordId());
|
||||
executeTime = signPatientManageRouteNodeService.getExecuteTime(node.getExecuteTime(), node.getRouteNodeName(), node.getRouteNodeDay(), patientVisitRecord);
|
||||
}
|
||||
if (node.getScriptInfoId() != null && (executeTime.toLocalDate().isBefore(LocalDate.now()) || executeTime.toLocalDate().isEqual(LocalDate.now()))) {
|
||||
executeNodeList.add(node);
|
||||
}
|
||||
@ -118,20 +123,28 @@ public class UploadRobotPublishTask {
|
||||
executeNodeList.stream().collect(Collectors.groupingBy(SignPatientManageRouteNode::getScriptInfoId));
|
||||
//开始遍历,生成任务
|
||||
routeNodeGroupListByScriptInfoId.keySet().forEach(scriptInfoId -> {
|
||||
// 同已分组下的任务节点,配置属性 应该是 是相同的,所以取第0项节点 来使用
|
||||
// 同一分组下的任务节点,配置属性 应该是 是相同的,所以取第0项节点 来使用
|
||||
SignPatientManageRouteNode nodeTemp = routeNodeGroupListByScriptInfoId.get(scriptInfoId).get(0);
|
||||
//话术
|
||||
ScriptInfo scriptInfo = scriptInfoMapper.selectScriptInfoById(scriptInfoId);
|
||||
//拼接一个taskId,格式:NodeId_ScriptInfoId_ManageRouteId
|
||||
String taskId = scriptInfoTaskInfoMapper.getByNodeId(Long.toString(nodeTemp.getId()).concat("_")
|
||||
.concat(Long.toString(nodeTemp.getManageRouteId()).concat("_").concat(String.valueOf(nodeTemp.getScriptInfoId()))),
|
||||
AiobTaskTypeContant.BATCHTASK);
|
||||
//拼接一个taskId,(格式:NodeId_ScriptInfoId_ManageRouteId,不用了)
|
||||
// String taskId = scriptInfoTaskInfoMapper.getByNodeId(Long.toString(nodeTemp.getId()).concat("_")
|
||||
// .concat(Long.toString(nodeTemp.getManageRouteId())).concat("_")
|
||||
// .concat(String.valueOf(nodeTemp.getScriptInfoId()))
|
||||
// , AiobTaskTypeContant.BATCHTASK);
|
||||
ScriptInfoTaskInfo scriptInfoTaskInfoQuery = new ScriptInfoTaskInfo();
|
||||
scriptInfoTaskInfoQuery.setSignPatientManageRouteId(nodeTemp.getManageRouteId());
|
||||
scriptInfoTaskInfoQuery.setScriptInfoId(nodeTemp.getScriptInfoId());
|
||||
scriptInfoTaskInfoQuery.setAiobTaskType(AiobTaskTypeContant.BATCHTASK);
|
||||
String taskId = scriptInfoTaskInfoMapper.getByNodeId(scriptInfoTaskInfoQuery);
|
||||
if (StringUtils.isBlank(taskId)) {
|
||||
// 没有任务则创建任务
|
||||
if (ObjectUtils.isNotEmpty(scriptInfo)) {
|
||||
log.info("创建任务......");
|
||||
CreateTaskDto createTaskDto = new CreateTaskDto();
|
||||
createTaskDto.setTaskName(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + scriptInfo.getScriptName() + "(" + nodeTemp.getId() + ")");
|
||||
//临时重复测试用,
|
||||
createTaskDto.setTaskName(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + scriptInfo.getScriptName() + "(" + nodeTemp.getManageRouteId() + ")");
|
||||
// createTaskDto.setTaskName(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + scriptInfo.getScriptName() + "(" + nodeTemp.getManageRouteId() + ")");
|
||||
createTaskDto.setRobotId(scriptInfo.getRobotPublishId());
|
||||
createTaskDto.setDialStartDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
||||
createTaskDto.setDialEndDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
||||
@ -151,7 +164,9 @@ public class UploadRobotPublishTask {
|
||||
scriptInfoTaskInfo.setTaskId(taskId);
|
||||
scriptInfoTaskInfo.setRobotId(scriptInfo.getRobotPublishId());
|
||||
scriptInfoTaskInfo.setCreateTime(LocalDateTime.now());
|
||||
scriptInfoTaskInfo.setSignPatientManageRouteNodeId(nodeTemp.getId());
|
||||
// scriptInfoTaskInfo.setSignPatientManageRouteNodeId(nodeTemp.getId());
|
||||
scriptInfoTaskInfo.setSignPatientManageRouteId(nodeTemp.getManageRouteId());
|
||||
|
||||
scriptInfoTaskInfo.setAiobTaskType(AiobTaskTypeContant.BATCHTASK);
|
||||
//进入拔打记录表(用于后续重拨处理等判断)
|
||||
scriptInfoTaskInfoMapper.insertScriptInfoTaskInfo(scriptInfoTaskInfo);
|
||||
@ -160,7 +175,7 @@ public class UploadRobotPublishTask {
|
||||
// 客户名单list
|
||||
List<CustomerInfoDto> customerInfoList = new ArrayList<>();
|
||||
//遍历最内层任务节点
|
||||
routeNodeGroupListByScriptInfoId.get(scriptInfoId).forEach(node->{
|
||||
routeNodeGroupListByScriptInfoId.get(scriptInfoId).forEach(node -> {
|
||||
CustomerInfoDto customerInfoDto = new CustomerInfoDto();
|
||||
customerInfoDto.setExtJson(node.getId() + "");
|
||||
SignPatientManageRoute signPatientManageRoute = signPatientManageRouteMapper.selectSignPatientManageRouteById(node.getManageRouteId());
|
||||
@ -188,6 +203,13 @@ public class UploadRobotPublishTask {
|
||||
importTaskDto.setSecretType(2);
|
||||
importTaskDto.setCustomerInfoList(customerInfoList);
|
||||
List<ImportTaskVo> importTaskList = aiobService.importTask(importTaskDto);
|
||||
|
||||
//设置拨打状态
|
||||
SignPatientManageRouteNode signPatientManageRouteNode_DialStatus = new SignPatientManageRouteNode();
|
||||
signPatientManageRouteNode_DialStatus.setManageRouteId(routeId);
|
||||
signPatientManageRouteNode_DialStatus.setDialStatus(DialStatusEnum.DIALED.getInfo());
|
||||
signPatientManageRouteNodeMapper.updateDialStatusByManageRouteId(signPatientManageRouteNode_DialStatus);
|
||||
|
||||
String finalTaskId = taskId;
|
||||
importTaskList.forEach(importTaskVo -> {
|
||||
SignPatientManageRouteNode signPatientManageRouteNode = new SignPatientManageRouteNode();
|
||||
@ -225,7 +247,7 @@ public class UploadRobotPublishTask {
|
||||
//只获取 任务执行类型为 单个执行的
|
||||
signPatientManageRouteNodeDto.setTaskExcuteType(TaskExcuteTypeEnum.ACTUAL_TIME_TASK.getInfo());
|
||||
//查询未拨打的
|
||||
signPatientManageRouteNodeDto.setDialStaus(DialStatusEnum.NODIALED.getInfo());
|
||||
signPatientManageRouteNodeDto.setDialStatus(DialStatusEnum.NODIALED.getInfo());
|
||||
|
||||
List<SignPatientManageRouteNode> nodeList = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeList(signPatientManageRouteNodeDto);
|
||||
List<SignPatientManageRouteNode> executeNodeList = new ArrayList<>();
|
||||
@ -294,7 +316,17 @@ public class UploadRobotPublishTask {
|
||||
actualTimeTaskDto.setCallBackUrl(callBackUrl);
|
||||
actualTimeTaskDto.setExtJson(node.getId() + "");
|
||||
aiobService.createActualTimeTask(actualTimeTaskDto);
|
||||
|
||||
log.info("创建任务完成......");
|
||||
|
||||
//设置拨打状态
|
||||
SignPatientManageRouteNode signPatientManageRouteNode_DialStatus = new SignPatientManageRouteNode();
|
||||
signPatientManageRouteNode_DialStatus.setId(node.getId());
|
||||
signPatientManageRouteNode_DialStatus.setDialStatus(DialStatusEnum.DIALED.getInfo());
|
||||
signPatientManageRouteNodeMapper.updateDialStatusByNodeId(signPatientManageRouteNode_DialStatus);
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user