diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBServiceImpl.java index b80529b0..fae312cb 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBServiceImpl.java @@ -346,7 +346,8 @@ public class AIOBServiceImpl implements IAIOBService { } // 实时任务设置电话重拨 - if (callbackType == 3) { + //zyk 20241219 增加==0 + if (callbackType == 3 || callbackType == 0) { // 查询拨打次数 PhoneDialRecord phoneDialRecordQuery = new PhoneDialRecord(); phoneDialRecordQuery.setManageRouteNodeId(signPatientManageRouteNode.getId()); @@ -366,10 +367,12 @@ public class AIOBServiceImpl implements IAIOBService { // 发送短信 needSendSms = true; } - // 记录通话详情 - signPatientManageRouteNode.setPhoneResultJson(com.alibaba.fastjson.JSON.toJSONString(data, SerializerFeature.WriteMapNullValue)); + // 记录通话详情 放到外面执行 + // signPatientManageRouteNode.setPhoneResultJson(com.alibaba.fastjson.JSON.toJSONString(data, SerializerFeature.WriteMapNullValue)); } + signPatientManageRouteNode.setPhoneResultJson(com.alibaba.fastjson.JSON.toJSONString(data, SerializerFeature.WriteMapNullValue)); + signPatientManageRouteNodeMapper.updateSignPatientManageRouteNode(signPatientManageRouteNode); // 重拨表任务执行状态修改 @@ -395,8 +398,14 @@ public class AIOBServiceImpl implements IAIOBService { } // 重拨 if (needRedial) { - PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.selectPatientVisitRecordById(signPatientRecord.getPatientVisitRecordId()); - redialInfoSave(signPatientManageRouteNode, patientVisitRecord); + if (ObjectUtils.isNotEmpty(signPatientRecord)) { + PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.selectPatientVisitRecordById(signPatientRecord.getPatientVisitRecordId()); + redialInfoSave(signPatientManageRouteNode, patientVisitRecord); + } + else + { + redialInfoSave(signPatientManageRouteNode, null); + } } } // 增加任务执行记录 @@ -430,9 +439,12 @@ public class AIOBServiceImpl implements IAIOBService { patientTaskStatisticsService.updateNum(signPatientManageRoute.getPatientId(), TaskStatisticsTypeConstants.TASK_EXECUTE_NUM, 1); } - // 问卷记录保存 - if (StringUtils.equals(signPatientManageRouteNode.getTaskNodeType(), TaskNodeTypeEnum.QUESTIONNAIRE_SCALE.getInfo())) { - parseQuestionInfo(data.getRecord(), signPatientManageRouteNode, signPatientManageRoute.getPatientId(), patientTaskExecuteRecord.getId()); + //接通状态,1-已接通 + if (data.getEndType() != null && data.getEndType() == 0) { + // 问卷记录保存 + if (StringUtils.equals(signPatientManageRouteNode.getTaskNodeType(), TaskNodeTypeEnum.QUESTIONNAIRE_SCALE.getInfo())) { + parseQuestionInfo(data.getRecord(), signPatientManageRouteNode, signPatientManageRoute.getPatientId(), patientTaskExecuteRecord.getId()); + } } } @@ -729,7 +741,11 @@ public class AIOBServiceImpl implements IAIOBService { scriptInfoTaskInfo.setSignPatientManageRouteNodeId(signPatientManageRouteNode.getId()); scriptInfoTaskInfo.setAiobTaskType(AiobTaskTypeContant.ACTUALTIMETASK); scriptInfoTaskInfo.setExecuteStatus(NodeExecuteStatusEnum.UNEXECUTED.getInfo()); - LocalDateTime executeTime = signPatientManageRouteNodeService.getExecuteTime(signPatientManageRouteNode.getExecuteTime(), signPatientManageRouteNode.getRouteNodeName(), signPatientManageRouteNode.getRouteNodeDay(), patientVisitRecord); + LocalDateTime executeTime = signPatientManageRouteNode.getNodePlanTime(); + if(ObjectUtils.isNotEmpty(patientVisitRecord)) { + executeTime = signPatientManageRouteNodeService.getExecuteTime(signPatientManageRouteNode.getExecuteTime(), + signPatientManageRouteNode.getRouteNodeName(), signPatientManageRouteNode.getRouteNodeDay(), patientVisitRecord); + } scriptInfoTaskInfo.setExecuteTime(executeTime.plusMinutes(signPatientManageRouteNode.getPhoneTimeInterval())); scriptInfoTaskInfoMapper.insertScriptInfoTaskInfo(scriptInfoTaskInfo); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java index bc2af38d..6634719d 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java @@ -1122,8 +1122,12 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout //如果是电话外呼,则设置外呼标识为1 zyk 20241216 if (StringUtils.equals(PhoneDialMethodEnum.AI.getInfo(), routeNode.getPhoneDialMethod()) || StringUtils.equals(PhoneDialMethodEnum.COMMON.getInfo(), routeNode.getPhoneDialMethod())) { - signPatientManageRouteNode.setPhoneDialMethod(StringUtils.isBlank(routeNode.getPhoneDialMethod()) ? null : routeNode.getPhoneDialMethod()); - signPatientManageRouteNode.setPhonePushSign(Objects.isNull(routeNode.getPhonePushSign()) ? null : routeNode.getPhonePushSign()); + signPatientManageRouteNode.setPhoneRedialTimes(StringUtils.isBlank(routeNode.getPhoneRedialTimes()) ? null : routeNode.getPhoneRedialTimes()); + signPatientManageRouteNode.setPhoneTimeInterval(Objects.isNull(routeNode.getPhoneTimeInterval()) ? null : routeNode.getPhoneTimeInterval()); + signPatientManageRouteNode.setPhoneMessageRemind(StringUtils.isBlank(routeNode.getPhoneMessageRemind()) ? null : routeNode.getPhoneMessageRemind()); + signPatientManageRouteNode.setPhoneMessageTemplateId(Objects.isNull(routeNode.getPhoneMessageTemplateId()) ? null : routeNode.getPhoneMessageTemplateId()); + signPatientManageRouteNode.setPhoneMessageTemplateName(StringUtils.isBlank(routeNode.getPhoneMessageTemplateName()) ? null : routeNode.getPhoneMessageTemplateName()); + signPatientManageRouteNode.setPhoneDialMethod(StringUtils.isBlank(routeNode.getPhoneDialMethod()) ? null : routeNode.getPhoneDialMethod()); signPatientManageRouteNode.setPhonePushSign(Objects.isNull(routeNode.getPhonePushSign()) ? null : routeNode.getPhonePushSign()); } //根据问卷ID,获取问卷信息 zyk 20241216 QuestionInfo questionInfo = questionInfoService.selectQuestionInfoById(signPatientManageRouteNode.getQuestionInfoId());