|  |  | 
 |  |  |  | 
 |  |  | import cn.lihu.jh.module.ecg.Utils; | 
 |  |  | import cn.lihu.jh.module.ecg.config.DynamicSchedulingConfig; | 
 |  |  | import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO; | 
 |  |  | import cn.lihu.jh.module.ecg.dal.mysql.queuesequence.QueueSequenceMapper; | 
 |  |  | import cn.lihu.jh.module.ecg.service.queue.QueueService; | 
 |  |  | import cn.lihu.jh.module.ecg.service.queuesequence.QueueSequenceService; | 
 |  |  | import cn.lihu.jh.module.ecg.service.room.RoomService; | 
 |  |  | import cn.lihu.jh.module.infra.api.config.ConfigApi; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | 
 |  |  | import javax.annotation.Resource; | 
 |  |  | import java.time.LocalTime; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.concurrent.Executors; | 
 |  |  | import java.util.concurrent.ScheduledExecutorService; | 
 |  |  |  | 
 |  |  | import static cn.lihu.jh.module.ecg.Constants.ECG_OPENING_TIME_KEY; | 
 |  |  | import static cn.lihu.jh.module.ecg.Constants.ECG_ROOM_RESET_TIME_KEY; | 
 |  |  | import static cn.lihu.jh.module.ecg.Constants.*; | 
 |  |  |  | 
 |  |  | @Service | 
 |  |  | @Validated | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Resource | 
 |  |  |     private QueueService queueService; | 
 |  |  |  | 
 |  |  |     @Resource | 
 |  |  |     private QueueSequenceService queueSequenceService; | 
 |  |  |  | 
 |  |  |     List<LocalTime> timeslotList = null; | 
 |  |  |     Integer timeslotLength = 0; | 
 |  |  |  | 
 |  |  |     ScheduledTask startBizTask = null; | 
 |  |  |     ScheduledTask closeBizTask = null; | 
 |  |  | 
 |  |  |  | 
 |  |  |         resetRoomTask = taskRegistrar.scheduleCronTask(new CronTask(() -> { | 
 |  |  |             System.out.println("Room Reset Task executed at: " + System.currentTimeMillis()); | 
 |  |  |             roomService.resetRoom(); | 
 |  |  |             roomService.resetRoom(false); | 
 |  |  |             queueSequenceService.resetQueueSequence(); | 
 |  |  |         }, roomResetCronExpression)); | 
 |  |  |  | 
 |  |  |         taskRegistrar.afterPropertiesSet(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void readTimeSlotConfig() { | 
 |  |  |         String strBookTimeslotLength = configApi.getConfigValueByKey(BOOK_TIMESLOT_LENGTH); | 
 |  |  |         timeslotLength = Integer.valueOf(strBookTimeslotLength); | 
 |  |  |         //String strBookTimeslotList = configApi.getConfigValueByKey(BOOK_TIMESLOT_LIST); | 
 |  |  |         //timeslotList = Utils.parseTimeSlotList(strBookTimeslotList, Integer.valueOf(strBookTimeslotLength)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<LocalTime> listTimeslot() { | 
 |  |  |         return  timeslotList; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Integer getTimeslotLength() { | 
 |  |  |         return timeslotLength; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |