diff --git a/postdischarge-admin/src/main/resources/template/批量发送任务信息.xlsx b/postdischarge-admin/src/main/resources/template/批量发送任务信息.xlsx index 450469ea..5f0e74cb 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/enums/PersonnelTypeEnum.java b/postdischarge-common/src/main/java/com/xinelu/common/enums/PersonnelTypeEnum.java new file mode 100644 index 00000000..7e486105 --- /dev/null +++ b/postdischarge-common/src/main/java/com/xinelu/common/enums/PersonnelTypeEnum.java @@ -0,0 +1,41 @@ +package com.xinelu.common.enums; + +public enum PersonnelTypeEnum { + + /** + * 在院 + */ + IN_HOSPITAL("IN_HOSPITAL", "在院"), + + /** + * 门诊 + */ + OUTPATIENT("OUTPATIENT", "门诊"), + + /** + * 出院 + */ + DISCHARGED("DISCHARGED", "出院"), + + /** + * 体检 + */ + PHYSICAL_EXAMINATION("PHYSICAL_EXAMINATION", "体检"); + + private final String code; + + final private String info; + + PersonnelTypeEnum(String code, String info) { + this.code = code; + this.info = info; + } + + public String getCode() { + return code; + } + + public String getInfo() { + return info; + } +} 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 beccd106..d79610c4 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 @@ -8,6 +8,7 @@ import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.enums.BusinessType; import com.xinelu.common.utils.poi.ExcelUtil; import com.xinelu.manage.domain.batchsendtaskinfo.BatchSendTaskInfo; +import com.xinelu.manage.dto.batchsendtaskinfo.BatchSendTaskDto; import com.xinelu.manage.dto.batchsendtaskrecordinfo.BatchSendTaskRecordDto; import com.xinelu.manage.service.batchsendtaskinfo.IBatchSendTaskInfoService; import io.swagger.annotations.ApiOperation; @@ -38,7 +39,7 @@ public class BatchSendTaskInfoController extends BaseController { */ @PreAuthorize("@ss.hasPermi('system:batchSendTaskInfo:list')") @GetMapping("/list") - public TableDataInfo list(BatchSendTaskInfo batchSendTaskInfo) { + public TableDataInfo list(BatchSendTaskDto batchSendTaskInfo) { startPage(); List list = batchSendTaskInfoService.selectBatchSendTaskInfoList(batchSendTaskInfo); return getDataTable(list); @@ -48,7 +49,7 @@ public class BatchSendTaskInfoController extends BaseController { * 查询批量推送任务信息列表 */ @GetMapping("/batchSendTaskList") - public List batchSendTaskList(BatchSendTaskInfo batchSendTaskInfo) { + public List batchSendTaskList(BatchSendTaskDto batchSendTaskInfo) { return batchSendTaskInfoService.selectBatchSendTaskInfoList(batchSendTaskInfo); } @@ -58,7 +59,7 @@ public class BatchSendTaskInfoController extends BaseController { @PreAuthorize("@ss.hasPermi('system:batchSendTaskInfo:export')") @Log(title = "批量推送任务信息", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, BatchSendTaskInfo batchSendTaskInfo) { + public void export(HttpServletResponse response, BatchSendTaskDto batchSendTaskInfo) { List list = batchSendTaskInfoService.selectBatchSendTaskInfoList(batchSendTaskInfo); ExcelUtil util = new ExcelUtil<>(BatchSendTaskInfo.class); util.exportExcel(response, list, "批量推送任务信息数据"); 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 cb042612..7020f687 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 @@ -11,7 +11,7 @@ import lombok.NoArgsConstructor; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import java.util.Date; +import java.time.LocalDateTime; import java.util.Objects; /** @@ -86,10 +86,10 @@ public class BatchSendTaskInfo extends BaseEntity { /** * 就诊/体检时间,时间格式:yyyy-MM-dd */ - @ApiModelProperty(value = "就诊/体检时间,时间格式:yyyy-MM-dd") + @ApiModelProperty(value = "就诊/出院/体检时间,时间格式:yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "就诊/体检时间", width = 30, dateFormat = "yyyy-MM-dd") - private Date visitDate; + @Excel(name = "就诊/出院/体检时间", width = 30, dateFormat = "yyyy-MM-dd") + private LocalDateTime visitDate; /** * 体检/门诊/住院号 @@ -133,6 +133,13 @@ public class BatchSendTaskInfo extends BaseEntity { @Excel(name = "身份证号") private String cardNo; + /** + * 人员类型,在院:IN_HOSPITAL,门诊:OUTPATIENT,出院:DISCHARGED,体检:PHYSICAL_EXAMINATION + */ + @ApiModelProperty(value = "人员类型") + @Excel(name = "人员类型") + private String personnelType; + /** * 人群id */ diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskrecordinfo/BatchSendTaskRecordInfo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskrecordinfo/BatchSendTaskRecordInfo.java index ac4d5870..63abbf62 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskrecordinfo/BatchSendTaskRecordInfo.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/batchsendtaskrecordinfo/BatchSendTaskRecordInfo.java @@ -108,6 +108,11 @@ public class BatchSendTaskRecordInfo extends BaseEntity { @Excel(name = "总结标签") private String physicalExaminationLabel; + /** + * 删除标识,0:未删除,1:已删除 + */ + private Integer delFlag; + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/batchsendtaskinfo/BatchSendTaskDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/batchsendtaskinfo/BatchSendTaskDto.java new file mode 100644 index 00000000..cd670f80 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/batchsendtaskinfo/BatchSendTaskDto.java @@ -0,0 +1,21 @@ +package com.xinelu.manage.dto.batchsendtaskinfo; + +import com.xinelu.manage.domain.batchsendtaskinfo.BatchSendTaskInfo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; + +@Data + +public class BatchSendTaskDto extends BatchSendTaskInfo { + + @ApiModelProperty(value = "开始时间") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate startDate; + + @ApiModelProperty(value = "结束时间") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate endDate; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtaskinfo/BatchSendTaskInfoMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtaskinfo/BatchSendTaskInfoMapper.java index 77089ee5..4e1a71c4 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtaskinfo/BatchSendTaskInfoMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtaskinfo/BatchSendTaskInfoMapper.java @@ -1,6 +1,7 @@ package com.xinelu.manage.mapper.batchsendtaskinfo; import com.xinelu.manage.domain.batchsendtaskinfo.BatchSendTaskInfo; +import com.xinelu.manage.dto.batchsendtaskinfo.BatchSendTaskDto; import java.util.List; @@ -25,7 +26,7 @@ public interface BatchSendTaskInfoMapper { * @param batchSendTaskInfo 批量推送任务信息 * @return 批量推送任务信息集合 */ - List selectBatchSendTaskInfoList(BatchSendTaskInfo batchSendTaskInfo); + List selectBatchSendTaskInfoList(BatchSendTaskDto batchSendTaskInfo); /** * 新增批量推送任务信息 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtaskrecordinfo/BatchSendTaskRecordInfoMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtaskrecordinfo/BatchSendTaskRecordInfoMapper.java index d6eb03ff..53bd9827 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtaskrecordinfo/BatchSendTaskRecordInfoMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/batchsendtaskrecordinfo/BatchSendTaskRecordInfoMapper.java @@ -1,6 +1,7 @@ package com.xinelu.manage.mapper.batchsendtaskrecordinfo; import com.xinelu.manage.domain.batchsendtaskrecordinfo.BatchSendTaskRecordInfo; +import com.xinelu.manage.vo.batchsendtaskrecordinfo.BatchSendTaskRecordVo; import java.util.List; @@ -58,4 +59,12 @@ public interface BatchSendTaskRecordInfoMapper { * @return 结果 */ int deleteBatchSendTaskRecordInfoByIds(Long[] ids); + + /** + * 查询批量推送任务记录 + * + * @param id 批量推送任务记录主键 + * @return 批量推送任务记录 + */ + BatchSendTaskRecordVo selectBatchSendTaskRecordVoById(Long id); } \ No newline at end of file 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 7902350e..67677971 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 @@ -3,6 +3,7 @@ package com.xinelu.manage.service.batchsendtaskinfo; import com.aliyuncs.exceptions.ClientException; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.manage.domain.batchsendtaskinfo.BatchSendTaskInfo; +import com.xinelu.manage.dto.batchsendtaskinfo.BatchSendTaskDto; import com.xinelu.manage.dto.batchsendtaskrecordinfo.BatchSendTaskRecordDto; import java.util.List; @@ -28,7 +29,7 @@ public interface IBatchSendTaskInfoService { * @param batchSendTaskInfo 批量推送任务信息 * @return 批量推送任务信息集合 */ - List selectBatchSendTaskInfoList(BatchSendTaskInfo batchSendTaskInfo); + List selectBatchSendTaskInfoList(BatchSendTaskDto batchSendTaskInfo); /** * 新增批量推送任务信息 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 273c3b0c..688230f2 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 @@ -24,13 +24,13 @@ 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; -import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord; import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; import com.xinelu.manage.dto.aiob.CreateTaskDto; import com.xinelu.manage.dto.aiob.CustomerInfoDto; import com.xinelu.manage.dto.aiob.ImportTaskDto; import com.xinelu.manage.dto.aiob.RetryRuleList; +import com.xinelu.manage.dto.batchsendtaskinfo.BatchSendTaskDto; import com.xinelu.manage.dto.batchsendtaskrecordinfo.BatchSendTaskRecordDto; import com.xinelu.manage.dto.smssend.SmsInfoDTO; import com.xinelu.manage.mapper.agency.AgencyMapper; @@ -122,8 +122,27 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { * @return 批量推送任务信息 */ @Override - public List selectBatchSendTaskInfoList(BatchSendTaskInfo batchSendTaskInfo) { - return batchSendTaskInfoMapper.selectBatchSendTaskInfoList(batchSendTaskInfo); + public List selectBatchSendTaskInfoList(BatchSendTaskDto batchSendTaskInfo) { + List batchSendTaskInfos = batchSendTaskInfoMapper.selectBatchSendTaskInfoList(batchSendTaskInfo); + if (CollectionUtils.isEmpty(batchSendTaskInfos)) { + return new ArrayList<>(); + } + for (BatchSendTaskInfo sendTaskInfo : batchSendTaskInfos) { + if (sendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.DISCHARGED.getCode())) { + sendTaskInfo.setPersonnelType(PersonnelTypeEnum.DISCHARGED.getInfo()); + } + if (sendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.OUTPATIENT.getCode())) { + sendTaskInfo.setPersonnelType(PersonnelTypeEnum.OUTPATIENT.getInfo()); + } + + if (sendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.IN_HOSPITAL.getCode())) { + sendTaskInfo.setPersonnelType(PersonnelTypeEnum.IN_HOSPITAL.getInfo()); + } + if (sendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.PHYSICAL_EXAMINATION.getCode())) { + sendTaskInfo.setPersonnelType(PersonnelTypeEnum.PHYSICAL_EXAMINATION.getInfo()); + } + } + return batchSendTaskInfos; } /** @@ -135,6 +154,19 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { @Override public int insertBatchSendTaskInfo(BatchSendTaskInfo batchSendTaskInfo) { batchSendTaskInfo.setCreateTime(LocalDateTime.now()); + if (batchSendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.DISCHARGED.getInfo())) { + batchSendTaskInfo.setPersonnelType(PersonnelTypeEnum.DISCHARGED.getCode()); + } + if (batchSendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.OUTPATIENT.getInfo())) { + batchSendTaskInfo.setPersonnelType(PersonnelTypeEnum.OUTPATIENT.getCode()); + } + + if (batchSendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.IN_HOSPITAL.getInfo())) { + batchSendTaskInfo.setPersonnelType(PersonnelTypeEnum.IN_HOSPITAL.getCode()); + } + if (batchSendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.PHYSICAL_EXAMINATION.getInfo())) { + batchSendTaskInfo.setPersonnelType(PersonnelTypeEnum.PHYSICAL_EXAMINATION.getCode()); + } return batchSendTaskInfoMapper.insertBatchSendTaskInfo(batchSendTaskInfo); } @@ -179,7 +211,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { if (Objects.isNull(isDistinct) || isDistinct == 1) { list = list.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList()); } - List collect = list.stream().filter(Objects::nonNull).filter(item -> StringUtils.isEmpty(item.getPatientName()) || StringUtils.isEmpty(item.getPatientPhone()) || StringUtils.isEmpty(item.getInHospitalNumber())).collect(Collectors.toList()); + List collect = list.stream().filter(Objects::nonNull).filter(item -> StringUtils.isEmpty(item.getPatientName()) || StringUtils.isEmpty(item.getPatientPhone()) || StringUtils.isEmpty(item.getPersonnelType())).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(collect)) { return AjaxResult.error("用户信息不完整,姓名均不允许为空,请完善后重试;"); } @@ -200,6 +232,19 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { batchSendTaskInfo.setCreateTime(LocalDateTime.now()); batchSendTaskInfo.setCreateBy(SecurityUtils.getUsername()); batchSendTaskInfo.setDelFlag(0); + if (batchSendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.DISCHARGED.getInfo())) { + batchSendTaskInfo.setPersonnelType(PersonnelTypeEnum.DISCHARGED.getCode()); + } + if (batchSendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.OUTPATIENT.getInfo())) { + batchSendTaskInfo.setPersonnelType(PersonnelTypeEnum.OUTPATIENT.getCode()); + } + + if (batchSendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.IN_HOSPITAL.getInfo())) { + batchSendTaskInfo.setPersonnelType(PersonnelTypeEnum.IN_HOSPITAL.getCode()); + } + if (batchSendTaskInfo.getPersonnelType().equals(PersonnelTypeEnum.PHYSICAL_EXAMINATION.getInfo())) { + batchSendTaskInfo.setPersonnelType(PersonnelTypeEnum.PHYSICAL_EXAMINATION.getCode()); + } if (StringUtils.isBlank(batchSendTaskInfo.getDepartmentName())) { batchSendTaskInfo.setDepartmentName("无"); } @@ -256,6 +301,8 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { batchSendTaskRecordInfo.setTemplateName(batchSendTaskRecordDto.getPhoneTemplateName()); batchSendTaskRecordInfo.setRobotPublishId(batchSendTaskRecordDto.getRobotPublishId()); } + batchSendTaskRecordInfo.setNodeExecuteStatus(NodeExecuteStatusEnum.EXECUTING.getInfo()); + batchSendTaskRecordInfo.setNodeContent(batchSendTaskRecordDto.getNodeContent()); batchSendTaskRecordInfo.setBatchTaskNumber(batchTaskNumber); batchSendTaskRecordInfo.setTaskExecuteType(TaskExcuteTypeEnum.BATCH_TASK.getInfo()); batchSendTaskRecordInfo.setNodePlanTime(batchSendTaskRecordDto.getNodePlanTime()); @@ -414,7 +461,7 @@ public class BatchSendTaskInfoServiceImpl implements IBatchSendTaskInfoService { createTaskDto.setRobotId(batchSendTaskRecordDto.getRobotPublishId()); createTaskDto.setDialStartDate(batchSendTaskRecordDto.getNodePlanTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); //默认为空,表示不限制终止时间 - //createTaskDto.setDialEndDate(batchSendTaskRecordDto.getNodePlanTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + createTaskDto.setDialEndDate(batchSendTaskRecordDto.getNodePlanTime().plusDays(2).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); createTaskDto.setForbidDialDate(Arrays.asList(99)); List retryRuleLists = new ArrayList<>(); RetryRuleList retryRuleList = new RetryRuleList(); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskrecordinfo/IBatchSendTaskRecordInfoService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskrecordinfo/IBatchSendTaskRecordInfoService.java index 266c45a7..4d87fd41 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskrecordinfo/IBatchSendTaskRecordInfoService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskrecordinfo/IBatchSendTaskRecordInfoService.java @@ -1,6 +1,7 @@ package com.xinelu.manage.service.batchsendtaskrecordinfo; import com.xinelu.manage.domain.batchsendtaskrecordinfo.BatchSendTaskRecordInfo; +import com.xinelu.manage.vo.batchsendtaskrecordinfo.BatchSendTaskRecordVo; import java.util.List; @@ -18,7 +19,7 @@ public interface IBatchSendTaskRecordInfoService { * @param id 批量推送任务记录主键 * @return 批量推送任务记录 */ - BatchSendTaskRecordInfo selectBatchSendTaskRecordInfoById(Long id); + BatchSendTaskRecordVo selectBatchSendTaskRecordInfoById(Long id); /** * 查询批量推送任务记录列表 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskrecordinfo/impl/BatchSendTaskRecordInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskrecordinfo/impl/BatchSendTaskRecordInfoServiceImpl.java index 3ef1075b..34e237c6 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskrecordinfo/impl/BatchSendTaskRecordInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/batchsendtaskrecordinfo/impl/BatchSendTaskRecordInfoServiceImpl.java @@ -8,6 +8,7 @@ import com.xinelu.manage.mapper.batchsendtaskrecordinfo.BatchSendTaskRecordInfoM import com.xinelu.manage.mapper.scriptInfo.ScriptInfoMapper; import com.xinelu.manage.mapper.textmessage.TextMessageMapper; import com.xinelu.manage.service.batchsendtaskrecordinfo.IBatchSendTaskRecordInfoService; +import com.xinelu.manage.vo.batchsendtaskrecordinfo.BatchSendTaskRecordVo; import com.xinelu.manage.vo.textmessage.TextMessageVO; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -39,8 +40,8 @@ public class BatchSendTaskRecordInfoServiceImpl implements IBatchSendTaskRecordI * @return 批量推送任务记录 */ @Override - public BatchSendTaskRecordInfo selectBatchSendTaskRecordInfoById(Long id) { - return batchSendTaskRecordInfoMapper.selectBatchSendTaskRecordInfoById(id); + public BatchSendTaskRecordVo selectBatchSendTaskRecordInfoById(Long id) { + return batchSendTaskRecordInfoMapper.selectBatchSendTaskRecordVoById(id); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/batchsendtaskinfo/BatchSendTaskVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/batchsendtaskinfo/BatchSendTaskVo.java new file mode 100644 index 00000000..cc2508ea --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/batchsendtaskinfo/BatchSendTaskVo.java @@ -0,0 +1,38 @@ +package com.xinelu.manage.vo.batchsendtaskinfo; + +import com.xinelu.manage.domain.batchsendtaskinfo.BatchSendTaskInfo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 批量推送任务查看vo + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class BatchSendTaskVo extends BatchSendTaskInfo { + + @ApiModelProperty(value = "拨打状态:DIALED,已拨打:NODIALED:未拨打;默认NULL表示未拨打") + private String dialStatus; + + /** + * 节点任务执行状态,已执行:EXECUTED,未执行:UNEXECUTED + */ + @ApiModelProperty(value = "节点任务执行状态,已执行:EXECUTED,未执行:UNEXECUTED") + private String nodeExecuteStatus; + + @ApiModelProperty(value = "默认已接通:CONNECTED;未接通:NOTCONNECTED") + private String phoneConnectStatus; + + /** + * 电话拨通情况;SUCCESS:成功;FAILURE:失败;EXPIRED:超期自动作废(如超期一周);NULL或空字符串:缺省值,表示未执行; + */ + @ApiModelProperty(value = "电话拨通情况") + private String phoneNodeExecuteResultStatus; + + /** + * 短信发送情况;SUCCESS:成功;FAILURE:失败;EXPIRED:超期自动作废(如超期一周);NULL或空字符串:缺省值,表示未执行; + */ + @ApiModelProperty(value = "短信发送情况") + private String messageNodeExecuteResultStatus; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/batchsendtaskrecordinfo/BatchSendTaskRecordVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/batchsendtaskrecordinfo/BatchSendTaskRecordVo.java new file mode 100644 index 00000000..ddf5989c --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/batchsendtaskrecordinfo/BatchSendTaskRecordVo.java @@ -0,0 +1,18 @@ +package com.xinelu.manage.vo.batchsendtaskrecordinfo; + +import com.xinelu.manage.domain.batchsendtaskrecordinfo.BatchSendTaskRecordInfo; +import com.xinelu.manage.vo.batchsendtaskinfo.BatchSendTaskVo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 批量推送任务查看vo + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class BatchSendTaskRecordVo extends BatchSendTaskRecordInfo { + + List batchSendTaskInfos; +} 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 7eb87c0d..e5c7aa0f 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/batchsendtaskinfo/BatchSendTaskInfoMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/batchsendtaskinfo/BatchSendTaskInfoMapper.xml @@ -21,6 +21,7 @@ + @@ -47,6 +48,7 @@ age, sex, card_no, + personnel_type, crowd_id, crowd_name, physical_examination_summary, @@ -58,7 +60,7 @@ + select bstri.id, + bstri.batch_task_number, + bstri.batch_task_name, + bstri.task_execute_type, + bstri.node_plan_time, + bstri.batch_task_source, + bstri.template_id, + bstri.template_name, + bstri.node_content, + bstri.node_execute_status, + bstri.physical_examination_label, + bstri.create_by, + bstri.create_time, + bsti.id, + bsti.order_num, + bsti.sn, + bsti.import_name, + bsti.team_name, + bsti.hospital_agency_id, + bsti.hospital_agency_name, + bsti.department_id, + bsti.department_name, + bsti.visit_date, + bsti.in_hospital_number, + bsti.patient_name, + bsti.patient_phone, + bsti.age, + bsti.sex, + bsti.card_no, + bsti.personnel_type, + bsti.crowd_id, + bsti.crowd_name, + bsti.physical_examination_label, + spmrn.dial_status, + spmrn.node_execute_status, + spmrn.phone_connect_status, + spmrn.phone_node_execute_result_status, + spmrn.message_node_execute_result_status + from batch_send_task_record_info bstri + LEFT JOIN sign_patient_manage_route spmr on bstri.id = spmr.batch_send_task_record_id + LEFT JOIN sign_patient_manage_route_node spmrn on spmr.id = spmrn.manage_route_id + LEFT JOIN batch_send_task_info bsti on spmr.batch_send_task_id = bsti.id + where bstri.id = #{id} + \ No newline at end of file diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/SendTextMessageService.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/SendTextMessageService.java index 71a95750..7d5df2e6 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/SendTextMessageService.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/SendTextMessageService.java @@ -30,7 +30,7 @@ public interface SendTextMessageService { */ JSONObject taskTextMessageSendBack(SmsReport data, List shortMessageSendRecords); - Integer updateReadState(Integer readState, Integer id); + Integer updateReadState(Integer readState, List ids); Integer deleteData(); } diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java index 9776dec3..d517c44c 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/service/impl/SendTextMessageServiceImpl.java @@ -280,19 +280,19 @@ public class SendTextMessageServiceImpl implements SendTextMessageService { } @Override - public Integer updateReadState(Integer readState, Integer id) { - log.info("修改短信回调数据已读状态--id:{}", id); + public Integer updateReadState(Integer readState, List ids) { + log.info("修改短信回调数据已读状态--id:{}", ids); JSONObject TaskCallbackUpdateDto = new JSONObject(); - TaskCallbackUpdateDto.fluentPut("id", id).fluentPut("readState", readState); + TaskCallbackUpdateDto.fluentPut("ids", ids).fluentPut("readState", readState); HttpEntity requestEntity = new HttpEntity<>(TaskCallbackUpdateDto); RestTemplate restTemplate = new RestTemplate(); ResponseEntity responseEntity = restTemplate.exchange(callBackUrl + "/updateMessageBackReadState", HttpMethod.POST, requestEntity, String.class); JSONObject object = JSON.parseObject(responseEntity.getBody()); if (object == null || object.getInteger("code") == null || object.getInteger("code") != 0) { - log.info("修改百度外呼回调数据已读状态失败--id:{},原因:{}", id, object.getString("message")); + log.info("修改百度外呼回调数据已读状态失败--id:{},原因:{}", ids, object.getString("message")); return null; } - log.info("修改百度外呼回调数据已读状态成功--id:{}", id); + log.info("修改百度外呼回调数据已读状态成功--id:{}", ids); return 1; } diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/SendTextMessageTask.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/SendTextMessageTask.java index 62528655..001387ea 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/SendTextMessageTask.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/SendTextMessageTask.java @@ -9,12 +9,14 @@ import com.xinelu.manage.domain.textmessage.TaskMessageBackEntity; import com.xinelu.manage.mapper.shortmessagesendrecord.ShortMessageSendRecordMapper; import com.xinelu.quartz.service.SendTextMessageService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * @Description 短信相关定时任务 @@ -46,16 +48,24 @@ public class SendTextMessageTask { List taskMessageBackEntityList = sendTextMessageService.taskMessageBack(taskMessageBackEntity); List shortMessageSendRecords = new ArrayList<>(); if (!CollectionUtils.isEmpty(taskMessageBackEntityList)) { - // 回调数据解析 + // 回调数据提取 + List smsReports = new ArrayList<>(); taskMessageBackEntityList.forEach(entity -> { - // JSONString 转 TaskCallbackDataDto - SmsReport smsReport = JSON.parseObject(entity.getMessageBackData().toString(), SmsReport.class); - // 执行回调 - sendTextMessageService.taskTextMessageSendBack(smsReport, shortMessageSendRecords); - // 修改阿里云服务器回调数据已读状态 - sendTextMessageService.updateReadState(1, entity.getId()); + // JSONString 转 SmsReport + smsReports.addAll(JSON.parseArray(entity.getMessageBackData().toString(), SmsReport.class)); }); - shortMessageSendRecordMapper.insertShortMessageSendRecords(shortMessageSendRecords); + if (CollectionUtils.isNotEmpty(smsReports)) { + for (SmsReport smsReport : smsReports) { + // 回调数据解析 + sendTextMessageService.taskTextMessageSendBack(smsReport, shortMessageSendRecords); + } + } + if (CollectionUtils.isNotEmpty(shortMessageSendRecords)) { + shortMessageSendRecordMapper.insertShortMessageSendRecords(shortMessageSendRecords); + } + List ids = taskMessageBackEntityList.stream().filter(Objects::nonNull).map(TaskMessageBackEntity::getId).collect(Collectors.toList()); + // 修改阿里云服务器回调数据已读状态 + sendTextMessageService.updateReadState(1, ids); } log.info("完成同步百度外呼回调数据定时任务......"); }