批量任务
This commit is contained in:
parent
bbe1efc28a
commit
07c54ef256
Binary file not shown.
@ -220,10 +220,15 @@ public class Constants {
|
|||||||
public static final String OUTPATIENT = "outpatient";
|
public static final String OUTPATIENT = "outpatient";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 门诊患者
|
* 患者导入
|
||||||
*/
|
*/
|
||||||
public static final String PATIENT_INFO_IMPORT = "patientInfoImport";
|
public static final String PATIENT_INFO_IMPORT = "patientInfoImport";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 患者导入
|
||||||
|
*/
|
||||||
|
public static final String BATCH_SEND_TASK_INFO = "batchSendTaskInfo";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 预住院
|
* 预住院
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -117,4 +117,10 @@ public class BatchSendTaskInfoController extends BaseController {
|
|||||||
public AjaxResult batchSend(@RequestBody BatchSendTaskRecordDto batchSendTaskRecordDto) throws Exception {
|
public AjaxResult batchSend(@RequestBody BatchSendTaskRecordDto batchSendTaskRecordDto) throws Exception {
|
||||||
return batchSendTaskInfoService.batchSend(batchSendTaskRecordDto);
|
return batchSendTaskInfoService.batchSend(batchSendTaskRecordDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("标签信息")
|
||||||
|
@GetMapping("/getPhysicalExaminationLabel")
|
||||||
|
public List<String> getPhysicalExaminationLabel(){
|
||||||
|
return batchSendTaskInfoService.getPhysicalExaminationLabel();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -73,6 +73,9 @@ public class ImportDownloadController {
|
|||||||
// 通过流讲文件复制到file中
|
// 通过流讲文件复制到file中
|
||||||
FileUtils.copyToFile(resource.getInputStream(), file);
|
FileUtils.copyToFile(resource.getInputStream(), file);
|
||||||
break;
|
break;
|
||||||
|
case Constants.BATCH_SEND_TASK_INFO:
|
||||||
|
file = ResourceUtils.getFile("classpath:template/批量发送任务信息.xlsx");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (Objects.isNull(file)) {
|
if (Objects.isNull(file)) {
|
||||||
throw new ServiceException("下载导入模板文件失败,请联系管理员!");
|
throw new ServiceException("下载导入模板文件失败,请联系管理员!");
|
||||||
|
|||||||
@ -92,10 +92,10 @@ public class BatchSendTaskInfo extends BaseEntity {
|
|||||||
private Date visitDate;
|
private Date visitDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 门诊/住院/体检号
|
* 体检/门诊/住院号
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "门诊/住院/体检号")
|
@ApiModelProperty(value = "体检/门诊/住院号")
|
||||||
@Excel(name = "门诊/住院/体检号")
|
@Excel(name = "体检/门诊/住院号")
|
||||||
private String inHospitalNumber;
|
private String inHospitalNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -106,10 +106,10 @@ public class BatchSendTaskInfo extends BaseEntity {
|
|||||||
private String patientName;
|
private String patientName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 患者电话
|
* 联系电话
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "患者电话")
|
@ApiModelProperty(value = "联系电话")
|
||||||
@Excel(name = "电话")
|
@Excel(name = "联系电话")
|
||||||
private String patientPhone;
|
private String patientPhone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -150,7 +150,7 @@ public class BatchSendTaskInfo extends BaseEntity {
|
|||||||
* 体检总结/主要诊断
|
* 体检总结/主要诊断
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "体检总结/主要诊断")
|
@ApiModelProperty(value = "体检总结/主要诊断")
|
||||||
@Excel(name = "体检总结/主要诊断")
|
@Excel(name = "总检结论")
|
||||||
private String physicalExaminationSummary;
|
private String physicalExaminationSummary;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -47,6 +47,11 @@ public class BatchSendTaskVariableInfo extends BaseEntity {
|
|||||||
@ApiModelProperty(value = "批量推送任务记录表id")
|
@ApiModelProperty(value = "批量推送任务记录表id")
|
||||||
private Long batchSendTaskRecordId;
|
private Long batchSendTaskRecordId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量推送任务表id
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "批量推送任务表id")
|
||||||
|
private Long batchSendTaskId;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
@ -55,6 +60,7 @@ public class BatchSendTaskVariableInfo extends BaseEntity {
|
|||||||
.append("variable", getVariable())
|
.append("variable", getVariable())
|
||||||
.append("variableAttribute", getVariableAttribute())
|
.append("variableAttribute", getVariableAttribute())
|
||||||
.append("batchSendTaskRecordId", getBatchSendTaskRecordId())
|
.append("batchSendTaskRecordId", getBatchSendTaskRecordId())
|
||||||
|
.append("batchSendTaskId", getBatchSendTaskId())
|
||||||
.append("createBy", getCreateBy())
|
.append("createBy", getCreateBy())
|
||||||
.append("createTime", getCreateTime())
|
.append("createTime", getCreateTime())
|
||||||
.toString();
|
.toString();
|
||||||
|
|||||||
@ -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<BatchSendTaskLabelInfo> 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<String> labels);
|
||||||
|
}
|
||||||
@ -88,4 +88,12 @@ public interface ScriptInfoMapper {
|
|||||||
* @return 话术信息集合
|
* @return 话术信息集合
|
||||||
*/
|
*/
|
||||||
List<ScriptInfo> selectScriptInfos();
|
List<ScriptInfo> selectScriptInfos();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据机器人编号查询变量信息
|
||||||
|
*
|
||||||
|
* @param robotPublishId
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String selectVariablesByRobotPublishId(String robotPublishId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import com.alibaba.fastjson2.JSON;
|
|||||||
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.aliyuncs.exceptions.ClientException;
|
import com.aliyuncs.exceptions.ClientException;
|
||||||
import com.sun.media.jfxmedia.logging.Logger;
|
|
||||||
import com.xinelu.common.config.AliYunSmsTwoConfig;
|
import com.xinelu.common.config.AliYunSmsTwoConfig;
|
||||||
import com.xinelu.common.config.SystemBusinessConfig;
|
import com.xinelu.common.config.SystemBusinessConfig;
|
||||||
import com.xinelu.common.constant.*;
|
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.enums.*;
|
||||||
import com.xinelu.common.exception.ServiceException;
|
import com.xinelu.common.exception.ServiceException;
|
||||||
import com.xinelu.common.utils.StringUtils;
|
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.patientinfo.PatientInfo;
|
||||||
import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult;
|
import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult;
|
||||||
import com.xinelu.manage.domain.patientquestionsubjectresult.PatientQuestionSubjectResult;
|
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.aiob.*;
|
||||||
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO;
|
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO;
|
||||||
import com.xinelu.manage.dto.smssend.SmsInfoDTO;
|
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.labelfieldcontent.LabelFieldContentMapper;
|
||||||
import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper;
|
import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper;
|
||||||
import com.xinelu.manage.mapper.patientquestionoptionresult.PatientQuestionOptionResultMapper;
|
import com.xinelu.manage.mapper.patientquestionoptionresult.PatientQuestionOptionResultMapper;
|
||||||
@ -143,6 +144,8 @@ public class AIOBServiceImpl implements IAIOBService {
|
|||||||
private ScriptInfoTaskInfoMapper scriptInfoTaskInfoMapper;
|
private ScriptInfoTaskInfoMapper scriptInfoTaskInfoMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private PatientVisitRecordMapper patientVisitRecordMapper;
|
private PatientVisitRecordMapper patientVisitRecordMapper;
|
||||||
|
@Resource
|
||||||
|
private BatchSendTaskInfoMapper batchSendTaskInfoMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 获取外呼平台accessToken
|
* @description 获取外呼平台accessToken
|
||||||
@ -366,7 +369,6 @@ public class AIOBServiceImpl implements IAIOBService {
|
|||||||
signPatientManageRouteNode.setNodeFinishStatus(NodeExecuteResultStatusEnum.FAILURE.getInfo());
|
signPatientManageRouteNode.setNodeFinishStatus(NodeExecuteResultStatusEnum.FAILURE.getInfo());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
signPatientManageRouteNode.setPhoneNodeExecuteResultStatus(NodeExecuteResultStatusEnum.SUCCESS.getInfo());
|
signPatientManageRouteNode.setPhoneNodeExecuteResultStatus(NodeExecuteResultStatusEnum.SUCCESS.getInfo());
|
||||||
@ -398,24 +400,25 @@ public class AIOBServiceImpl implements IAIOBService {
|
|||||||
patientTaskExecuteRecord.setPatientId(signPatientManageRoute.getPatientId());
|
patientTaskExecuteRecord.setPatientId(signPatientManageRoute.getPatientId());
|
||||||
patientTaskExecuteRecord.setPatientName(signPatientManageRoute.getPatientName());
|
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)) {
|
if (ObjectUtils.isNotEmpty(signPatientRecord)) {
|
||||||
patientTaskExecuteRecord.setVisitRecordId(signPatientRecord.getPatientVisitRecordId());
|
patientTaskExecuteRecord.setVisitRecordId(signPatientRecord.getPatientVisitRecordId());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送短信
|
// 发送短信
|
||||||
if (needSendSms) {
|
if (needSendSms) {
|
||||||
//System.out.println("发送短信-------------------------------------------");
|
sendSms(signPatientManageRoute.getPatientId(), signPatientManageRouteNode, signPatientManageRoute.getBatchSendTaskId());
|
||||||
sendSms(signPatientManageRoute.getPatientId(), signPatientManageRouteNode);
|
|
||||||
}
|
}
|
||||||
// 重拨
|
// 重拨
|
||||||
if (needRedial) {
|
if (needRedial) {
|
||||||
if (ObjectUtils.isNotEmpty(signPatientRecord)) {
|
if (ObjectUtils.isNotEmpty(signPatientRecord)) {
|
||||||
PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.selectPatientVisitRecordById(signPatientRecord.getPatientVisitRecordId());
|
PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.selectPatientVisitRecordById(signPatientRecord.getPatientVisitRecordId());
|
||||||
redialInfoSave(signPatientManageRouteNode, patientVisitRecord);
|
redialInfoSave(signPatientManageRouteNode, patientVisitRecord);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
redialInfoSave(signPatientManageRouteNode, null);
|
redialInfoSave(signPatientManageRouteNode, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -445,11 +448,13 @@ public class AIOBServiceImpl implements IAIOBService {
|
|||||||
|
|
||||||
phoneDialRecordMapper.insertPhoneDialRecord(phoneDialRecord);
|
phoneDialRecordMapper.insertPhoneDialRecord(phoneDialRecord);
|
||||||
|
|
||||||
// 修改任务统计表数据
|
// 修改任务统计表数据 添加getPatientId判断针对batch_send_task_info表未签约未存patient_info表处理
|
||||||
if (patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord) > 0) {
|
if (Objects.nonNull(patientTaskExecuteRecord.getPatientId()) && patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord) > 0) {
|
||||||
// 任务统计表修改
|
// 任务统计表修改
|
||||||
|
if (Objects.nonNull(signPatientManageRoute.getPatientId())){
|
||||||
patientTaskStatisticsService.updateNum(signPatientManageRoute.getPatientId(), TaskStatisticsTypeConstants.TASK_EXECUTE_NUM, 1);
|
patientTaskStatisticsService.updateNum(signPatientManageRoute.getPatientId(), TaskStatisticsTypeConstants.TASK_EXECUTE_NUM, 1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//接通状态,1-已接通
|
//接通状态,1-已接通
|
||||||
if (data.getEndType() != null && data.getEndType() == 1) {
|
if (data.getEndType() != null && data.getEndType() == 1) {
|
||||||
@ -503,12 +508,21 @@ public class AIOBServiceImpl implements IAIOBService {
|
|||||||
return obj.getOrDefault("downloadUrl", null).toString();
|
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());
|
TextMessage textMessage = textMessageMapper.selectTextMessageById(signPatientManageRouteNode.getPhoneMessageTemplateId());
|
||||||
if (ObjectUtils.isNotEmpty(textMessage)) {
|
if (ObjectUtils.isNotEmpty(textMessage)) {
|
||||||
// 发送短信
|
// 发送短信
|
||||||
SmsInfoDTO smsInfoDTO = new SmsInfoDTO();
|
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.setPhoneNumbers(patientPhone);
|
||||||
smsInfoDTO.setSignName(aliYunSmsTwoConfig.getSignName());
|
smsInfoDTO.setSignName(aliYunSmsTwoConfig.getSignName());
|
||||||
smsInfoDTO.setTemplateCode(textMessage.getTextMessageId());
|
smsInfoDTO.setTemplateCode(textMessage.getTextMessageId());
|
||||||
|
|||||||
@ -79,5 +79,12 @@ public interface IBatchSendTaskInfoService {
|
|||||||
* @return AjaxResult
|
* @return AjaxResult
|
||||||
* @throws ClientException
|
* @throws ClientException
|
||||||
*/
|
*/
|
||||||
AjaxResult batchSend(BatchSendTaskRecordDto batchSendTaskRecordDto) throws ClientException;
|
AjaxResult batchSend(BatchSendTaskRecordDto batchSendTaskRecordDto) throws ClientException, IllegalAccessException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 搜素框添加 标签信息
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
List<String> getPhysicalExaminationLabel();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import com.xinelu.common.utils.SecurityUtils;
|
|||||||
import com.xinelu.common.utils.regex.RegexUtil;
|
import com.xinelu.common.utils.regex.RegexUtil;
|
||||||
import com.xinelu.manage.domain.agency.Agency;
|
import com.xinelu.manage.domain.agency.Agency;
|
||||||
import com.xinelu.manage.domain.batchsendtaskinfo.BatchSendTaskInfo;
|
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.batchsendtaskrecordinfo.BatchSendTaskRecordInfo;
|
||||||
import com.xinelu.manage.domain.batchsendtaskvariableinfo.BatchSendTaskVariableInfo;
|
import com.xinelu.manage.domain.batchsendtaskvariableinfo.BatchSendTaskVariableInfo;
|
||||||
import com.xinelu.manage.domain.dialtime.DialTime;
|
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.dto.smssend.SmsInfoDTO;
|
||||||
import com.xinelu.manage.mapper.agency.AgencyMapper;
|
import com.xinelu.manage.mapper.agency.AgencyMapper;
|
||||||
import com.xinelu.manage.mapper.batchsendtaskinfo.BatchSendTaskInfoMapper;
|
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.batchsendtaskrecordinfo.BatchSendTaskRecordInfoMapper;
|
||||||
import com.xinelu.manage.mapper.batchsendtaskvariableinfo.BatchSendTaskVariableInfoMapper;
|
import com.xinelu.manage.mapper.batchsendtaskvariableinfo.BatchSendTaskVariableInfoMapper;
|
||||||
import com.xinelu.manage.mapper.patientinfoimportmain.PatientInfoImportMainMapper;
|
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.signpatientmanageroute.SignPatientManageRouteMapper;
|
||||||
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
|
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
|
||||||
import com.xinelu.manage.service.aiob.IAIOBService;
|
import com.xinelu.manage.service.aiob.IAIOBService;
|
||||||
@ -46,12 +49,14 @@ import com.xinelu.system.mapper.SysUserMapper;
|
|||||||
import com.xinelu.system.service.ISysDictTypeService;
|
import com.xinelu.system.service.ISysDictTypeService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.collections4.ListUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
@ -95,6 +100,11 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
private String callBackUrl;
|
private String callBackUrl;
|
||||||
@Resource
|
@Resource
|
||||||
private AliYunSmsConfig aliyunSmsConfig;
|
private AliYunSmsConfig aliyunSmsConfig;
|
||||||
|
@Resource
|
||||||
|
private BatchSendTaskLabelInfoMapper batchSendTaskLabelInfoMapper;
|
||||||
|
@Resource
|
||||||
|
private ScriptInfoMapper scriptInfoMapper;
|
||||||
|
|
||||||
private static final String SUCCESS = "OK";
|
private static final String SUCCESS = "OK";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -182,6 +192,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
return AjaxResult.error("该账号无所属医院信息,请先配置该账号所属的医院信息!");
|
return AjaxResult.error("该账号无所属医院信息,请先配置该账号所属的医院信息!");
|
||||||
}
|
}
|
||||||
String sn = "batch_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
|
String sn = "batch_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
|
||||||
|
List<String> stringList = new ArrayList<>();
|
||||||
for (BatchSendTaskInfo batchSendTaskInfo : list) {
|
for (BatchSendTaskInfo batchSendTaskInfo : list) {
|
||||||
batchSendTaskInfo.setSn(sn);
|
batchSendTaskInfo.setSn(sn);
|
||||||
batchSendTaskInfo.setHospitalAgencyId(agency.getId());
|
batchSendTaskInfo.setHospitalAgencyId(agency.getId());
|
||||||
@ -198,12 +209,21 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(batchSendTaskInfo.getPhysicalExaminationSummary())) {
|
if (StringUtils.isNotBlank(batchSendTaskInfo.getPhysicalExaminationSummary())) {
|
||||||
String[] strings = BracketExtractor.extractToArray(batchSendTaskInfo.getPhysicalExaminationSummary());
|
String[] strings = BracketExtractor.extractToArray(batchSendTaskInfo.getPhysicalExaminationSummary());
|
||||||
|
stringList.addAll(Arrays.asList(strings));
|
||||||
batchSendTaskInfo.setPhysicalExaminationLabel(Arrays.toString(strings));
|
batchSendTaskInfo.setPhysicalExaminationLabel(Arrays.toString(strings));
|
||||||
if (batchSendTaskInfo.getPhysicalExaminationSummary().length() > 999) {
|
if (batchSendTaskInfo.getPhysicalExaminationSummary().length() > 999) {
|
||||||
batchSendTaskInfo.setPhysicalExaminationSummary(batchSendTaskInfo.getPhysicalExaminationSummary().substring(0, 999));
|
batchSendTaskInfo.setPhysicalExaminationSummary(batchSendTaskInfo.getPhysicalExaminationSummary().substring(0, 999));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//处理标签
|
||||||
|
List<BatchSendTaskLabelInfo> batchSendTaskLabelInfos = batchSendTaskLabelInfoMapper.selectBatchSendTaskLabelInfoList(null);
|
||||||
|
List<String> data = batchSendTaskLabelInfos.stream().filter(Objects::nonNull).map(BatchSendTaskLabelInfo::getPhysicalExaminationLabel).collect(Collectors.toList());
|
||||||
|
List<String> collect1 = stringList.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
||||||
|
List<String> subtract = ListUtils.subtract(collect1, data);
|
||||||
|
if (CollectionUtils.isNotEmpty(subtract)) {
|
||||||
|
batchSendTaskLabelInfoMapper.insertBatchSendTaskLabelInfList(subtract);
|
||||||
|
}
|
||||||
batchSendTaskInfoMapper.insertBatchSendTaskInfoList(list);
|
batchSendTaskInfoMapper.insertBatchSendTaskInfoList(list);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
@ -216,9 +236,12 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
* @throws ClientException
|
* @throws ClientException
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult batchSend(BatchSendTaskRecordDto batchSendTaskRecordDto) throws ClientException {
|
public AjaxResult batchSend(BatchSendTaskRecordDto batchSendTaskRecordDto) throws ClientException, IllegalAccessException {
|
||||||
|
log.info("开始创建批量推送任务---------------");
|
||||||
|
//新增批量推送任务记录
|
||||||
BatchSendTaskRecordInfo batchSendTaskRecordInfo = new BatchSendTaskRecordInfo();
|
BatchSendTaskRecordInfo batchSendTaskRecordInfo = new BatchSendTaskRecordInfo();
|
||||||
batchSendTaskRecordInfo.setBatchTaskName(batchSendTaskRecordDto.getManageRouteName());
|
batchSendTaskRecordInfo.setBatchTaskName(batchSendTaskRecordDto.getManageRouteName());
|
||||||
|
//新增批量推送任务记录编号
|
||||||
String batchTaskNumber = null;
|
String batchTaskNumber = null;
|
||||||
if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.MESSAGE.getInfo())) {
|
if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.MESSAGE.getInfo())) {
|
||||||
batchTaskNumber = "hkqdermyy_message_batch" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
|
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"));
|
batchTaskNumber = "hkqdermyy_phone_batch" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
|
||||||
batchSendTaskRecordInfo.setTemplateId(batchSendTaskRecordDto.getPhoneTemplateId());
|
batchSendTaskRecordInfo.setTemplateId(batchSendTaskRecordDto.getPhoneTemplateId());
|
||||||
batchSendTaskRecordInfo.setTemplateName(batchSendTaskRecordDto.getPhoneTemplateName());
|
batchSendTaskRecordInfo.setTemplateName(batchSendTaskRecordDto.getPhoneTemplateName());
|
||||||
batchSendTaskRecordInfo.setRobotPublishId(batchSendTaskRecordInfo.getRobotPublishId());
|
batchSendTaskRecordInfo.setRobotPublishId(batchSendTaskRecordDto.getRobotPublishId());
|
||||||
}
|
}
|
||||||
batchSendTaskRecordInfo.setBatchTaskNumber(batchTaskNumber);
|
batchSendTaskRecordInfo.setBatchTaskNumber(batchTaskNumber);
|
||||||
batchSendTaskRecordInfo.setTaskExecuteType(TaskExcuteTypeEnum.BATCH_TASK.getInfo());
|
batchSendTaskRecordInfo.setTaskExecuteType(TaskExcuteTypeEnum.BATCH_TASK.getInfo());
|
||||||
@ -238,14 +261,15 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
batchSendTaskRecordInfo.setCreateBy(SecurityUtils.getUsername());
|
batchSendTaskRecordInfo.setCreateBy(SecurityUtils.getUsername());
|
||||||
batchSendTaskRecordInfo.setBatchTaskSource(batchSendTaskRecordDto.getBatchTaskSource());
|
batchSendTaskRecordInfo.setBatchTaskSource(batchSendTaskRecordDto.getBatchTaskSource());
|
||||||
batchSendTaskRecordInfo.setCreateTime(LocalDateTime.now());
|
batchSendTaskRecordInfo.setCreateTime(LocalDateTime.now());
|
||||||
|
batchSendTaskRecordInfo.setPhysicalExaminationLabel(batchSendTaskRecordDto.getPhysicalExaminationLabel());
|
||||||
int insertBatchSendTaskRecord = batchSendTaskRecordInfoMapper.insertBatchSendTaskRecordInfo(batchSendTaskRecordInfo);
|
int insertBatchSendTaskRecord = batchSendTaskRecordInfoMapper.insertBatchSendTaskRecordInfo(batchSendTaskRecordInfo);
|
||||||
if (insertBatchSendTaskRecord <= 0) {
|
if (insertBatchSendTaskRecord <= 0) {
|
||||||
log.info("新增批量推送任务记录失败");
|
log.info("新增批量推送任务记录失败");
|
||||||
return AjaxResult.error("上传任务失败!请联系管理员!");
|
return AjaxResult.error("上传任务失败!请联系管理员!");
|
||||||
}
|
}
|
||||||
//保存变量
|
//保存短信变量
|
||||||
if (Objects.nonNull(batchSendTaskRecordDto.getVars())) {
|
|
||||||
List<BatchSendTaskVariableInfo> batchSendTaskVariableInfos = new ArrayList<>();
|
List<BatchSendTaskVariableInfo> batchSendTaskVariableInfos = new ArrayList<>();
|
||||||
|
if (Objects.nonNull(batchSendTaskRecordDto.getVars()) && batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.MESSAGE.getInfo())) {
|
||||||
Set<String> keys = batchSendTaskRecordDto.getVars().keySet();
|
Set<String> keys = batchSendTaskRecordDto.getVars().keySet();
|
||||||
for (String key : keys) {
|
for (String key : keys) {
|
||||||
BatchSendTaskVariableInfo batchSendTaskVariableInfo = new BatchSendTaskVariableInfo();
|
BatchSendTaskVariableInfo batchSendTaskVariableInfo = new BatchSendTaskVariableInfo();
|
||||||
@ -256,13 +280,15 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
batchSendTaskRecordInfo.setCreateTime(LocalDateTime.now());
|
batchSendTaskRecordInfo.setCreateTime(LocalDateTime.now());
|
||||||
batchSendTaskVariableInfos.add(batchSendTaskVariableInfo);
|
batchSendTaskVariableInfos.add(batchSendTaskVariableInfo);
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isNotEmpty(batchSendTaskVariableInfos)) {
|
|
||||||
batchSendTaskVariableInfoMapper.insertBatchSendTaskVariableInfos(batchSendTaskVariableInfos);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
List<SignPatientManageRoute> signPatientManageRoutes = new ArrayList<>();
|
List<SignPatientManageRoute> signPatientManageRoutes = new ArrayList<>();
|
||||||
List<SignPatientManageRouteNode> signPatientManageRouteNodes = new ArrayList<>();
|
List<SignPatientManageRouteNode> signPatientManageRouteNodes = new ArrayList<>();
|
||||||
List<ShortMessageSendRecord> shortMessageSendRecords = new ArrayList<>();
|
List<ShortMessageSendRecord> 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()) {
|
for (BatchSendTaskInfo batchSendTaskInfo : batchSendTaskRecordDto.getList()) {
|
||||||
//节点主表
|
//节点主表
|
||||||
SignPatientManageRoute signPatientManageRoute = new SignPatientManageRoute();
|
SignPatientManageRoute signPatientManageRoute = new SignPatientManageRoute();
|
||||||
@ -320,12 +346,38 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
shortMessageSendRecord.setMessageNodeContent(batchSendTaskRecordDto.getMessageNodeContent());
|
shortMessageSendRecord.setMessageNodeContent(batchSendTaskRecordDto.getMessageNodeContent());
|
||||||
shortMessageSendRecord.setCreateTime(LocalDateTime.now());
|
shortMessageSendRecord.setCreateTime(LocalDateTime.now());
|
||||||
shortMessageSendRecords.add(shortMessageSendRecord);
|
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);
|
signPatientManageRouteMapper.insertBatch(signPatientManageRoutes);
|
||||||
for (int i = 0; i < signPatientManageRouteNodes.size(); i++) {
|
for (int i = 0; i < signPatientManageRouteNodes.size(); i++) {
|
||||||
signPatientManageRouteNodes.get(i).setManageRouteId(signPatientManageRoutes.get(i).getId());
|
signPatientManageRouteNodes.get(i).setManageRouteId(signPatientManageRoutes.get(i).getId());
|
||||||
}
|
}
|
||||||
signPatientManageRouteNodeMapper.insertBatch(signPatientManageRouteNodes);
|
signPatientManageRouteNodeMapper.insertBatch(signPatientManageRouteNodes);
|
||||||
|
if (CollectionUtils.isNotEmpty(batchSendTaskVariableInfos)) {
|
||||||
|
batchSendTaskVariableInfoMapper.insertBatchSendTaskVariableInfos(batchSendTaskVariableInfos);
|
||||||
|
}
|
||||||
if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.TELEPHONE.getInfo())) {
|
if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.TELEPHONE.getInfo())) {
|
||||||
SysUser sysUser = sysUserMapper.selectUserById(SecurityUtils.getUserId());
|
SysUser sysUser = sysUserMapper.selectUserById(SecurityUtils.getUserId());
|
||||||
Agency agency = agencyMapper.selectAgencyById(sysUser.getHospitalAgencyId());
|
Agency agency = agencyMapper.selectAgencyById(sysUser.getHospitalAgencyId());
|
||||||
@ -355,7 +407,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
if (dateEndTime.isBefore(localEndTime)) {
|
if (dateEndTime.isBefore(localEndTime)) {
|
||||||
localEndTime = dateEndTime;
|
localEndTime = dateEndTime;
|
||||||
}
|
}
|
||||||
log.info("开始创建批量电话推送任务---------------");
|
log.info("创建批量电话推送任务---------------");
|
||||||
CreateTaskDto createTaskDto = new CreateTaskDto();
|
CreateTaskDto createTaskDto = new CreateTaskDto();
|
||||||
//临时重复测试用,
|
//临时重复测试用,
|
||||||
String taskName = batchTaskNumber + "-" + batchSendTaskRecordDto.getPhoneTemplateName();
|
String taskName = batchTaskNumber + "-" + batchSendTaskRecordDto.getPhoneTemplateName();
|
||||||
@ -386,19 +438,19 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
List<CustomerInfoDto> customerInfoList = new ArrayList<>();
|
List<CustomerInfoDto> customerInfoList = new ArrayList<>();
|
||||||
signPatientManageRouteNodes.forEach(node -> {
|
signPatientManageRouteNodes.forEach(node -> {
|
||||||
CustomerInfoDto customerInfoDto = new CustomerInfoDto();
|
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());
|
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());
|
BatchSendTaskInfo batchSendTaskInfo = batchSendTaskRecordDto.getList().stream().filter(Objects::nonNull).filter(item -> item.getId().equals(signPatientManageRoute.getBatchSendTaskId())).findFirst().orElse(new BatchSendTaskInfo());
|
||||||
|
List<BatchSendTaskVariableInfo> batchSendTaskVariableList = batchSendTaskVariableInfos.stream().filter(Objects::nonNull).filter(item -> item.getBatchSendTaskId().equals(batchSendTaskInfo.getId())).collect(Collectors.toList());
|
||||||
//校验手机号
|
//校验手机号
|
||||||
if (StringUtils.isNotBlank(batchSendTaskInfo.getPatientPhone())) {
|
if (StringUtils.isNotBlank(batchSendTaskInfo.getPatientPhone())) {
|
||||||
if (regexUtil.regexPhone(batchSendTaskInfo.getPatientPhone())) {
|
if (regexUtil.regexPhone(batchSendTaskInfo.getPatientPhone())) {
|
||||||
customerInfoDto.setMobile(batchSendTaskInfo.getPatientPhone());
|
customerInfoDto.setMobile(batchSendTaskInfo.getPatientPhone());
|
||||||
// 处理变量
|
// 处理变量
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
if (Objects.nonNull(batchSendTaskRecordDto.getVars())) {
|
if (CollectionUtils.isNotEmpty(batchSendTaskVariableList)) {
|
||||||
Set<String> keys = batchSendTaskRecordDto.getVars().keySet();
|
batchSendTaskVariableList.forEach(variable -> {
|
||||||
keys.forEach(variable -> {
|
jsonObject.fluentPut(variable.getVariable(), ObjectUtils.isEmpty(variable.getVariableAttribute()) ? "" : variable.getVariableAttribute());
|
||||||
jsonObject.fluentPut(variable, ObjectUtils.isEmpty(batchSendTaskRecordDto.getVars().get(variable)) ? "" : batchSendTaskRecordDto.getVars().get(variable));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
customerInfoDto.setVar(jsonObject);
|
customerInfoDto.setVar(jsonObject);
|
||||||
@ -418,6 +470,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
return AjaxResult.success("创建批量电话推送任务执行完成");
|
return AjaxResult.success("创建批量电话推送任务执行完成");
|
||||||
}
|
}
|
||||||
if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.MESSAGE.getInfo())) {
|
if (batchSendTaskRecordDto.getBatchTaskSource().equals(BillSourceEnum.MESSAGE.getInfo())) {
|
||||||
|
log.info("创建批量短信推送任务---------------");
|
||||||
SmsInfoDTO smsInfoDTO = new SmsInfoDTO();
|
SmsInfoDTO smsInfoDTO = new SmsInfoDTO();
|
||||||
List<String> phones = batchSendTaskRecordDto.getList().stream().filter(Objects::nonNull).map(BatchSendTaskInfo::getPatientPhone).distinct().collect(Collectors.toList());
|
List<String> phones = batchSendTaskRecordDto.getList().stream().filter(Objects::nonNull).map(BatchSendTaskInfo::getPatientPhone).distinct().collect(Collectors.toList());
|
||||||
String phoneString = String.join(",", phones);
|
String phoneString = String.join(",", phones);
|
||||||
@ -426,32 +479,42 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
// 处理变量
|
// 处理变量
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
if (Objects.nonNull(batchSendTaskRecordDto.getVars())) {
|
if (Objects.nonNull(batchSendTaskRecordDto.getVars())) {
|
||||||
Set<String> keys = batchSendTaskRecordDto.getVars().keySet();
|
Set<String> keySet = batchSendTaskRecordDto.getVars().keySet();
|
||||||
keys.forEach(variable -> {
|
keySet.forEach(variable -> {
|
||||||
jsonObject.fluentPut(variable, ObjectUtils.isEmpty(batchSendTaskRecordDto.getVars().get(variable)) ? "" : batchSendTaskRecordDto.getVars().get(variable));
|
jsonObject.fluentPut(variable, ObjectUtils.isEmpty(batchSendTaskRecordDto.getVars().get(variable)) ? "" : batchSendTaskRecordDto.getVars().get(variable));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
smsInfoDTO.setTemplateParam(jsonObject);
|
smsInfoDTO.setTemplateParam(jsonObject);
|
||||||
// 根据模版id发送
|
// 根据模版id发送
|
||||||
smsInfoDTO.setTemplateCode(batchSendTaskRecordDto.getMessageTemplateCode());
|
smsInfoDTO.setTemplateCode(batchSendTaskRecordDto.getMessageTemplateCode());
|
||||||
|
smsInfoDTO.setOutId(batchSendTaskRecordInfo.getId().toString());
|
||||||
Boolean aBoolean = sendSms(smsInfoDTO);
|
Boolean aBoolean = sendSms(smsInfoDTO);
|
||||||
if (!aBoolean) {
|
if (!aBoolean) {
|
||||||
return AjaxResult.error("短信发送失败");
|
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());
|
|
||||||
}
|
}
|
||||||
//发送记录批量
|
//发送记录批量
|
||||||
log.info("创建批量电信推送任务执行完成......");
|
log.info("创建批量短信推送任务执行完成......");
|
||||||
return AjaxResult.success("短信发送成功");
|
return AjaxResult.success("短信上传成功");
|
||||||
}
|
}
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单{code}替换值,发送短信
|
* 搜素框添加 标签信息
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<String> getPhysicalExaminationLabel() {
|
||||||
|
List<BatchSendTaskLabelInfo> 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 {
|
public Boolean sendSms(SmsInfoDTO smsInfoDTO) throws ClientException, ServiceException {
|
||||||
try {
|
try {
|
||||||
@ -484,7 +547,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService {
|
|||||||
request.setSignName(smsInfoDTO.getSignName());
|
request.setSignName(smsInfoDTO.getSignName());
|
||||||
request.setTemplateCode(smsInfoDTO.getTemplateCode());
|
request.setTemplateCode(smsInfoDTO.getTemplateCode());
|
||||||
request.setTemplateParam(smsInfoDTO.getTemplateParam().toJSONString());
|
request.setTemplateParam(smsInfoDTO.getTemplateParam().toJSONString());
|
||||||
|
request.setOutId(smsInfoDTO.getOutId());
|
||||||
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
|
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
|
||||||
// 判断响应的结果
|
// 判断响应的结果
|
||||||
if (!SUCCESS.equals(sendSmsResponse.getCode())) {
|
if (!SUCCESS.equals(sendSmsResponse.getCode())) {
|
||||||
|
|||||||
@ -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<BatchSendTaskLabelInfo> 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);
|
||||||
|
}
|
||||||
@ -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<BatchSendTaskLabelInfo> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1554,7 +1554,7 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送短信
|
* 发送短信(无变量)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean sendSms(SmsInfoDTO smsInfoDTO) throws ClientException, ServiceException {
|
public Boolean sendSms(SmsInfoDTO smsInfoDTO) throws ClientException, ServiceException {
|
||||||
|
|||||||
@ -118,7 +118,7 @@
|
|||||||
and physical_examination_summary = #{physicalExaminationSummary}
|
and physical_examination_summary = #{physicalExaminationSummary}
|
||||||
</if>
|
</if>
|
||||||
<if test="physicalExaminationLabel != null and physicalExaminationLabel != ''">
|
<if test="physicalExaminationLabel != null and physicalExaminationLabel != ''">
|
||||||
and physical_examination_label = #{physicalExaminationLabel}
|
and physical_examination_label like concat('%', #{physicalExaminationLabel}, '%')
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
@ -342,7 +342,7 @@
|
|||||||
(
|
(
|
||||||
#{BatchSendTaskInfo.orderNum},
|
#{BatchSendTaskInfo.orderNum},
|
||||||
#{BatchSendTaskInfo.sn},
|
#{BatchSendTaskInfo.sn},
|
||||||
#{BatchSendTaskInfo.importname},
|
#{BatchSendTaskInfo.importName},
|
||||||
#{BatchSendTaskInfo.teamName},
|
#{BatchSendTaskInfo.teamName},
|
||||||
#{BatchSendTaskInfo.hospitalAgencyId},
|
#{BatchSendTaskInfo.hospitalAgencyId},
|
||||||
#{BatchSendTaskInfo.hospitalAgencyName},
|
#{BatchSendTaskInfo.hospitalAgencyName},
|
||||||
|
|||||||
@ -0,0 +1,79 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.xinelu.manage.mapper.batchsendtasklabelinfo.BatchSendTaskLabelInfoMapper">
|
||||||
|
|
||||||
|
<resultMap type="BatchSendTaskLabelInfo" id="BatchSendTaskLabelInfoResult">
|
||||||
|
<result property="id" column="id"/>
|
||||||
|
<result property="physicalExaminationLabel" column="physical_examination_label"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectBatchSendTaskLabelInfoVo">
|
||||||
|
select id, physical_examination_label
|
||||||
|
from batch_send_task_label_info
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectBatchSendTaskLabelInfoList" parameterType="BatchSendTaskLabelInfo"
|
||||||
|
resultMap="BatchSendTaskLabelInfoResult">
|
||||||
|
<include refid="selectBatchSendTaskLabelInfoVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="physicalExaminationLabel != null and physicalExaminationLabel != ''">
|
||||||
|
and physical_examination_label = #{physicalExaminationLabel}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectBatchSendTaskLabelInfoById" parameterType="Long"
|
||||||
|
resultMap="BatchSendTaskLabelInfoResult">
|
||||||
|
<include refid="selectBatchSendTaskLabelInfoVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertBatchSendTaskLabelInfo" parameterType="BatchSendTaskLabelInfo" useGeneratedKeys="true"
|
||||||
|
keyProperty="id">
|
||||||
|
insert into batch_send_task_label_info
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="physicalExaminationLabel != null">physical_examination_label,
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="physicalExaminationLabel != null">#{physicalExaminationLabel},
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateBatchSendTaskLabelInfo" parameterType="BatchSendTaskLabelInfo">
|
||||||
|
update batch_send_task_label_info
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="physicalExaminationLabel != null">physical_examination_label =
|
||||||
|
#{physicalExaminationLabel},
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteBatchSendTaskLabelInfoById" parameterType="Long">
|
||||||
|
delete
|
||||||
|
from batch_send_task_label_info
|
||||||
|
where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteBatchSendTaskLabelInfoByIds" parameterType="String">
|
||||||
|
delete from batch_send_task_label_info where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
|
||||||
|
<insert id="insertBatchSendTaskLabelInfList">
|
||||||
|
insert into batch_send_task_label_info(
|
||||||
|
physical_examination_label
|
||||||
|
)
|
||||||
|
values
|
||||||
|
<foreach collection="list" item="label" separator=",">
|
||||||
|
(#{label})
|
||||||
|
</foreach>
|
||||||
|
</insert>
|
||||||
|
</mapper>
|
||||||
@ -365,4 +365,8 @@
|
|||||||
<select id="selectScriptInfos" resultType="com.xinelu.manage.domain.scriptInfo.ScriptInfo">
|
<select id="selectScriptInfos" resultType="com.xinelu.manage.domain.scriptInfo.ScriptInfo">
|
||||||
<include refid="selectScriptInfoVo"/>
|
<include refid="selectScriptInfoVo"/>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectVariablesByRobotPublishId" resultType="java.lang.String">
|
||||||
|
select variables from script_info where robot_publish_id = #{robotPublishId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -564,7 +564,7 @@
|
|||||||
</if>
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertBatch">
|
<insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">
|
||||||
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,
|
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,
|
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,
|
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,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user