****
* 晚归归寝
* @author Administrator
*/
@Configuration
public class DormScheduleStayUp implements SchedulingConfigurer {
@Autowired(required = false)
private DormParamSettingMapper settingMapper;
@Autowired(required = false)
private DormClockRecordService dormClockRecordService;
@Autowired(required = false)
AccEventRecordHelpMapper accEventRecordHelpMapper;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(
()->{
System.err.println("++++++++++++++++++++>晚归的人员:"+LocalDateTime.now().toLocalTime());
dormClockRecordService.dormClockRecordPushMessageTask("2");
}, triggerContext->{
String corn = settingMapper.getTimeByType("2");
System.out.println("晚归cron=========>"+corn);
String randomCorn = "0 "+corn+" * * ?";
return new CronTrigger(randomCorn).nextExecutionTime(triggerContext);
});
}
@SuppressWarnings("all")
@Override
public void dormClockRecordPushMessageTask(String type) {
DormParamSetting dormParamSetting = settingMapper.selectByCountType(type);
String countTimeStart = dormParamSetting.getCountTimeStart();
String countTimeEnd = dormParamSetting.getCountTimeEnd();
if("1".equals(type)){
countTimeStart=format.format(new Date()) +" "+countTimeStart;
countTimeEnd= format.format(new Date()) +" "+countTimeEnd;
List<AccEventRecordHelp> accEventRecordHelps = accEventRecordHelpMapper.selectAllNormal(Integer.valueOf(type),countTimeStart,countTimeEnd);
accEventRecordHelps.forEach(res->{
dormClockRecordMapper.update_info(res.getUserPin(), type, res.getEventTime(),DateUtil.getDateFormat(DateUtil.getCurrenetDateString()));
});
}else if("2".equals(type)){
if(dormParamSetting.getTimeEndType()==1){
countTimeStart=format.format(new Date()) +" "+countTimeStart;
countTimeEnd= format.format(new Date()) +" "+countTimeEnd;
}else{
countTimeStart=DateUtil.getYestaday() +" "+countTimeStart;
countTimeEnd= format.format(new Date()) +" "+countTimeEnd;
}
List<AccEventRecordHelp> accEventRecordHelps = accEventRecordHelpMapper.selectAllNormal(Integer.valueOf(type),countTimeStart,countTimeEnd);
accEventRecordHelps.forEach(res->{
dormClockRecordMapper.update_info(res.getUserPin(), type, res.getEventTime(),DateUtil.getDateFormat(DateUtil.getCurrenetDateString()));
});
String status ="3";
dormClockRecordMapper.update_zero_to_three(DateUtil.getDateFormat(DateUtil.getCurrenetDateString()),status);
}
}