|
@@ -15,14 +15,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import lombok.Value;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.cache.annotation.CacheEvict;
|
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.cache.annotation.CacheRemove;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.time.Duration;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -38,13 +42,13 @@ public class BackgroundConvertDataServiceImpl extends ServiceImpl<BackgroundConv
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @Cacheable(value = RedisConstantServer.DASHBOARD_ANALYSIS_DATA, key = "#queryDTO.tenantId", unless = "#result == null")
|
|
|
+ @Cacheable(value = RedisConstantServer.DASHBOARD_ANALYSIS_DATA,cacheManager = "oneDayCacheManager", key = "T(String).valueOf(#queryDTO.toString())", unless = "#result == null")
|
|
|
public AnalysisDataDTO getAnalysisData(DashboardQueryDTO queryDTO) {
|
|
|
// 获取一个查询query
|
|
|
LambdaQueryWrapper<BackgroundConvertData> queryWrapper = getDashboardQueryWrapper(queryDTO);
|
|
|
|
|
|
List<BackgroundConvertData> backgroundConvertData = this.baseMapper.selectList(queryWrapper);
|
|
|
- if (backgroundConvertData == null){
|
|
|
+ if (backgroundConvertData == null || backgroundConvertData.size() <= 0) {
|
|
|
return null;
|
|
|
}
|
|
|
long fileTotal = 0; // 文件总数
|
|
@@ -69,46 +73,317 @@ public class BackgroundConvertDataServiceImpl extends ServiceImpl<BackgroundConv
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Cacheable(value = RedisConstantServer.DASHBOARD_SUCCESS_DATA,cacheManager = "oneDayCacheManager", key = "T(String).valueOf(#queryDTO.toString())", unless = "#result == null")
|
|
|
public List<DashboardDetailedDataDTO> getSuccessfulRequestDetailedData(DashboardQueryDTO queryDTO) {
|
|
|
LambdaQueryWrapper<BackgroundConvertData> queryWrapper = getDashboardQueryWrapper(queryDTO);
|
|
|
// 添加select 查询参数
|
|
|
- queryWrapper.select(BackgroundConvertData::getFileSuccessTotal)
|
|
|
- .select(BackgroundConvertData::getSyncTime);
|
|
|
+ queryWrapper.select(BackgroundConvertData::getFileSuccessTotal,BackgroundConvertData::getSyncTime);
|
|
|
// 查询数据
|
|
|
List<BackgroundConvertData> backgroundConvertData = this.baseMapper.selectList(queryWrapper);
|
|
|
// 判断查询类型
|
|
|
- switch (queryDTO.getQueryType()){
|
|
|
- case 0: break;
|
|
|
- case 1: break;
|
|
|
- default: throw new CommonException(ResponseEnum.SYSTEM_ERROR);
|
|
|
- }
|
|
|
-
|
|
|
+ LocalDateTime nowTime = LocalDateTime.now();
|
|
|
+ // 减去分钟数
|
|
|
+ nowTime = nowTime.minus(nowTime.getMinute(), ChronoUnit.MINUTES);
|
|
|
+ // 返回数据集合
|
|
|
+ List<DashboardDetailedDataDTO> dataDTOS = new ArrayList<>();
|
|
|
|
|
|
-
|
|
|
- return null;
|
|
|
+ int successTotal = 0;
|
|
|
+ switch (queryDTO.getQueryType()) {
|
|
|
+ case 0:
|
|
|
+ if (queryDTO.getDays() == 1) {
|
|
|
+ for (int i = 0; i < 24; i++) {
|
|
|
+ // 减去 i 小时时间
|
|
|
+ LocalDateTime minus = nowTime.minus(i, ChronoUnit.HOURS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1小时
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusHours(1))) {
|
|
|
+ successTotal += backgroundConvertDatum.getFileSuccessTotal();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(successTotal + "").build());
|
|
|
+ successTotal = 0;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (int i = 0; i < queryDTO.getDays(); i++) {
|
|
|
+ // 减去 i 天时间
|
|
|
+ LocalDateTime minus = nowTime.minus(i, ChronoUnit.DAYS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1天
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusDays(1))) {
|
|
|
+ successTotal += backgroundConvertDatum.getFileSuccessTotal();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(successTotal + "").build());
|
|
|
+ successTotal = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ LocalDateTime startDateTime = queryDTO.getStartDateTime();
|
|
|
+ LocalDateTime endDateTime = queryDTO.getEndDateTime();
|
|
|
+ Duration duration = Duration.between(startDateTime, endDateTime);
|
|
|
+ long days = duration.toDays(); //相差的天数
|
|
|
+ if (days == 0L) {
|
|
|
+ for (int i = 0; i < nowTime.getHour(); i++) {
|
|
|
+ // 减去 i 小时时间
|
|
|
+ LocalDateTime minus = nowTime.minus(i, ChronoUnit.HOURS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1小时
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusHours(1))) {
|
|
|
+ successTotal += backgroundConvertDatum.getFileSuccessTotal();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(successTotal + "").build());
|
|
|
+ successTotal = 0;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (int i = 0; i < days; i++) {
|
|
|
+ // 减去 i 天时间
|
|
|
+ LocalDateTime minus = endDateTime.minus(i, ChronoUnit.DAYS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1天
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusDays(1))) {
|
|
|
+ successTotal += backgroundConvertDatum.getFileSuccessTotal();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(successTotal + "").build());
|
|
|
+ successTotal = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new CommonException(ResponseEnum.SYSTEM_ERROR);
|
|
|
+ }
|
|
|
+ return dataDTOS;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Cacheable(value = RedisConstantServer.DASHBOARD_FAIL_DATA,cacheManager = "oneDayCacheManager", key = "T(String).valueOf(#queryDTO.toString())", unless = "#result == null")
|
|
|
public List<DashboardDetailedDataDTO> getErrorRequestDetailedData(DashboardQueryDTO queryDTO) {
|
|
|
- return null;
|
|
|
+ LambdaQueryWrapper<BackgroundConvertData> queryWrapper = getDashboardQueryWrapper(queryDTO);
|
|
|
+ // 添加select 查询参数
|
|
|
+ queryWrapper.select(BackgroundConvertData::getFileFailedTotal,BackgroundConvertData::getSyncTime);
|
|
|
+ // 查询数据
|
|
|
+ List<BackgroundConvertData> backgroundConvertData = this.baseMapper.selectList(queryWrapper);
|
|
|
+ // 判断查询类型
|
|
|
+ LocalDateTime nowTime = LocalDateTime.now();
|
|
|
+ // 减去分钟数
|
|
|
+ nowTime = nowTime.minus(nowTime.getMinute(), ChronoUnit.MINUTES);
|
|
|
+ // 返回数据集合
|
|
|
+ List<DashboardDetailedDataDTO> dataDTOS = new ArrayList<>();
|
|
|
+
|
|
|
+ int fileFailedTotal = 0;
|
|
|
+ switch (queryDTO.getQueryType()) {
|
|
|
+ case 0:
|
|
|
+ if (queryDTO.getDays() == 1) {
|
|
|
+ for (int i = 0; i < 24; i++) {
|
|
|
+ // 减去 i 小时时间
|
|
|
+ LocalDateTime minus = nowTime.minus(i, ChronoUnit.HOURS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1小时
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusHours(1))) {
|
|
|
+ fileFailedTotal += backgroundConvertDatum.getFileFailedTotal();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(fileFailedTotal + "").build());
|
|
|
+ fileFailedTotal = 0;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (int i = 0; i < queryDTO.getDays(); i++) {
|
|
|
+ // 减去 i 天时间
|
|
|
+ LocalDateTime minus = nowTime.minus(i, ChronoUnit.DAYS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1天
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusDays(1))) {
|
|
|
+ fileFailedTotal += backgroundConvertDatum.getFileFailedTotal();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(fileFailedTotal + "").build());
|
|
|
+ fileFailedTotal = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ LocalDateTime startDateTime = queryDTO.getStartDateTime();
|
|
|
+ LocalDateTime endDateTime = queryDTO.getEndDateTime();
|
|
|
+ Duration duration = Duration.between(startDateTime, endDateTime);
|
|
|
+ long days = duration.toDays(); //相差的天数
|
|
|
+ if (days == 0L) {
|
|
|
+ for (int i = 0; i < nowTime.getHour(); i++) {
|
|
|
+ // 减去 i 小时时间
|
|
|
+ LocalDateTime minus = nowTime.minus(i, ChronoUnit.HOURS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1小时
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusHours(1))) {
|
|
|
+ fileFailedTotal += backgroundConvertDatum.getFileFailedTotal();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(fileFailedTotal + "").build());
|
|
|
+ fileFailedTotal = 0;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (int i = 0; i < days; i++) {
|
|
|
+ // 减去 i 天时间
|
|
|
+ LocalDateTime minus = endDateTime.minus(i, ChronoUnit.DAYS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1天
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusDays(1))) {
|
|
|
+ fileFailedTotal += backgroundConvertDatum.getFileFailedTotal();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(fileFailedTotal + "").build());
|
|
|
+ fileFailedTotal = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new CommonException(ResponseEnum.SYSTEM_ERROR);
|
|
|
+ }
|
|
|
+ return dataDTOS;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Cacheable(value = RedisConstantServer.DASHBOARD_ERROR_RATIO_DATA,cacheManager = "oneDayCacheManager", key = "T(String).valueOf(#queryDTO.toString())", unless = "#result == null")
|
|
|
public List<DashboardDetailedDataDTO> getErrorRatioDetailedData(DashboardQueryDTO queryDTO) {
|
|
|
- return null;
|
|
|
+ List<DashboardDetailedDataDTO> successfulRequestDetailedData = this.getSuccessfulRequestDetailedData(queryDTO);
|
|
|
+ List<DashboardDetailedDataDTO> errorRequestDetailedData = this.getErrorRequestDetailedData(queryDTO);
|
|
|
+ List<DashboardDetailedDataDTO> dataDTOS = new ArrayList<>();
|
|
|
+ for (int i = 0; i < successfulRequestDetailedData.size(); i++) {
|
|
|
+
|
|
|
+ int fileTotal = Integer.parseInt(successfulRequestDetailedData.get(i).getYData()) + Integer.parseInt(errorRequestDetailedData.get(i).getYData());
|
|
|
+
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(successfulRequestDetailedData.get(i).getXData())
|
|
|
+ .yData(fileTotal == 0 ? "0.00" : new BigDecimal(String.format("%.2f",Integer.parseInt(errorRequestDetailedData.get(i).getYData()) * 100.00
|
|
|
+ / fileTotal)).toString())
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+ return dataDTOS;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Cacheable(value = RedisConstantServer.DASHBOARD_AVERAGE_PROCESS_DATA,cacheManager = "oneDayCacheManager", key = "T(String).valueOf(#queryDTO.toString())", unless = "#result == null")
|
|
|
public List<DashboardDetailedDataDTO> getAverageProcessTimeDetailedData(DashboardQueryDTO queryDTO) {
|
|
|
- return null;
|
|
|
+ LambdaQueryWrapper<BackgroundConvertData> queryWrapper = getDashboardQueryWrapper(queryDTO);
|
|
|
+ // 添加select 查询参数
|
|
|
+ queryWrapper.select(BackgroundConvertData::getFileConvertTime,BackgroundConvertData::getSyncTime);
|
|
|
+ // 查询数据
|
|
|
+ List<BackgroundConvertData> backgroundConvertData = this.baseMapper.selectList(queryWrapper);
|
|
|
+ // 判断查询类型
|
|
|
+ LocalDateTime nowTime = LocalDateTime.now();
|
|
|
+ // 减去分钟数
|
|
|
+ nowTime = nowTime.minus(nowTime.getMinute(), ChronoUnit.MINUTES);
|
|
|
+ // 返回数据集合
|
|
|
+ List<DashboardDetailedDataDTO> dataDTOS = new ArrayList<>();
|
|
|
+
|
|
|
+ BigDecimal convertTime = new BigDecimal(0);
|
|
|
+ switch (queryDTO.getQueryType()) {
|
|
|
+ case 0:
|
|
|
+ if (queryDTO.getDays() == 1) {
|
|
|
+ for (int i = 0; i < 24; i++) {
|
|
|
+ // 减去 i 小时时间
|
|
|
+ LocalDateTime minus = nowTime.minus(i, ChronoUnit.HOURS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1小时
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusHours(1))) {
|
|
|
+ convertTime = convertTime.add(backgroundConvertDatum.getFileConvertTime());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(convertTime.toString()).build());
|
|
|
+ convertTime = new BigDecimal(0);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (int i = 0; i < queryDTO.getDays(); i++) {
|
|
|
+ // 减去 i 天时间
|
|
|
+ LocalDateTime minus = nowTime.minus(i, ChronoUnit.DAYS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1天
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusDays(1))) {
|
|
|
+ convertTime = convertTime.add(backgroundConvertDatum.getFileConvertTime());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(convertTime.toString()).build());
|
|
|
+ convertTime = new BigDecimal(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ LocalDateTime startDateTime = queryDTO.getStartDateTime();
|
|
|
+ LocalDateTime endDateTime = queryDTO.getEndDateTime();
|
|
|
+ Duration duration = Duration.between(startDateTime, endDateTime);
|
|
|
+ long days = duration.toDays(); //相差的天数
|
|
|
+ if (days == 0L) {
|
|
|
+ for (int i = 0; i < nowTime.getHour(); i++) {
|
|
|
+ // 减去 i 小时时间
|
|
|
+ LocalDateTime minus = nowTime.minus(i, ChronoUnit.HOURS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1小时
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusHours(1))) {
|
|
|
+ convertTime = convertTime.add(backgroundConvertDatum.getFileConvertTime());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(convertTime.toString()).build());
|
|
|
+ convertTime = new BigDecimal(0);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (int i = 0; i < days; i++) {
|
|
|
+ // 减去 i 天时间
|
|
|
+ LocalDateTime minus = endDateTime.minus(i, ChronoUnit.DAYS);
|
|
|
+ for (BackgroundConvertData backgroundConvertDatum : backgroundConvertData) {
|
|
|
+ // 如果同步时间大于当前 minus 并且小于 minus+1天
|
|
|
+ if (backgroundConvertDatum.getSyncTime().isAfter(minus) && backgroundConvertDatum.getSyncTime().isBefore(minus.plusDays(1))) {
|
|
|
+ convertTime = convertTime.add(backgroundConvertDatum.getFileConvertTime());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataDTOS.add(DashboardDetailedDataDTO.builder()
|
|
|
+ .xData(minus.toString())
|
|
|
+ .yData(convertTime.toString()).build());
|
|
|
+ convertTime = new BigDecimal(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new CommonException(ResponseEnum.SYSTEM_ERROR);
|
|
|
+ }
|
|
|
+ return dataDTOS;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @CacheEvict(cacheNames = RedisConstantServer.DASHBOARD+"*" ,allEntries = true)
|
|
|
+ public void test() {
|
|
|
+ System.out.println("删除");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 获取Dashboard 查询使用的LambdaQueryWrapper
|
|
|
+ *
|
|
|
* @param queryDTO 查询参数
|
|
|
* @return Dashboard 查询使用的LambdaQueryWrapper
|
|
|
*/
|
|
|
- private LambdaQueryWrapper<BackgroundConvertData> getDashboardQueryWrapper(DashboardQueryDTO queryDTO){
|
|
|
+ private LambdaQueryWrapper<BackgroundConvertData> getDashboardQueryWrapper(DashboardQueryDTO queryDTO) {
|
|
|
LambdaQueryWrapper<BackgroundConvertData> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
// 查询类型
|
|
|
Integer queryType = queryDTO.getQueryType();
|
|
@@ -118,6 +393,7 @@ public class BackgroundConvertDataServiceImpl extends ServiceImpl<BackgroundConv
|
|
|
Integer days = queryDTO.getDays();
|
|
|
if (days > 30 || days < 1) {
|
|
|
days = 30;
|
|
|
+ queryDTO.setDays(30);
|
|
|
}
|
|
|
LocalDateTime nowDateTime = LocalDateTime.now();
|
|
|
LocalDateTime minus = nowDateTime.minus(days, ChronoUnit.DAYS);
|
|
@@ -132,9 +408,11 @@ public class BackgroundConvertDataServiceImpl extends ServiceImpl<BackgroundConv
|
|
|
} else if (startDateTime.equals(endDateTime)) {
|
|
|
// 开始时间等于结束时间
|
|
|
endDateTime = endDateTime.plusDays(1);
|
|
|
+ queryDTO.setEndDateTime(endDateTime.plusDays(1));
|
|
|
} else if (Duration.between(startDateTime, endDateTime).toDays() > 30) {
|
|
|
// 开始时间和结束时间大于30天
|
|
|
startDateTime = endDateTime.minus(30, ChronoUnit.DAYS);
|
|
|
+ queryDTO.setStartDateTime(endDateTime.minus(30, ChronoUnit.DAYS));
|
|
|
}
|
|
|
queryWrapper.ge(BackgroundConvertData::getSyncTime, startDateTime)
|
|
|
.le(BackgroundConvertData::getSyncTime, endDateTime);
|
|
@@ -154,8 +432,11 @@ public class BackgroundConvertDataServiceImpl extends ServiceImpl<BackgroundConv
|
|
|
}
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
- LocalDateTime nowDateTime = LocalDateTime.now();
|
|
|
- LocalDateTime minus = nowDateTime.minus(20, ChronoUnit.DAYS);
|
|
|
- System.out.println(minus.toString());
|
|
|
+// String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH"));
|
|
|
+// LocalDateTime minus = DateUtil.toLocalDateTime(format, "yyyy-MM-dd HH");
|
|
|
+// LocalDateTime minus = nowDateTime.minus(20, ChronoUnit.DAYS);
|
|
|
+ LocalDateTime minus = LocalDateTime.now();
|
|
|
+ LocalDateTime minus1 = minus.minus(minus.getMinute(), ChronoUnit.MINUTES);
|
|
|
+ System.out.println(minus1.toString());
|
|
|
}
|
|
|
}
|