package cn.exrick.xboot.your.controller.wx; import cn.exrick.xboot.your.entity.OrderStatusCount; import cn.exrick.xboot.your.entity.SignCount; import cn.exrick.xboot.your.service.IOrderTaskService; import cn.exrick.xboot.your.service.ISignCountService; import lombok.AllArgsConstructor; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.Calendar; import java.util.Date; import java.util.List; @Component @Configuration //1.主要用于标记配置类,兼备Component的效果。 @EnableScheduling @AllArgsConstructor public class TaskController { private IOrderTaskService iOrderTaskService; private ISignCountService iSignCountService; //3.添加定时任务 // @Scheduled(cron = "0/5 * * * * ?") // @Scheduled(cron = "0 */1 * * * ?") // @Scheduled(cron = "0 0 2 * * ?")//每天凌晨两点执行一次 @Scheduled(cron = " 0 30 2 * * ?")//每天2.30执行一次 //或直接指定时间间隔,例如:5秒 //@Scheduled(fixedRate=5000) private void configureTasks() { System.err.println("执行存储数据定时任务时间: " + LocalDateTime.now()); OrderStatusCount orderStatusCount = new OrderStatusCount(); List StatusCounts = iOrderTaskService.countStatus(orderStatusCount); if (StatusCounts != null && StatusCounts.size() != 0) { List list = iSignCountService.list(); for (OrderStatusCount statusCount : StatusCounts) { SignCount signCount = new SignCount(); boolean flag = false; for (SignCount signCountS : list) { if (signCountS.getTaskId().equals(statusCount.getId())) { signCount.setId(signCountS.getId()); signCount.setCarName(statusCount.getCarName()); signCount.setAmount(statusCount.getAmount()); signCount.setSignCount(statusCount.getSignCount()); signCount.setAbnormalSign(statusCount.getAbnormalSign()); signCount.setBatch(statusCount.getBatch()); signCount.setLine(statusCount.getLine()); signCount.setNotSignCount(statusCount.getNotSignCount()); String SendDate=getBeforeOneDayByStringDate(statusCount.getSendDate()); signCount.setSendDate(SendDate); signCount.setProportion(statusCount.getProportion()); signCount.setUserName(statusCount.getUserName()); signCount.setTaskId(statusCount.getId()); iSignCountService.saveOrUpdate(signCount); System.out.println("更新成功"); flag = true; break; } } if (flag) { continue; } signCount.setCarName(statusCount.getCarName()); signCount.setAmount(statusCount.getAmount()); signCount.setSignCount(statusCount.getSignCount()); signCount.setAbnormalSign(statusCount.getAbnormalSign()); signCount.setBatch(statusCount.getBatch()); signCount.setLine(statusCount.getLine()); signCount.setNotSignCount(statusCount.getNotSignCount()); String SendDate=getBeforeOneDayByStringDate(statusCount.getSendDate()); signCount.setSendDate(SendDate); signCount.setProportion(statusCount.getProportion()); signCount.setUserName(statusCount.getUserName()); signCount.setTaskId(statusCount.getId()); if (iSignCountService.saveOrUpdate(signCount)) { System.out.println("定时存储成功"); } } } } private String getBeforeOneDayByStringDate(String dateString) { String times = ""; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date d; try { d = format.parse(dateString); Calendar calendar = Calendar.getInstance(); calendar.setTime(d); calendar.add(Calendar.DAY_OF_MONTH, -1); // 在当前日基础上-1 String format1 = format.format(calendar.getTime()); times = format1; //获取String类型的时间 } catch (ParseException e) { e.printStackTrace(); } return times; } }