diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/scriptinfotaskinfo/ScriptInfoTaskInfo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/scriptinfotaskinfo/ScriptInfoTaskInfo.java index e0083327..558442d0 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/scriptinfotaskinfo/ScriptInfoTaskInfo.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/scriptinfotaskinfo/ScriptInfoTaskInfo.java @@ -39,6 +39,11 @@ public class ScriptInfoTaskInfo { */ private String taskId; + /** + * 管理路径Id + */ + private Long signPatientManageRouteId; + /** * 任务Id */ diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroutenode/SignPatientManageRouteNode.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroutenode/SignPatientManageRouteNode.java index f8de5219..b96bd2a8 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroutenode/SignPatientManageRouteNode.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroutenode/SignPatientManageRouteNode.java @@ -422,4 +422,7 @@ public class SignPatientManageRouteNode extends BaseEntity { @ApiModelProperty(value = "第三方返回的任务ID") private String taskIdExt; + + @ApiModelProperty(value = "拨打状态:DIALED,已拨打:NODIALED:未拨打;默认NULL表示未拨打") + private String dialStatus; } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/SignPatientManageRouteNodeDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/SignPatientManageRouteNodeDto.java index 33fc960d..3a2adb02 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/SignPatientManageRouteNodeDto.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/SignPatientManageRouteNodeDto.java @@ -85,7 +85,7 @@ public class SignPatientManageRouteNodeDto { * 拨打状态:DIALED,已拨打:NODIALED:未拨打;默认NULL表示未拨打 */ @ApiModelProperty(value = "拨打状态:DIALED,已拨打:NODIALED:未拨打;默认NULL表示未拨打") - private String dialStaus; + private String dialStatus; diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/scriptinfotaskinfo/ScriptInfoTaskInfoMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/scriptinfotaskinfo/ScriptInfoTaskInfoMapper.java index 3d2b097f..f4e7da9a 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/scriptinfotaskinfo/ScriptInfoTaskInfoMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/scriptinfotaskinfo/ScriptInfoTaskInfoMapper.java @@ -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 selectList(ScriptInfoTaskInfo scriptInfoTaskInfo); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java index 3cf45002..5f0c2928 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java @@ -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); + /** * 查询患者任务列表 * diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskstatistics/impl/PatientTaskStatisticsServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskstatistics/impl/PatientTaskStatisticsServiceImpl.java index 622d2fdc..b927e892 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskstatistics/impl/PatientTaskStatisticsServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskstatistics/impl/PatientTaskStatisticsServiceImpl.java @@ -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 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 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); + } + }); + } } diff --git a/postdischarge-manage/src/main/resources/mapper/manage/scriptinfotaskinfo/ScriptInfoTaskInfoMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/scriptinfotaskinfo/ScriptInfoTaskInfoMapper.xml index 60782ca7..b0243a48 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/scriptinfotaskinfo/ScriptInfoTaskInfoMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/scriptinfotaskinfo/ScriptInfoTaskInfoMapper.xml @@ -10,6 +10,7 @@ + @@ -29,11 +30,19 @@ from script_info_task_info - select task_id from script_info_task_info - where sign_patient_manage_route_node_id = #{signPatientManageRouteNodeId} + where 1=1 + + AND sign_patient_manage_route_node_id = #{signPatientManageRouteNodeId} + + + AND sign_patient_manage_route_id = #{signPatientManageRouteId} + + and aiob_task_type = #{aiobTaskType} + @@ -137,17 +137,17 @@ -- 如果是单个执行类型,应考虑默认为空时,按单个任务处理 - + and (task_excute_type = #{taskExcuteType} or task_excute_type is null or task_excute_type='') -- 批量任务处理时,直接按条件查询 - + and task_excute_type = #{taskExcuteType} - + and (dial_status is null or dial_status = 'NODIALED') - + and dial_status = 'DIALED' @@ -819,6 +819,15 @@ where manage_route_id = #{manageRouteId} + + update sign_patient_manage_route_node set dial_status = #{dialStatus} + where manage_route_id = #{manageRouteId} + + + + update sign_patient_manage_route_node set dial_status = #{dialStatus} + where id = #{id} + select count(1) from sign_patient_manage_route_node diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java index f3cd6003..4456180d 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java @@ -91,16 +91,21 @@ public class UploadRobotPublishTask { //只获取 任务执行类型为 批量执行的 signPatientManageRouteNodeDto.setTaskExcuteType(TaskExcuteTypeEnum.BATCH_TASK.getInfo()); //查询未拨打的 - signPatientManageRouteNodeDto.setDialStaus(DialStatusEnum.NODIALED.getInfo()); + signPatientManageRouteNodeDto.setDialStatus(DialStatusEnum.NODIALED.getInfo()); List nodeList = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeList(signPatientManageRouteNodeDto); List 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 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 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 nodeList = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeList(signPatientManageRouteNodeDto); List 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); + + + } }