package com.sinata.task;
|
|
import com.sinata.system.domain.MwWarningRecord;
|
import com.sinata.system.enums.WarningStatusEnum;
|
import com.sinata.system.service.MwCollectRecordService;
|
import com.sinata.system.service.MwContractService;
|
import com.sinata.system.service.MwProtectionEquipmentRecordService;
|
import com.sinata.system.service.MwProtectionEquipmentService;
|
import com.sinata.system.service.MwStaffService;
|
import com.sinata.system.service.MwStagingRoomService;
|
import com.sinata.system.service.MwWarningConfigItemService;
|
import com.sinata.system.service.MwWarningConfigService;
|
import com.sinata.system.service.MwWarningRecordService;
|
import com.sinata.system.service.biz.TaskService;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.jetbrains.annotations.NotNull;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Date;
|
|
/**
|
* @author mitao
|
* @date 2024/12/30
|
*/
|
@Component
|
@Slf4j
|
@RequiredArgsConstructor
|
public class WarningTask {
|
private final MwWarningConfigService mwWarningConfigService;
|
private final MwWarningConfigItemService mwWarningConfigItemService;
|
private final MwCollectRecordService mwCollectRecordService;
|
private final MwWarningRecordService mwWarningRecordService;
|
private final MwStagingRoomService mwStagingRoomService;
|
private final MwContractService mwContractService;
|
private final MwStaffService mwStaffService;
|
private final MwProtectionEquipmentService mwProtectionEquipmentService;
|
private final MwProtectionEquipmentRecordService mwProtectionEquipmentRecordService;
|
private final TaskService taskService;
|
|
/**
|
* 出库超时预警
|
*/
|
@Scheduled(cron = "${medical.crons.checkout-over-time}")
|
public void checkoutOverTime() {
|
log.info("开始执行【出库超时预警】定时任务");
|
taskService.checkoutOverTime();
|
log.info("定时任务【出库超时预警】执行完毕");
|
}
|
|
/**
|
* 封装预警记录
|
*
|
* @param id
|
* @param warningTargetName
|
* @param departmentName
|
* @param message
|
* @param departmentId
|
* @param currentValue
|
* @param normalRange
|
* @return
|
*/
|
@NotNull
|
private static MwWarningRecord getMwWarningRecord(Integer type, Long id, String warningTargetName, String departmentName, String message, Long departmentId, String currentValue, String normalRange) {
|
MwWarningRecord warningRecord = new MwWarningRecord();
|
warningRecord.setType(type);
|
warningRecord.setWarningTargetId(id);
|
warningRecord.setWarningTargetName(warningTargetName);
|
warningRecord.setDepartmentName(departmentName);
|
warningRecord.setMessage(message);
|
warningRecord.setDepartmentId(departmentId);
|
warningRecord.setCurrentValue(currentValue);
|
warningRecord.setNormalRange(normalRange);
|
warningRecord.setStatus(WarningStatusEnum.UNRESOLVED.getCode());
|
warningRecord.setWarnTime(new Date());
|
return warningRecord;
|
}
|
|
/**
|
* 暂存间使用率预警
|
*/
|
@Scheduled(cron = "${medical.crons.staging-room-capacity}")
|
public void stagingRoomStorage() {
|
log.info("开始执行【暂存间使用率预警】定时任务");
|
taskService.stagingRoomStorage();
|
log.info("定时任务【暂存间使用率预警】执行完毕");
|
}
|
|
/**
|
* 合同到期预警
|
*/
|
@Scheduled(cron = "${medical.crons.contract-expire}")
|
public void contractExpire() {
|
log.info("开始执行【合同到期预警】定时任务");
|
taskService.contractExpire();
|
log.info("定时任务【合同到期预警】执行完毕");
|
}
|
|
/**
|
* 健康记录预警、人员记录预警
|
*/
|
@Scheduled(cron = "${medical.crons.health-vaccine-record}")
|
public void healthRecord() {
|
log.info("开始执行【健康记录预警】【人员记录预警】定时任务");
|
taskService.healthRecord();
|
log.info("定时任务【健康记录预警】【人员记录预警】执行完毕");
|
}
|
|
/**
|
* 防护用品使用预警 防护用品库存预警
|
*/
|
@Scheduled(cron = "${medical.crons.protection-equipment-use-stock}")
|
public void protectionEquipmentUse() {
|
log.info("开始执行【防护用品使用预警】【防护用品库存预警】定时任务");
|
taskService.protectionEquipmentUse();
|
log.info("定时任务【防护用品使用预警】【防护用品库存预警】执行完毕");
|
}
|
|
/**
|
* 医疗机构产废日预警
|
*/
|
@Scheduled(cron = "${medical.crons.medical-institution-waste-day}")
|
public void medicalInstitutionWasteDay() {
|
log.info("开始执行【医疗机构产废日预警】定时任务");
|
taskService.medicalInstitutionWasteDay();
|
log.info("定时任务【医疗机构产废日预警】执行完毕");
|
}
|
|
/**
|
* 医疗机构产废月预警
|
*/
|
@Scheduled(cron = "${medical.crons.medical-institution-waste-month}")
|
public void medicalInstitutionWasteMonth() {
|
log.info("开始执行【医疗机构产废月预警】定时任务");
|
taskService.medicalInstitutionWasteMonth();
|
log.info("定时任务【医疗机构产废月预警】执行完毕");
|
}
|
|
/**
|
* 医疗机构存储量
|
*/
|
@Scheduled(cron = "${medical.crons.medical-institution-waste-storage}")
|
public void medicalInstitutionStorage() {
|
log.info("开始执行【医疗机构存储量】定时任务");
|
taskService.medicalInstitutionStorage();
|
log.info("定时任务【医疗机构存储量】执行完毕");
|
}
|
|
/**
|
* 车辆转运异常预警
|
*/
|
@Scheduled(cron = "${medical.crons.transit-car}")
|
public void transitCar() {
|
log.info("开始执行【车辆转运异常预警】定时任务");
|
taskService.transitCar();
|
log.info("定时任务【车辆转运异常预警】执行完毕");
|
}
|
|
@Scheduled(cron = "${medical.crons.disposal-unit-storage}")
|
public void disposalUnitStorage() {
|
log.info("开始执行【处置单位存储量预警】定时任务");
|
taskService.disposalUnitStorage();
|
log.info("定时任务【处置单位存储量预警】执行完毕");
|
}
|
}
|