From efde0301766a31b796b8cf326e981d1a7edc7f56 Mon Sep 17 00:00:00 2001 From: zhuangyuanke Date: Tue, 3 Dec 2024 09:06:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=89=A7=E8=A1=8C=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=EF=BC=9A=E5=A2=9E=E5=8A=A0=E6=89=B9=E9=87=8F=E5=92=8C?= =?UTF-8?q?=E5=8D=95=E4=B8=AA=E6=89=A7=E8=A1=8C=20=E4=B8=A4=E7=A7=8D?= =?UTF-8?q?=E5=88=86=E7=B1=BB=EF=BC=9B=20=E4=BB=BB=E5=8A=A1=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=97=A5=E6=9C=9F=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5PlanTime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/enums/TaskExcuteTypeEnum.java | 33 +++++++++++++++++++ .../SignPatientManageRoute.java | 15 +++++++++ .../SignPatientManageRouteNode.java | 12 +++++++ .../SignPatientManageRouteNodeDto.java | 10 ++++++ .../SignPatientManageRouteNodeMapper.xml | 8 ++++- .../quartz/task/UploadRobotPublishTask.java | 18 +++++++--- 6 files changed, 91 insertions(+), 5 deletions(-) create mode 100644 postdischarge-common/src/main/java/com/xinelu/common/enums/TaskExcuteTypeEnum.java diff --git a/postdischarge-common/src/main/java/com/xinelu/common/enums/TaskExcuteTypeEnum.java b/postdischarge-common/src/main/java/com/xinelu/common/enums/TaskExcuteTypeEnum.java new file mode 100644 index 00000000..838fd262 --- /dev/null +++ b/postdischarge-common/src/main/java/com/xinelu/common/enums/TaskExcuteTypeEnum.java @@ -0,0 +1,33 @@ +package com.xinelu.common.enums; + + +import lombok.Getter; + +/** + * 任务执行类型(批量还是单个执行,'批量任务:BATCH_TASK,单个实时拔打任务:ACTUAL_TIME_TASK') + * + * @author zyk + * @date 2024-12-02 + */ + +@Getter +public enum TaskExcuteTypeEnum { + + /** + * 已执行 + */ + BATCH_TASK("BATCH_TASK"), + /** + * 未执行 + */ + ACTUAL_TIME_TASK("ACTUAL_TIME_TASK"), + ; + final private String info; + + TaskExcuteTypeEnum(String info) { + this.info = info; + } + + + +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroute/SignPatientManageRoute.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroute/SignPatientManageRoute.java index e89a9dfb..40d2818f 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroute/SignPatientManageRoute.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroute/SignPatientManageRoute.java @@ -1,5 +1,6 @@ package com.xinelu.manage.domain.signpatientmanageroute; +import com.fasterxml.jackson.annotation.JsonFormat; import com.xinelu.common.annotation.Excel; import com.xinelu.common.core.domain.BaseEntity; import com.xinelu.common.custominterface.Insert; @@ -11,6 +12,8 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import javax.validation.constraints.NotBlank; +import java.time.LocalDateTime; +import java.time.LocalTime; /** * 签约患者管理任务路径对象 sign_patient_manage_route @@ -121,4 +124,16 @@ public class SignPatientManageRoute extends BaseEntity { @Excel(name = "备注信息") private String routeRemark; + /** 任务执行类型(批量还是单个执行) */ + @ApiModelProperty(value = "任务执行类型(批量还是单个执行,'批量任务:BATCH_TASK,单个实时拔打任务:ACTUAL_TIME_TASK')") + @Excel(name = "任务执行类型(批量还是单个执行,'批量任务:BATCH_TASK,单个实时拔打任务:ACTUAL_TIME_TASK')") + private String taskExcuteType; + + /** 任务计划执行时间,格式:YYYY-MM-DD HH:mm */ + @ApiModelProperty(value = "任务计划执行时间,格式:YYYY-MM-DD HH:mm") + @JsonFormat(pattern = "YYYY-MM-DD HH:mm") + @Excel(name = "任务计划执行时间,格式:YYYY-MM-DD HH:mm", width = 30, dateFormat = "YYYY-MM-DD HH:mm") + private LocalDateTime planTime; + + } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroutenode/SignPatientManageRouteNode.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroutenode/SignPatientManageRouteNode.java index 1e5adaed..1fc7f930 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroutenode/SignPatientManageRouteNode.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/signpatientmanageroutenode/SignPatientManageRouteNode.java @@ -50,6 +50,18 @@ public class SignPatientManageRouteNode extends BaseEntity { @Excel(name = "管理路径节点名称") private String routeNodeName; + /** 任务执行类型(批量还是单个执行) */ + @ApiModelProperty(value = "任务执行类型(批量还是单个执行,'批量任务:BATCH_TASK,单个实时拔打任务:ACTUAL_TIME_TASK')") + @Excel(name = "任务执行类型(批量还是单个执行,'批量任务:BATCH_TASK,单个实时拔打任务:ACTUAL_TIME_TASK')") + private String taskExcuteType; + + /** 任务计划执行时间,格式:YYYY-MM-DD HH:mm */ + @ApiModelProperty(value = "任务计划执行时间,格式:YYYY-MM-DD HH:mm") + @JsonFormat(pattern = "YYYY-MM-DD HH:mm") + @Excel(name = "任务计划执行时间,格式:YYYY-MM-DD HH:mm", width = 30, dateFormat = "YYYY-MM-DD HH:mm") + private LocalDateTime planTime; + + /** 管理路径节点时间,时间单位为:天 */ @ApiModelProperty(value = "管理路径节点时间,时间单位为:天") @Excel(name = "管理路径节点时间,时间单位为:天") diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/SignPatientManageRouteNodeDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/SignPatientManageRouteNodeDto.java index 38c04299..1ed3d3bb 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/SignPatientManageRouteNodeDto.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/SignPatientManageRouteNodeDto.java @@ -74,4 +74,14 @@ public class SignPatientManageRouteNodeDto { */ @ApiModelProperty(value = "专病路径节点id列表") private List routeNodeIds; + + + /** + * 任务执行类型(批量还是单个执行,'批量任务:BATCH_TASK,单个实时拔打任务:ACTUAL_TIME_TASK') + */ + @ApiModelProperty(value = "任务执行类型(批量还是单个执行,'批量任务:BATCH_TASK,单个实时拔打任务:ACTUAL_TIME_TASK')") + private String taskExcuteType; + + + } diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml index 13ad78cb..8f38a6c0 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml @@ -135,6 +135,12 @@ route_node_id = #{routeNodeId} + + and (task_excute_type = #{taskExcuteType} or task_excute_type is null or task_excute_type='') + + + and task_excute_type = #{taskExcuteType} + @@ -1040,4 +1046,4 @@ - \ No newline at end of file + diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java index 42e92beb..a9bda12a 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java @@ -5,6 +5,7 @@ import com.xinelu.common.constant.AiobTaskTypeContant; import com.xinelu.common.enums.NodeExecuteStatusEnum; import com.xinelu.common.enums.PhoneDialMethodEnum; import com.xinelu.common.enums.PhoneRedialTimesEnum; +import com.xinelu.common.enums.TaskExcuteTypeEnum; import com.xinelu.common.utils.StringUtils; import com.xinelu.manage.domain.patientinfo.PatientInfo; import com.xinelu.manage.domain.patientvisitrecord.PatientVisitRecord; @@ -192,13 +193,22 @@ public class UploadRobotPublishTask { SignPatientManageRouteNodeDto signPatientManageRouteNodeDto = new SignPatientManageRouteNodeDto(); signPatientManageRouteNodeDto.setNodeExecuteStatus(NodeExecuteStatusEnum.UNEXECUTED.getInfo()); signPatientManageRouteNodeDto.setPhoneDialMethod(PhoneDialMethodEnum.AI.getInfo()); + //只获取 任务执行类型为 单个执行的 + signPatientManageRouteNodeDto.setTaskExcuteType(TaskExcuteTypeEnum.ACTUAL_TIME_TASK.getInfo()); List nodeList = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeList(signPatientManageRouteNodeDto); List executeNodeList = new ArrayList<>(); nodeList.forEach(node -> { - SignPatientManageRoute signPatientManageRoute = signPatientManageRouteMapper.selectSignPatientManageRouteById(node.getManageRouteId()); - SignPatientRecord signPatientRecord = signPatientRecordMapper.selectByPrimaryKey(signPatientManageRoute.getSignPatientRecordId()); - PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.selectPatientVisitRecordById(signPatientRecord.getPatientVisitRecordId()); - LocalDateTime executeTime = signPatientManageRouteNodeService.getExecuteTime(node.getExecuteTime(), node.getRouteNodeName(), node.getRouteNodeDay(), patientVisitRecord); + LocalDateTime executeTime ; + //如果有计划执行时间,则直接获取 + if(node.getPlanTime()!=null) + { executeTime = node.getPlanTime(); } + // 否则 ,则根据诊后/院后 第几天 计算 + else { + SignPatientManageRoute signPatientManageRoute = signPatientManageRouteMapper.selectSignPatientManageRouteById(node.getManageRouteId()); + SignPatientRecord signPatientRecord = signPatientRecordMapper.selectByPrimaryKey(signPatientManageRoute.getSignPatientRecordId()); + PatientVisitRecord patientVisitRecord = patientVisitRecordMapper.selectPatientVisitRecordById(signPatientRecord.getPatientVisitRecordId()); + executeTime = signPatientManageRouteNodeService.getExecuteTime(node.getExecuteTime(), node.getRouteNodeName(), node.getRouteNodeDay(), patientVisitRecord); + } if (node.getScriptInfoId() != null && (executeTime.toLocalDate().isBefore(LocalDate.now()) || executeTime.toLocalDate().isEqual(LocalDate.now()))) { executeNodeList.add(node); }