diff --git a/postdischarge-admin/src/main/resources/template/批量发送任务信息.xlsx b/postdischarge-admin/src/main/resources/template/批量发送任务信息.xlsx index c16bb1ca..450469ea 100644 Binary files a/postdischarge-admin/src/main/resources/template/批量发送任务信息.xlsx and b/postdischarge-admin/src/main/resources/template/批量发送任务信息.xlsx differ diff --git a/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java b/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java index e1b2846a..d05d2874 100644 --- a/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java +++ b/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java @@ -220,10 +220,15 @@ public class Constants { public static final String OUTPATIENT = "outpatient"; /** - * 门诊患者 + * 患者导入 */ public static final String PATIENT_INFO_IMPORT = "patientInfoImport"; + /** + * 患者导入 + */ + public static final String BATCH_SEND_TASK_INFO = "batchSendTaskInfo"; + /** * 预住院 */ diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/batchsendtaskinfo/BatchSendTaskInfoController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/batchsendtaskinfo/BatchSendTaskInfoController.java index d16526a9..5c46f1ee 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/batchsendtaskinfo/BatchSendTaskInfoController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/batchsendtaskinfo/BatchSendTaskInfoController.java @@ -117,4 +117,10 @@ public class BatchSendTaskInfoController extends BaseController { public AjaxResult batchSend(@RequestBody BatchSendTaskRecordDto batchSendTaskRecordDto) throws Exception { return batchSendTaskInfoService.batchSend(batchSendTaskRecordDto); } + + @ApiOperation("标签信息") + @GetMapping("/getPhysicalExaminationLabel") + public List getPhysicalExaminationLabel(){ + return batchSendTaskInfoService.getPhysicalExaminationLabel(); + } } \ No newline at end of file diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/importdownload/ImportDownloadController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/importdownload/ImportDownloadController.java index e6c2388c..57d76c4c 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/importdownload/ImportDownloadController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/importdownload/ImportDownloadController.java @@ -73,6 +73,9 @@ public class ImportDownloadController { // 通过流讲文件复制到file中 FileUtils.copyToFile(resource.getInputStream(), file); break; + case Constants.BATCH_SEND_TASK_INFO: + file = ResourceUtils.getFile("classpath:template/批量发送任务信息.xlsx"); + break; } if (Objects.isNull(file)) { throw new ServiceException("下载导入模板文件失败,请联系管理员!"); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskinfo/BatchSendTaskInfo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskinfo/BatchSendTaskInfo.java index 0bf908ff..cb042612 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskinfo/BatchSendTaskInfo.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskinfo/BatchSendTaskInfo.java @@ -92,10 +92,10 @@ public class BatchSendTaskInfo extends BaseEntity { private Date visitDate; /** - * 门诊/住院/体检号 + * 体检/门诊/住院号 */ - @ApiModelProperty(value = "门诊/住院/体检号") - @Excel(name = "门诊/住院/体检号") + @ApiModelProperty(value = "体检/门诊/住院号") + @Excel(name = "体检/门诊/住院号") private String inHospitalNumber; /** @@ -106,10 +106,10 @@ public class BatchSendTaskInfo extends BaseEntity { private String patientName; /** - * 患者电话 + * 联系电话 */ - @ApiModelProperty(value = "患者电话") - @Excel(name = "电话") + @ApiModelProperty(value = "联系电话") + @Excel(name = "联系电话") private String patientPhone; /** @@ -150,7 +150,7 @@ public class BatchSendTaskInfo extends BaseEntity { * 体检总结/主要诊断 */ @ApiModelProperty(value = "体检总结/主要诊断") - @Excel(name = "体检总结/主要诊断") + @Excel(name = "总检结论") private String physicalExaminationSummary; /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtasklabelinfo/BatchSendTaskLabelInfo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtasklabelinfo/BatchSendTaskLabelInfo.java new file mode 100644 index 00000000..aefdc45b --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtasklabelinfo/BatchSendTaskLabelInfo.java @@ -0,0 +1,48 @@ +package com.xinelu.manage.domain.batchsendtasklabelinfo; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 批量推送任务标签信息表对象 batch_send_task_label_info + * + * @author xinelu + * @date 2026-04-29 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "批量推送任务标签信息表对象", description = "batch_send_task_label_info") +public class BatchSendTaskLabelInfo extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 标签id + */ + private Long id; + + /** + * 总结标签 + */ + @ApiModelProperty(value = "总结标签") + @Excel(name = "总结标签") + private String physicalExaminationLabel; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("physicalExaminationLabel", getPhysicalExaminationLabel()) + .toString(); + } +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskvariableinfo/BatchSendTaskVariableInfo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskvariableinfo/BatchSendTaskVariableInfo.java index 8c059605..69de2ebc 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskvariableinfo/BatchSendTaskVariableInfo.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskvariableinfo/BatchSendTaskVariableInfo.java @@ -47,6 +47,11 @@ public class BatchSendTaskVariableInfo extends BaseEntity { @ApiModelProperty(value = "批量推送任务记录表id") private Long batchSendTaskRecordId; + /** + * 批量推送任务表id + */ + @ApiModelProperty(value = "批量推送任务表id") + private Long batchSendTaskId; @Override public String toString() { @@ -55,6 +60,7 @@ public class BatchSendTaskVariableInfo extends BaseEntity { .append("variable", getVariable()) .append("variableAttribute", getVariableAttribute()) .append("batchSendTaskRecordId", getBatchSendTaskRecordId()) + .append("batchSendTaskId", getBatchSendTaskId()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .toString(); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtasklabelinfo/BatchSendTaskLabelInfoMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtasklabelinfo/BatchSendTaskLabelInfoMapper.java new file mode 100644 index 00000000..9589a660 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtasklabelinfo/BatchSendTaskLabelInfoMapper.java @@ -0,0 +1,70 @@ +package com.xinelu.manage.mapper.batchsendtasklabelinfo; + +import com.xinelu.manage.domain.batchsendtasklabelinfo.BatchSendTaskLabelInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 批量推送任务标签信息表Mapper接口 + * + * @author xinelu + * @date 2026-04-29 + */ +public interface BatchSendTaskLabelInfoMapper { + /** + * 查询批量推送任务标签信息表 + * + * @param id 批量推送任务标签信息表主键 + * @return 批量推送任务标签信息表 + */ + BatchSendTaskLabelInfo selectBatchSendTaskLabelInfoById(Long id); + + /** + * 查询批量推送任务标签信息表列表 + * + * @param batchSendTaskLabelInfo 批量推送任务标签信息表 + * @return 批量推送任务标签信息表集合 + */ + List selectBatchSendTaskLabelInfoList(BatchSendTaskLabelInfo batchSendTaskLabelInfo); + + /** + * 新增批量推送任务标签信息表 + * + * @param batchSendTaskLabelInfo 批量推送任务标签信息表 + * @return 结果 + */ + int insertBatchSendTaskLabelInfo(BatchSendTaskLabelInfo batchSendTaskLabelInfo); + + /** + * 修改批量推送任务标签信息表 + * + * @param batchSendTaskLabelInfo 批量推送任务标签信息表 + * @return 结果 + */ + int updateBatchSendTaskLabelInfo(BatchSendTaskLabelInfo batchSendTaskLabelInfo); + + /** + * 删除批量推送任务标签信息表 + * + * @param id 批量推送任务标签信息表主键 + * @return 结果 + */ + int deleteBatchSendTaskLabelInfoById(Long id); + + /** + * 批量删除批量推送任务标签信息表 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteBatchSendTaskLabelInfoByIds(Long[] ids); + + /** + * 新增患者信息 + * + * @param labels 批量任务信息 + * @return 结果 + */ + int insertBatchSendTaskLabelInfList(@Param("list") List labels); +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/scriptInfo/ScriptInfoMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/scriptInfo/ScriptInfoMapper.java index 412a1b0d..48def642 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/scriptInfo/ScriptInfoMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/scriptInfo/ScriptInfoMapper.java @@ -88,4 +88,12 @@ public interface ScriptInfoMapper { * @return 话术信息集合 */ List selectScriptInfos(); + + /** + * 根据机器人编号查询变量信息 + * + * @param robotPublishId + * @return String + */ + String selectVariablesByRobotPublishId(String robotPublishId); } 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 915b709a..a925d622 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 @@ -5,7 +5,6 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.aliyuncs.exceptions.ClientException; -import com.sun.media.jfxmedia.logging.Logger; import com.xinelu.common.config.AliYunSmsTwoConfig; import com.xinelu.common.config.SystemBusinessConfig; import com.xinelu.common.constant.*; @@ -13,6 +12,7 @@ import com.xinelu.common.core.redis.RedisCache; import com.xinelu.common.enums.*; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.StringUtils; +import com.xinelu.manage.domain.batchsendtaskinfo.BatchSendTaskInfo; import com.xinelu.manage.domain.patientinfo.PatientInfo; import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult; import com.xinelu.manage.domain.patientquestionsubjectresult.PatientQuestionSubjectResult; @@ -31,6 +31,7 @@ import com.xinelu.manage.domain.textmessage.TextMessage; import com.xinelu.manage.dto.aiob.*; import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO; import com.xinelu.manage.dto.smssend.SmsInfoDTO; +import com.xinelu.manage.mapper.batchsendtaskinfo.BatchSendTaskInfoMapper; import com.xinelu.manage.mapper.labelfieldcontent.LabelFieldContentMapper; import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; import com.xinelu.manage.mapper.patientquestionoptionresult.PatientQuestionOptionResultMapper; @@ -143,6 +144,8 @@ public class AIOBServiceImpl implements IAIOBService { private ScriptInfoTaskInfoMapper scriptInfoTaskInfoMapper; @Resource private PatientVisitRecordMapper patientVisitRecordMapper; + @Resource + private BatchSendTaskInfoMapper batchSendTaskInfoMapper; /** * @description 获取外呼平台accessToken @@ -366,7 +369,6 @@ public class AIOBServiceImpl implements IAIOBService { signPatientManageRouteNode.setNodeFinishStatus(NodeExecuteResultStatusEnum.FAILURE.getInfo()); } } - } } else { signPatientManageRouteNode.setPhoneNodeExecuteResultStatus(NodeExecuteResultStatusEnum.SUCCESS.getInfo()); @@ -398,24 +400,25 @@ public class AIOBServiceImpl implements IAIOBService { patientTaskExecuteRecord.setPatientId(signPatientManageRoute.getPatientId()); patientTaskExecuteRecord.setPatientName(signPatientManageRoute.getPatientName()); // 签约记录 - SignPatientRecord signPatientRecord = signPatientRecordMapper.selectByPrimaryKey(signPatientManageRoute.getSignPatientRecordId()); + SignPatientRecord signPatientRecord = new SignPatientRecord(); + //针对batch_send_task_info表未签约未存patient_info表处理 + if (Objects.nonNull(signPatientManageRoute.getSignPatientRecordId())){ + signPatientRecord = signPatientRecordMapper.selectByPrimaryKey(signPatientManageRoute.getSignPatientRecordId()); + } if (ObjectUtils.isNotEmpty(signPatientRecord)) { patientTaskExecuteRecord.setVisitRecordId(signPatientRecord.getPatientVisitRecordId()); } // 发送短信 if (needSendSms) { - //System.out.println("发送短信-------------------------------------------"); - sendSms(signPatientManageRoute.getPatientId(), signPatientManageRouteNode); + sendSms(signPatientManageRoute.getPatientId(), signPatientManageRouteNode, signPatientManageRoute.getBatchSendTaskId()); } // 重拨 if (needRedial) { if (ObjectUtils.isNotEmpty(signPatientRecord)) { PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.selectPatientVisitRecordById(signPatientRecord.getPatientVisitRecordId()); redialInfoSave(signPatientManageRouteNode, patientVisitRecord); - } - else - { + } else { redialInfoSave(signPatientManageRouteNode, null); } } @@ -445,10 +448,12 @@ public class AIOBServiceImpl implements IAIOBService { phoneDialRecordMapper.insertPhoneDialRecord(phoneDialRecord); - // 修改任务统计表数据 - if (patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord) > 0) { + // 修改任务统计表数据 添加getPatientId判断针对batch_send_task_info表未签约未存patient_info表处理 + if (Objects.nonNull(patientTaskExecuteRecord.getPatientId()) && patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord) > 0) { // 任务统计表修改 - patientTaskStatisticsService.updateNum(signPatientManageRoute.getPatientId(), TaskStatisticsTypeConstants.TASK_EXECUTE_NUM, 1); + if (Objects.nonNull(signPatientManageRoute.getPatientId())){ + patientTaskStatisticsService.updateNum(signPatientManageRoute.getPatientId(), TaskStatisticsTypeConstants.TASK_EXECUTE_NUM, 1); + } } //接通状态,1-已接通 @@ -503,12 +508,21 @@ public class AIOBServiceImpl implements IAIOBService { return obj.getOrDefault("downloadUrl", null).toString(); } - private void sendSms(Long patientId, SignPatientManageRouteNode signPatientManageRouteNode) throws ClientException { + private void sendSms(Long patientId, SignPatientManageRouteNode signPatientManageRouteNode, Long batchSendTaskId) throws ClientException { TextMessage textMessage = textMessageMapper.selectTextMessageById(signPatientManageRouteNode.getPhoneMessageTemplateId()); if (ObjectUtils.isNotEmpty(textMessage)) { // 发送短信 SmsInfoDTO smsInfoDTO = new SmsInfoDTO(); - String patientPhone = signPatientManageRouteMapper.selectPatientPhone(patientId); + String patientPhone = null; + //添加PatientId判断针对batch_send_task_info表未签约未存patient_info表处理 + if (Objects.nonNull(patientId)){ + patientPhone = signPatientManageRouteMapper.selectPatientPhone(patientId); + } + if (Objects.nonNull(patientId)){ + //批量推送任务表没有同步到患者表,所以分开查询 + BatchSendTaskInfo batchSendTaskInfo = batchSendTaskInfoMapper.selectBatchSendTaskInfoById(batchSendTaskId); + patientPhone = batchSendTaskInfo.getPatientPhone(); + } smsInfoDTO.setPhoneNumbers(patientPhone); smsInfoDTO.setSignName(aliYunSmsTwoConfig.getSignName()); smsInfoDTO.setTemplateCode(textMessage.getTextMessageId()); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/IBatchSendTaskInfoService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/IBatchSendTaskInfoService.java index c7eeea34..7902350e 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/IBatchSendTaskInfoService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/IBatchSendTaskInfoService.java @@ -79,5 +79,12 @@ public interface IBatchSendTaskInfoService { * @return AjaxResult * @throws ClientException */ - AjaxResult batchSend(BatchSendTaskRecordDto batchSendTaskRecordDto) throws ClientException; + AjaxResult batchSend(BatchSendTaskRecordDto batchSendTaskRecordDto) throws ClientException, IllegalAccessException; + + /** + * 搜素框添加 标签信息 + * + * @return String + */ + List getPhysicalExaminationLabel(); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/impl/BatchSendTaskInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/impl/BatchSendTaskInfoServiceImpl.java index 5504be65..202c81a4 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/impl/BatchSendTaskInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskinfo/impl/BatchSendTaskInfoServiceImpl.java @@ -21,6 +21,7 @@ import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.regex.RegexUtil; import com.xinelu.manage.domain.agency.Agency; import com.xinelu.manage.domain.batchsendtaskinfo.BatchSendTaskInfo; +import com.xinelu.manage.domain.batchsendtasklabelinfo.BatchSendTaskLabelInfo; import com.xinelu.manage.domain.batchsendtaskrecordinfo.BatchSendTaskRecordInfo; import com.xinelu.manage.domain.batchsendtaskvariableinfo.BatchSendTaskVariableInfo; import com.xinelu.manage.domain.dialtime.DialTime; @@ -35,9 +36,11 @@ import com.xinelu.manage.dto.batchsendtaskrecordinfo.BatchSendTaskRecordDto; import com.xinelu.manage.dto.smssend.SmsInfoDTO; import com.xinelu.manage.mapper.agency.AgencyMapper; import com.xinelu.manage.mapper.batchsendtaskinfo.BatchSendTaskInfoMapper; +import com.xinelu.manage.mapper.batchsendtasklabelinfo.BatchSendTaskLabelInfoMapper; import com.xinelu.manage.mapper.batchsendtaskrecordinfo.BatchSendTaskRecordInfoMapper; import com.xinelu.manage.mapper.batchsendtaskvariableinfo.BatchSendTaskVariableInfoMapper; import com.xinelu.manage.mapper.patientinfoimportmain.PatientInfoImportMainMapper; +import com.xinelu.manage.mapper.scriptInfo.ScriptInfoMapper; import com.xinelu.manage.mapper.signpatientmanageroute.SignPatientManageRouteMapper; import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper; import com.xinelu.manage.service.aiob.IAIOBService; @@ -46,12 +49,14 @@ import com.xinelu.system.mapper.SysUserMapper; import com.xinelu.system.service.ISysDictTypeService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.lang.reflect.Field; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; @@ -95,6 +100,11 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { private String callBackUrl; @Resource private AliYunSmsConfig aliyunSmsConfig; + @Resource + private BatchSendTaskLabelInfoMapper batchSendTaskLabelInfoMapper; + @Resource + private ScriptInfoMapper scriptInfoMapper; + private static final String SUCCESS = "OK"; /** @@ -182,6 +192,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { return AjaxResult.error("该账号无所属医院信息,请先配置该账号所属的医院信息!"); } String sn = "batch_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); + List stringList = new ArrayList<>(); for (BatchSendTaskInfo batchSendTaskInfo : list) { batchSendTaskInfo.setSn(sn); batchSendTaskInfo.setHospitalAgencyId(agency.getId()); @@ -198,12 +209,21 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { } if (StringUtils.isNotBlank(batchSendTaskInfo.getPhysicalExaminationSummary())) { String[] strings = BracketExtractor.extractToArray(batchSendTaskInfo.getPhysicalExaminationSummary()); + stringList.addAll(Arrays.asList(strings)); batchSendTaskInfo.setPhysicalExaminationLabel(Arrays.toString(strings)); if (batchSendTaskInfo.getPhysicalExaminationSummary().length() > 999) { batchSendTaskInfo.setPhysicalExaminationSummary(batchSendTaskInfo.getPhysicalExaminationSummary().substring(0, 999)); } } } + //处理标签 + List batchSendTaskLabelInfos = batchSendTaskLabelInfoMapper.selectBatchSendTaskLabelInfoList(null); + List data = batchSendTaskLabelInfos.stream().filter(Objects::nonNull).map(BatchSendTaskLabelInfo::getPhysicalExaminationLabel).collect(Collectors.toList()); + List collect1 = stringList.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList()); + List subtract = ListUtils.subtract(collect1, data); + if (CollectionUtils.isNotEmpty(subtract)) { + batchSendTaskLabelInfoMapper.insertBatchSendTaskLabelInfList(subtract); + } batchSendTaskInfoMapper.insertBatchSendTaskInfoList(list); return AjaxResult.success(); } @@ -216,9 +236,12 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { * @throws ClientException */ @Override - public AjaxResult batchSend(BatchSendTaskRecordDto batchSendTaskRecordDto) throws ClientException { + public AjaxResult batchSend(BatchSendTaskRecordDto batchSendTaskRecordDto) throws ClientException, IllegalAccessException { + log.info("开始创建批量推送任务---------------"); + //新增批量推送任务记录 BatchSendTaskRecordInfo batchSendTaskRecordInfo = new BatchSendTaskRecordInfo(); batchSendTaskRecordInfo.setBatchTaskName(batchSendTaskRecordDto.getManageRouteName()); + //新增批量推送任务记录编号 String batchTaskNumber = null; if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.MESSAGE.getInfo())) { batchTaskNumber = "hkqdermyy_message_batch" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); @@ -230,7 +253,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { batchTaskNumber = "hkqdermyy_phone_batch" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); batchSendTaskRecordInfo.setTemplateId(batchSendTaskRecordDto.getPhoneTemplateId()); batchSendTaskRecordInfo.setTemplateName(batchSendTaskRecordDto.getPhoneTemplateName()); - batchSendTaskRecordInfo.setRobotPublishId(batchSendTaskRecordInfo.getRobotPublishId()); + batchSendTaskRecordInfo.setRobotPublishId(batchSendTaskRecordDto.getRobotPublishId()); } batchSendTaskRecordInfo.setBatchTaskNumber(batchTaskNumber); batchSendTaskRecordInfo.setTaskExecuteType(TaskExcuteTypeEnum.BATCH_TASK.getInfo()); @@ -238,14 +261,15 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { batchSendTaskRecordInfo.setCreateBy(SecurityUtils.getUsername()); batchSendTaskRecordInfo.setBatchTaskSource(batchSendTaskRecordDto.getBatchTaskSource()); batchSendTaskRecordInfo.setCreateTime(LocalDateTime.now()); + batchSendTaskRecordInfo.setPhysicalExaminationLabel(batchSendTaskRecordDto.getPhysicalExaminationLabel()); int insertBatchSendTaskRecord = batchSendTaskRecordInfoMapper.insertBatchSendTaskRecordInfo(batchSendTaskRecordInfo); if (insertBatchSendTaskRecord <= 0) { log.info("新增批量推送任务记录失败"); return AjaxResult.error("上传任务失败!请联系管理员!"); } - //保存变量 - if (Objects.nonNull(batchSendTaskRecordDto.getVars())) { - List batchSendTaskVariableInfos = new ArrayList<>(); + //保存短信变量 + List batchSendTaskVariableInfos = new ArrayList<>(); + if (Objects.nonNull(batchSendTaskRecordDto.getVars()) && batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.MESSAGE.getInfo())) { Set keys = batchSendTaskRecordDto.getVars().keySet(); for (String key : keys) { BatchSendTaskVariableInfo batchSendTaskVariableInfo = new BatchSendTaskVariableInfo(); @@ -256,13 +280,15 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { batchSendTaskRecordInfo.setCreateTime(LocalDateTime.now()); batchSendTaskVariableInfos.add(batchSendTaskVariableInfo); } - if (CollectionUtils.isNotEmpty(batchSendTaskVariableInfos)) { - batchSendTaskVariableInfoMapper.insertBatchSendTaskVariableInfos(batchSendTaskVariableInfos); - } } List signPatientManageRoutes = new ArrayList<>(); List signPatientManageRouteNodes = new ArrayList<>(); List shortMessageSendRecords = new ArrayList<>(); + String[] keys = new String[0]; + if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.TELEPHONE)) { + String s1 = scriptInfoMapper.selectVariablesByRobotPublishId(batchSendTaskRecordDto.getRobotPublishId()); + keys = s1.split("\\|"); + } for (BatchSendTaskInfo batchSendTaskInfo : batchSendTaskRecordDto.getList()) { //节点主表 SignPatientManageRoute signPatientManageRoute = new SignPatientManageRoute(); @@ -320,12 +346,38 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { shortMessageSendRecord.setMessageNodeContent(batchSendTaskRecordDto.getMessageNodeContent()); shortMessageSendRecord.setCreateTime(LocalDateTime.now()); shortMessageSendRecords.add(shortMessageSendRecord); + //电话变量 + if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.TELEPHONE.getInfo())) { + for (String key : keys) { + // 获取对象的Class对象 + Class objClass = batchSendTaskInfo.getClass(); + // 获取所有属性 + Field[] fields = objClass.getDeclaredFields(); + //匹配属性名 + Field field = Arrays.stream(fields).filter(Objects::nonNull).filter(s -> Objects.equals(s.getName().toUpperCase(), key.replaceAll("_", "").toUpperCase())).findFirst().orElse(null); + if (Objects.isNull(field)) { + return AjaxResult.error("该模板变量" + key + "不存在!"); + } + BatchSendTaskVariableInfo batchSendTaskVariableInfo = new BatchSendTaskVariableInfo(); + batchSendTaskVariableInfo.setBatchSendTaskRecordId(batchSendTaskRecordInfo.getId()); + batchSendTaskVariableInfo.setBatchSendTaskId(batchSendTaskInfo.getId()); + batchSendTaskVariableInfo.setVariable(key); + field.setAccessible(true); + batchSendTaskVariableInfo.setVariableAttribute(field.get(batchSendTaskInfo).toString()); + batchSendTaskVariableInfo.setCreateBy(SecurityUtils.getUsername()); + batchSendTaskRecordInfo.setCreateTime(LocalDateTime.now()); + batchSendTaskVariableInfos.add(batchSendTaskVariableInfo); + } + } } signPatientManageRouteMapper.insertBatch(signPatientManageRoutes); for (int i = 0; i < signPatientManageRouteNodes.size(); i++) { signPatientManageRouteNodes.get(i).setManageRouteId(signPatientManageRoutes.get(i).getId()); } signPatientManageRouteNodeMapper.insertBatch(signPatientManageRouteNodes); + if (CollectionUtils.isNotEmpty(batchSendTaskVariableInfos)) { + batchSendTaskVariableInfoMapper.insertBatchSendTaskVariableInfos(batchSendTaskVariableInfos); + } if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.TELEPHONE.getInfo())) { SysUser sysUser = sysUserMapper.selectUserById(SecurityUtils.getUserId()); Agency agency = agencyMapper.selectAgencyById(sysUser.getHospitalAgencyId()); @@ -355,7 +407,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { if (dateEndTime.isBefore(localEndTime)) { localEndTime = dateEndTime; } - log.info("开始创建批量电话推送任务---------------"); + log.info("创建批量电话推送任务---------------"); CreateTaskDto createTaskDto = new CreateTaskDto(); //临时重复测试用, String taskName = batchTaskNumber + "-" + batchSendTaskRecordDto.getPhoneTemplateName(); @@ -386,19 +438,19 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { List customerInfoList = new ArrayList<>(); signPatientManageRouteNodes.forEach(node -> { CustomerInfoDto customerInfoDto = new CustomerInfoDto(); - customerInfoDto.setExtJson(node.getId() + ""); + customerInfoDto.setExtJson(node.getId().toString()); SignPatientManageRoute signPatientManageRoute = signPatientManageRoutes.stream().filter(Objects::nonNull).filter(item -> item.getId().equals(node.getManageRouteId())).findFirst().orElse(new SignPatientManageRoute()); BatchSendTaskInfo batchSendTaskInfo = batchSendTaskRecordDto.getList().stream().filter(Objects::nonNull).filter(item -> item.getId().equals(signPatientManageRoute.getBatchSendTaskId())).findFirst().orElse(new BatchSendTaskInfo()); + List batchSendTaskVariableList = batchSendTaskVariableInfos.stream().filter(Objects::nonNull).filter(item -> item.getBatchSendTaskId().equals(batchSendTaskInfo.getId())).collect(Collectors.toList()); //校验手机号 if (StringUtils.isNotBlank(batchSendTaskInfo.getPatientPhone())) { if (regexUtil.regexPhone(batchSendTaskInfo.getPatientPhone())) { customerInfoDto.setMobile(batchSendTaskInfo.getPatientPhone()); // 处理变量 JSONObject jsonObject = new JSONObject(); - if (Objects.nonNull(batchSendTaskRecordDto.getVars())) { - Set keys = batchSendTaskRecordDto.getVars().keySet(); - keys.forEach(variable -> { - jsonObject.fluentPut(variable, ObjectUtils.isEmpty(batchSendTaskRecordDto.getVars().get(variable)) ? "" : batchSendTaskRecordDto.getVars().get(variable)); + if (CollectionUtils.isNotEmpty(batchSendTaskVariableList)) { + batchSendTaskVariableList.forEach(variable -> { + jsonObject.fluentPut(variable.getVariable(), ObjectUtils.isEmpty(variable.getVariableAttribute()) ? "" : variable.getVariableAttribute()); }); } customerInfoDto.setVar(jsonObject); @@ -418,6 +470,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { return AjaxResult.success("创建批量电话推送任务执行完成"); } if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.MESSAGE.getInfo())) { + log.info("创建批量短信推送任务---------------"); SmsInfoDTO smsInfoDTO = new SmsInfoDTO(); List phones = batchSendTaskRecordDto.getList().stream().filter(Objects::nonNull).map(BatchSendTaskInfo::getPatientPhone).distinct().collect(Collectors.toList()); String phoneString = String.join(",", phones); @@ -426,32 +479,42 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { // 处理变量 JSONObject jsonObject = new JSONObject(); if (Objects.nonNull(batchSendTaskRecordDto.getVars())) { - Set keys = batchSendTaskRecordDto.getVars().keySet(); - keys.forEach(variable -> { + Set keySet = batchSendTaskRecordDto.getVars().keySet(); + keySet.forEach(variable -> { jsonObject.fluentPut(variable, ObjectUtils.isEmpty(batchSendTaskRecordDto.getVars().get(variable)) ? "" : batchSendTaskRecordDto.getVars().get(variable)); }); } smsInfoDTO.setTemplateParam(jsonObject); // 根据模版id发送 smsInfoDTO.setTemplateCode(batchSendTaskRecordDto.getMessageTemplateCode()); + smsInfoDTO.setOutId(batchSendTaskRecordInfo.getId().toString()); Boolean aBoolean = sendSms(smsInfoDTO); if (!aBoolean) { - return AjaxResult.error("短信发送失败"); - } - for (int i = 0; i < signPatientManageRouteNodes.size(); i++) { - shortMessageSendRecords.get(i).setManageRouteNodeId(signPatientManageRouteNodes.get(i).getId()); - shortMessageSendRecords.get(i).setErrorCode(0L); - shortMessageSendRecords.get(i).setErrorStatus(ErrorStatusEnum.success.getValue()); + return AjaxResult.error("短信上传失败"); } //发送记录批量 - log.info("创建批量电信推送任务执行完成......"); - return AjaxResult.success("短信发送成功"); + log.info("创建批量短信推送任务执行完成......"); + return AjaxResult.success("短信上传成功"); } return AjaxResult.success(); } /** - * 单{code}替换值,发送短信 + * 搜素框添加 标签信息 + * + * @return String + */ + @Override + public List getPhysicalExaminationLabel() { + List batchSendTaskLabelInfos = batchSendTaskLabelInfoMapper.selectBatchSendTaskLabelInfoList(null); + if (CollectionUtils.isEmpty(batchSendTaskLabelInfos)) { + return new ArrayList<>(); + } + return batchSendTaskLabelInfos.stream().filter(Objects::nonNull).map(BatchSendTaskLabelInfo::getPhysicalExaminationLabel).collect(Collectors.toList()); + } + + /** + * 变量替换值,发送短信 */ public Boolean sendSms(SmsInfoDTO smsInfoDTO) throws ClientException, ServiceException { try { @@ -484,7 +547,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { request.setSignName(smsInfoDTO.getSignName()); request.setTemplateCode(smsInfoDTO.getTemplateCode()); request.setTemplateParam(smsInfoDTO.getTemplateParam().toJSONString()); - + request.setOutId(smsInfoDTO.getOutId()); SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request); // 判断响应的结果 if (!SUCCESS.equals(sendSmsResponse.getCode())) { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtasklabelinfo/IBatchSendTaskLabelInfoService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtasklabelinfo/IBatchSendTaskLabelInfoService.java new file mode 100644 index 00000000..360043d8 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtasklabelinfo/IBatchSendTaskLabelInfoService.java @@ -0,0 +1,62 @@ +package com.xinelu.manage.service.batchsendtasklabelinfo; + +import com.xinelu.manage.domain.batchsendtasklabelinfo.BatchSendTaskLabelInfo; + +import java.util.List; + +/** + * 批量推送任务标签信息表Service接口 + * + * @author xinelu + * @date 2026-04-29 + */ +public interface IBatchSendTaskLabelInfoService { + + /** + * 查询批量推送任务标签信息表 + * + * @param id 批量推送任务标签信息表主键 + * @return 批量推送任务标签信息表 + */ + BatchSendTaskLabelInfo selectBatchSendTaskLabelInfoById(Long id); + + /** + * 查询批量推送任务标签信息表列表 + * + * @param batchSendTaskLabelInfo 批量推送任务标签信息表 + * @return 批量推送任务标签信息表集合 + */ + List selectBatchSendTaskLabelInfoList(BatchSendTaskLabelInfo batchSendTaskLabelInfo); + + /** + * 新增批量推送任务标签信息表 + * + * @param batchSendTaskLabelInfo 批量推送任务标签信息表 + * @return 结果 + */ + int insertBatchSendTaskLabelInfo(BatchSendTaskLabelInfo batchSendTaskLabelInfo); + + /** + * 修改批量推送任务标签信息表 + * + * @param batchSendTaskLabelInfo 批量推送任务标签信息表 + * @return 结果 + */ + int updateBatchSendTaskLabelInfo(BatchSendTaskLabelInfo batchSendTaskLabelInfo); + + /** + * 批量删除批量推送任务标签信息表 + * + * @param ids 需要删除的批量推送任务标签信息表主键集合 + * @return 结果 + */ + int deleteBatchSendTaskLabelInfoByIds(Long[] ids); + + /** + * 删除批量推送任务标签信息表信息 + * + * @param id 批量推送任务标签信息表主键 + * @return 结果 + */ + int deleteBatchSendTaskLabelInfoById(Long id); +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtasklabelinfo/impl/BatchSendTaskLabelInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtasklabelinfo/impl/BatchSendTaskLabelInfoServiceImpl.java new file mode 100644 index 00000000..ceba58a5 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtasklabelinfo/impl/BatchSendTaskLabelInfoServiceImpl.java @@ -0,0 +1,87 @@ +package com.xinelu.manage.service.batchsendtasklabelinfo.impl; + +import com.xinelu.manage.domain.batchsendtasklabelinfo.BatchSendTaskLabelInfo; +import com.xinelu.manage.mapper.batchsendtasklabelinfo.BatchSendTaskLabelInfoMapper; +import com.xinelu.manage.service.batchsendtasklabelinfo.IBatchSendTaskLabelInfoService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 批量推送任务标签信息表Service业务层处理 + * + * @author xinelu + * @date 2026-04-29 + */ +@Service +public class BatchSendTaskLabelInfoServiceImpl implements IBatchSendTaskLabelInfoService { + @Resource + private BatchSendTaskLabelInfoMapper batchSendTaskLabelInfoMapper; + + /** + * 查询批量推送任务标签信息表 + * + * @param id 批量推送任务标签信息表主键 + * @return 批量推送任务标签信息表 + */ + @Override + public BatchSendTaskLabelInfo selectBatchSendTaskLabelInfoById(Long id) { + return batchSendTaskLabelInfoMapper.selectBatchSendTaskLabelInfoById(id); + } + + /** + * 查询批量推送任务标签信息表列表 + * + * @param batchSendTaskLabelInfo 批量推送任务标签信息表 + * @return 批量推送任务标签信息表 + */ + @Override + public List selectBatchSendTaskLabelInfoList(BatchSendTaskLabelInfo batchSendTaskLabelInfo) { + return batchSendTaskLabelInfoMapper.selectBatchSendTaskLabelInfoList(batchSendTaskLabelInfo); + } + + /** + * 新增批量推送任务标签信息表 + * + * @param batchSendTaskLabelInfo 批量推送任务标签信息表 + * @return 结果 + */ + @Override + public int insertBatchSendTaskLabelInfo(BatchSendTaskLabelInfo batchSendTaskLabelInfo) { + return batchSendTaskLabelInfoMapper.insertBatchSendTaskLabelInfo(batchSendTaskLabelInfo); + } + + /** + * 修改批量推送任务标签信息表 + * + * @param batchSendTaskLabelInfo 批量推送任务标签信息表 + * @return 结果 + */ + @Override + public int updateBatchSendTaskLabelInfo(BatchSendTaskLabelInfo batchSendTaskLabelInfo) { + return batchSendTaskLabelInfoMapper.updateBatchSendTaskLabelInfo(batchSendTaskLabelInfo); + } + + /** + * 批量删除批量推送任务标签信息表 + * + * @param ids 需要删除的批量推送任务标签信息表主键 + * @return 结果 + */ + @Override + public int deleteBatchSendTaskLabelInfoByIds(Long[] ids) { + return batchSendTaskLabelInfoMapper.deleteBatchSendTaskLabelInfoByIds(ids); + } + + /** + * 删除批量推送任务标签信息表信息 + * + * @param id 批量推送任务标签信息表主键 + * @return 结果 + */ + @Override + public int deleteBatchSendTaskLabelInfoById(Long id) { + return batchSendTaskLabelInfoMapper.deleteBatchSendTaskLabelInfoById(id); + } +} 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 e4da3fb7..6677c4a6 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 @@ -1554,7 +1554,7 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout /** - * 发送短信 + * 发送短信(无变量) */ @Override public Boolean sendSms(SmsInfoDTO smsInfoDTO) throws ClientException, ServiceException { diff --git a/postdischarge-manage/src/main/resources/mapper/manage/batchsendtaskinfo/BatchSendTaskInfoMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/batchsendtaskinfo/BatchSendTaskInfoMapper.xml index a6364eb0..7eb87c0d 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/batchsendtaskinfo/BatchSendTaskInfoMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/batchsendtaskinfo/BatchSendTaskInfoMapper.xml @@ -118,7 +118,7 @@ and physical_examination_summary = #{physicalExaminationSummary} - and physical_examination_label = #{physicalExaminationLabel} + and physical_examination_label like concat('%', #{physicalExaminationLabel}, '%') @@ -342,7 +342,7 @@ ( #{BatchSendTaskInfo.orderNum}, #{BatchSendTaskInfo.sn}, - #{BatchSendTaskInfo.importname}, + #{BatchSendTaskInfo.importName}, #{BatchSendTaskInfo.teamName}, #{BatchSendTaskInfo.hospitalAgencyId}, #{BatchSendTaskInfo.hospitalAgencyName}, diff --git a/postdischarge-manage/src/main/resources/mapper/manage/batchsendtasklabelinfo/BatchSendTaskLabelInfoMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/batchsendtasklabelinfo/BatchSendTaskLabelInfoMapper.xml new file mode 100644 index 00000000..28c55c63 --- /dev/null +++ b/postdischarge-manage/src/main/resources/mapper/manage/batchsendtasklabelinfo/BatchSendTaskLabelInfoMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + select id, physical_examination_label + from batch_send_task_label_info + + + + + + + + insert into batch_send_task_label_info + + physical_examination_label, + + + + #{physicalExaminationLabel}, + + + + + + update batch_send_task_label_info + + physical_examination_label = + #{physicalExaminationLabel}, + + + where id = #{id} + + + + delete + from batch_send_task_label_info + where id = #{id} + + + + delete from batch_send_task_label_info where id in + + #{id} + + + + + + insert into batch_send_task_label_info( + physical_examination_label + ) + values + + (#{label}) + + + \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/scriptInfo/ScriptInfoMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/scriptInfo/ScriptInfoMapper.xml index 55ae49e3..8135a88d 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/scriptInfo/ScriptInfoMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/scriptInfo/ScriptInfoMapper.xml @@ -365,4 +365,8 @@ + + \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml index aaa11fbe..28b90a95 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml @@ -564,7 +564,7 @@ - + insert into sign_patient_manage_route_node(manage_route_id, manage_route_name, route_node_id, route_node_name,route_node_day,sn,dial_status,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,