From 4562d9f2fc2f3fe8b214cb03e886ad348be472da Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Sat, 9 May 2026 18:04:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/template/批量发送任务信息.xlsx | Bin 9939 -> 9965 bytes .../common/enums/PersonnelTypeEnum.java | 41 +++++++ .../BatchSendTaskInfoController.java | 7 +- .../batchsendtaskinfo/BatchSendTaskInfo.java | 15 ++- .../BatchSendTaskRecordInfo.java | 5 + .../batchsendtaskinfo/BatchSendTaskDto.java | 21 ++++ .../BatchSendTaskInfoMapper.java | 3 +- .../BatchSendTaskRecordInfoMapper.java | 9 ++ .../IBatchSendTaskInfoService.java | 3 +- .../impl/BatchSendTaskInfoServiceImpl.java | 57 ++++++++- .../IBatchSendTaskRecordInfoService.java | 3 +- .../BatchSendTaskRecordInfoServiceImpl.java | 5 +- .../vo/batchsendtaskinfo/BatchSendTaskVo.java | 38 ++++++ .../BatchSendTaskRecordVo.java | 18 +++ .../BatchSendTaskInfoMapper.xml | 22 +++- .../BatchSendTaskRecordInfoMapper.xml | 110 ++++++++++++++++++ .../service/SendTextMessageService.java | 2 +- .../impl/SendTextMessageServiceImpl.java | 10 +- .../quartz/task/SendTextMessageTask.java | 28 +++-- 19 files changed, 364 insertions(+), 33 deletions(-) create mode 100644 postdischarge-common/src/main/java/com/xinelu/common/enums/PersonnelTypeEnum.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/dto/batchsendtaskinfo/BatchSendTaskDto.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/vo/batchsendtaskinfo/BatchSendTaskVo.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/vo/batchsendtaskrecordinfo/BatchSendTaskRecordVo.java diff --git a/postdischarge-admin/src/main/resources/template/批量发送任务信息.xlsx b/postdischarge-admin/src/main/resources/template/批量发送任务信息.xlsx index 450469ea62dcf79c49ad55e0fe4f25444a6663fc..5f0e74cb41b9dc07afa3f6416af0ab5135f62fd1 100644 GIT binary patch delta 1663 zcmV-_27vj~P3=vvkpTt4Mlrfula>JOFc`(}1>d3MzD?TwVV1VTKMVwi11pMm zA^Ely+cYH6ZSUZPTUc4w4s92yc7_l4QMn@4i6$GLslx7sZxS68ED6ngbtaE(b5kw9)m#Uz~9@PR%%I@g`a6rfq7hou-hT;n7%9e<>NX}ZMd{B7};0!|!1qh?D@A>%0 zYd{tH&kMEEaTb}`NZV-}x69_N5nK0KXRUFyT6wEp9mD4L@$K~Ds;=s0qS_S$lti3` zOaV2eN{(&YB{;Lo^9Xmw)e3W}R?XCId!7M5*(9IOuOCnEUvDoF{w-Q$-JszDcWkDx zX|PjndZ%aU1SJ6p`mXQ0!5}3;NCqJxch%c__p6M}px7q(pEz{Mz$Hg18HIgI3_8Re zAgOb+2?Nyu36NNCdCCF+0Na!21R;Ofa+@#|eeX>FL8JGuc)`mUXHvUv(l%+P?(!^y zFq#OYO0r4v^}T|Cjo~49#(?h8x#wKGqm*VuJ3`VNEQwGVG4Ow?_O6zS zlDOQIad+T(ftwMQ!T++@q#>T+dhLIwC~hg+rv~JX zEM+7(?1z7pG28AKW#k#|V~mPw^I+@*!?U05{udh|V52gLZ(d4?C#ImL3Wn2B!v<2C z?KYyye;Jpp#d4uUfuK);+=?6wYA20sAdtk4mp=!Upxwf6Y^nf`5p2@1dR%%7_h=ow zAwE@z;TghjBUW9+ppAc6cfAbTh|gV)Q5#VfwXJmAMttdV1Z~7^7cprg?z)I+8}YS^ zn6(k#x(NRwso#4b7g@dUfn22Zp$Br2R~SND-&XZbiFKiA>WQejNRmChCu+}fjW|u9 zDLiKa$LnlVU(n#H8iXE;5whGd_J`Bvg4W#$1BXVhDTRZaLMKgn&R{kT{L_U|B82HT z!30>PTWSsxNg}D*vR4=_J0;aIGK6D9C`2(6aWAKcx*3oXkl_?WK(oMn8 zE_iKhZIaze!!Q_z&js(H-$D4yJ z<=>NZdXl9{<3_wQar2RX3?JrPFo;-~3>&=tm32`N@XnnWGv2?Pb741rc469kONJLP z3ft-Z(}EGabsL2(*@%cK*moA|+E$61j0{+v5^`M58iLrni|hw=;PKTu1va}RA30XUQ4B0vG5 zlOiKC0mYM6Ba;QeMlrfulkOu_0S%KwBtQp(1ONbdY%h~LCLEK1BMt%WleHu^0u&&V z?IbK5kxdkTR{;P3K>`2(6aWAK000000RSKX0006GlQktk0nn3nB{~7mld&Z>0rr#V zB|rg-lPM-V0i%;;xK{c;002~v2+IHf delta 1632 zcmV-m2A}!uP18-VkpTq+3reC~la>JOR3L_a_xkwWC&!~@k$aDzO;*Yw3OWRNAbBY= zIUl0ybnHjSGnPrg@>0SOt-zpBa(EDPMR}=Vs!IjhW?(!=l7@0MLuf?5vX|kQMs;W-aZDP3m0luAFTs2kwOxC;NfRb2n z$~7=s>g3q9U4S>eJdbf}T(2-^SH@19Vb2c&KkTO@q@+&?xvSsayI*Hq4~k8K|A_;i^!zYNNkoGq+KXDm zEg)%fvj_v#0SL#1* zURqU~y*v{e$Eet_K;pJvzXPrvyUs%$DZ>MiI?iZLv?nAjAd(7| ze-i_*>fmdsC`sI+ocn_ynD{wi1+Ewt>OCAHO<7DgB0lD{FcpcSoEXrrGbVM-_LRJf zFHxj~T5CNmiJL0Y@P(tEzMREMXptH(7P((Z>sLAV=bbw9xJPuMSvgUUM|lOr5{lb1 z&djqbw-!XrnWrpEuaw%0i&qt`28C0ff134C8cj11ZDD5tTZ30MWA7a{UpOgPwL3chJx@9m!RYSP+dFT|rI`wGhf zo8OVxtRyzn$tHpz{HyO5m*8R`6LcqqZiLY6l#52>lrkV_A zBV4nAlxDfDsLJo^vU{;wDp4ZvDUe%{gF&67kqrcr*y9y0pajrv;WxHb0LKUxX_!5& zf~9}530@JO`iQWLSXYQ)i(}A5e{A|3!!F`;pJUWTxJ`|4JIlC>_|oT?bP>0G#I%d} z+DFW~h;Mzwyo>nWM}%*h`r`uRO;_(OK;EyZTHF|k{swAQ3qCN z#AymU9(Yr@JLjYN0q?2G0u{F}SwfZ5?3_pB0En3hsx%i+~8AWD>@-mlUYm*P@~k_fsmAcYsj%k!SxW9=Fs&Wi^`{8g~aobRUtKms8fd<#o`up zEE@x@>^3l!dpCjB!1hrC?fwB%C$_0mlZRb?-PR#Bb@)r>Gz&uB8mp9lf6S(5D$Scc z@y?p!lb%e}k zgAs3?3${>;UokmQO^EP@N6#vqSIPRL?0%rSEMRhtVBI{5mpjhlJc<_FMZn)4(>NB> zfBT?3toZ}8iw|!T0Une4B0vF$lRP6c0jra6Ba;OL3reC~lL#bK0S=R0BtQX!lb$3n z0n?MuBsK#2ACoX394t^v0Rj{N6aWAK2mpsp;y?v6=yO2<000*P000yK0000000031 zAOHXW{tc5)B|rhTlaM7k0n3xiB{l)_lL96{0dbQ 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("完成同步百度外呼回调数据定时任务......"); }