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<OrderStatusCount> StatusCounts = iOrderTaskService.countStatus(orderStatusCount);
|
if (StatusCounts != null && StatusCounts.size() != 0) {
|
List<SignCount> 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;
|
}
|
}
|