任务执行类型:增加批量和单个执行 两种分类;
任务执行日期,增加字段PlanTime
This commit is contained in:
parent
eb277f29d6
commit
efde030176
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -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 = "管理路径节点时间,时间单位为:天")
|
||||
|
||||
@ -74,4 +74,14 @@ public class SignPatientManageRouteNodeDto {
|
||||
*/
|
||||
@ApiModelProperty(value = "专病路径节点id列表")
|
||||
private List<Long> routeNodeIds;
|
||||
|
||||
|
||||
/**
|
||||
* 任务执行类型(批量还是单个执行,'批量任务:BATCH_TASK,单个实时拔打任务:ACTUAL_TIME_TASK')
|
||||
*/
|
||||
@ApiModelProperty(value = "任务执行类型(批量还是单个执行,'批量任务:BATCH_TASK,单个实时拔打任务:ACTUAL_TIME_TASK')")
|
||||
private String taskExcuteType;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -135,6 +135,12 @@
|
||||
route_node_id = #{routeNodeId}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="taskExcuteType != null and taskExcuteType = 'ACTUAL_TIME_TASK'">
|
||||
and (task_excute_type = #{taskExcuteType} or task_excute_type is null or task_excute_type='')
|
||||
</if>
|
||||
<if test="taskExcuteType != null and taskExcuteType = 'BATCH_TASK'">
|
||||
and task_excute_type = #{taskExcuteType}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@ -1040,4 +1046,4 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
</mapper>
|
||||
|
||||
@ -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<SignPatientManageRouteNode> nodeList = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeList(signPatientManageRouteNodeDto);
|
||||
List<SignPatientManageRouteNode> 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);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user