package com.integrated.zyyt.controller;
|
|
import com.integrated.zyyt.service.ZyytService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import javax.annotation.Resource;
|
import java.lang.reflect.Method;
|
import java.time.Instant;
|
import java.time.LocalDate;
|
import java.time.ZoneId;
|
import java.time.temporal.ChronoUnit;
|
import java.util.Date;
|
import java.util.concurrent.Callable;
|
|
/**
|
* @ClassName ZyytController
|
* @Author cy
|
* @Date 2022/11/15
|
* @Description
|
* @Version 1.0
|
**/
|
@ControllerAdvice
|
@Slf4j
|
@RequestMapping("/api/zyyt")
|
public class ZyytController {
|
// private ExecutorService threadPool = Executors.newFixedThreadPool(6);
|
|
@Resource
|
private ZyytService zyytService;
|
|
@GetMapping("/addStationInfo")
|
/**
|
* @params date 更新的业务日期
|
* @params isForece 1强制更新 2不强制
|
*
|
*/
|
public String addStationInfo() {
|
zyytService.stationInfoTasks();
|
return "执行完毕";
|
}
|
|
@GetMapping("/shkdrbTasks")
|
/**
|
* @params date 更新的业务日期 2022-11-16
|
* @params isForece 1强制更新 2不强制
|
*
|
*/
|
public String shkdrbTasks(String date) {
|
zyytService.shkdrbTasks(LocalDate.parse(date));
|
return "执行完毕";
|
}
|
|
|
@GetMapping("/shkdrbTasksYear")
|
public String shkdrbTasksYear(int year) throws Exception {
|
LocalDate startOfYear = LocalDate.of(year, 1, 1);
|
LocalDate endOfYear = LocalDate.of(year, 12, 31);
|
LocalDate now = LocalDate.now();
|
for (LocalDate tmp = startOfYear; endOfYear.compareTo(tmp) > 0 && now.compareTo(tmp) > 0; tmp = tmp.plus(1, ChronoUnit.DAYS)) {
|
// Instant instant = tmp.atTime(LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
|
// threadPool.submit(new ZyytTask(Date.from(instant), zyytService, "shkdrbTasks"));
|
zyytService.shkdrbTasks(tmp);
|
}
|
return "后台执行中 ,请不要重复请求";
|
|
}
|
|
|
@GetMapping("/djtjbTasks")
|
/**
|
* @params date 更新的业务日期
|
* @params isForece 1强制更新 2不强制
|
*
|
*/
|
public String djtjbTasks(String date) {
|
zyytService.djtjbTasks(LocalDate.parse(date));
|
return "执行完毕";
|
}
|
|
@GetMapping("/djtjbTasksYear")
|
/**
|
* @params date 更新的业务日期
|
* @params isForece 1强制更新 2不强制
|
*
|
*/
|
public String djtjbTasksYear(int year) throws Exception {
|
LocalDate startOfYear = LocalDate.of(year, 1, 1);
|
LocalDate endOfYear = LocalDate.of(year, 12, 31);
|
LocalDate now = LocalDate.now();
|
for (LocalDate tmp = startOfYear; endOfYear.compareTo(tmp) > 0 && now.compareTo(tmp) > 0; tmp = tmp.plus(1, ChronoUnit.DAYS)) {
|
// Instant instant = tmp.atTime(LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
|
// threadPool.submit(new ZyytTask(Date.from(instant), zyytService, "djtjbTasks"));
|
zyytService.djtjbTasks(tmp);
|
}
|
return "123";
|
}
|
|
}
|
|
@Slf4j
|
class ZyytTask implements Callable {
|
private Date date;
|
private ZyytService zyytService;
|
private String methodName;
|
|
public ZyytTask(Date date, ZyytService zyytService, String methodName) {
|
this.date = date;
|
this.zyytService = zyytService;
|
this.methodName = methodName;
|
}
|
|
@Override
|
public Object call() throws Exception {
|
Instant instant = date.toInstant();
|
ZoneId zoneId = ZoneId.systemDefault();
|
LocalDate localDate = instant.atZone(zoneId).toLocalDate();
|
|
log.info("开始:执行方法{},业务日期为{}", methodName, localDate);
|
Method zyytServiceMethod = zyytService.getClass().getMethod(methodName, Date.class);
|
zyytServiceMethod.invoke(zyytService, date);
|
log.info("结束:执行方法{},业务日期为{}", methodName, localDate);
|
return null;
|
}
|
}
|