From 062b553909d8dce607931a3abe8dfdab86b062c0 Mon Sep 17 00:00:00 2001 From: Angel <1050374295@qq.com> Date: Tue, 26 Dec 2023 18:23:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E8=BE=86=E7=88=AA=E6=80=95Task?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/TMotorvehicleTask.java | 67 ++++++++++++++++--- .../task/TStrhEntityInfoKsTask.java | 6 +- 2 files changed, 62 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/ssf/mysqloracletest/task/TMotorvehicleTask.java b/src/main/java/com/ssf/mysqloracletest/task/TMotorvehicleTask.java index e7c9453..cbf8afd 100644 --- a/src/main/java/com/ssf/mysqloracletest/task/TMotorvehicleTask.java +++ b/src/main/java/com/ssf/mysqloracletest/task/TMotorvehicleTask.java @@ -5,18 +5,23 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ssf.mysqloracletest.domain.TMotorvehicle; +import com.ssf.mysqloracletest.domain.TStrhEntityInfoKs; +import com.ssf.mysqloracletest.domain.TransitUserRecord; import com.ssf.mysqloracletest.domain.TransitVehicleRecord; import com.ssf.mysqloracletest.service.TMotorvehicleService; import com.ssf.mysqloracletest.service.TransitVehicleRecordService; import com.ssf.mysqloracletest.utils.ConfigParam; import com.ssf.mysqloracletest.utils.StringKit; import lombok.RequiredArgsConstructor; +import org.checkerframework.checker.units.qual.C; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; import java.util.List; import java.util.TimeZone; @@ -30,7 +35,7 @@ public class TMotorvehicleTask { private final TransitVehicleRecordService vehicleRecordService; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); - String maxTime = "20231223000000"; + String maxTime = "20231225000000"; @Scheduled(initialDelay = 100, fixedDelay = 3000) public void setVehicleRecordService() { @@ -40,14 +45,20 @@ public class TMotorvehicleTask { try { dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.gt(TMotorvehicle::getPasstime, maxTime); - int countTM = tMotorvehicleService.count(queryWrapper); + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.orderByDesc(TransitVehicleRecord::getPartitionField); + queryWrapper.last("LIMIT 1"); + TransitVehicleRecord one = vehicleRecordService.getOne(queryWrapper); + Date partitionField = one.getPartitionField(); + maxTime = dateFormat.format(partitionField); + LambdaQueryWrapper Wrapper = Wrappers.lambdaQuery(); + Wrapper.gt(TMotorvehicle::getPasstime, maxTime); + int countTM = tMotorvehicleService.count(Wrapper); if (countTM > 0) { int count = countTM / 1000; for (int i = 0; i <= count; i++) { Page page = new Page<>(i + 1, 1000); - List resultList = tMotorvehicleService.page(page, queryWrapper).getRecords(); + List resultList = tMotorvehicleService.page(page, Wrapper).getRecords(); for (TMotorvehicle Tmvehicle : resultList) { TransitVehicleRecord vehicleRecord = new TransitVehicleRecord(); vehicleRecord.setDoorwayCode(Tmvehicle.getTollgateid()); @@ -71,9 +82,9 @@ public class TMotorvehicleTask { } } else { UpdateWrapper wrapper = new UpdateWrapper<>(); - wrapper.eq("global_pic",Tmvehicle.getStorageurl1()); - boolean update = vehicleRecordService.update(vehicleRecord,wrapper); - if (update){ + wrapper.eq("global_pic", Tmvehicle.getStorageurl1()); + boolean update = vehicleRecordService.update(vehicleRecord, wrapper); + if (update) { logger.info("Vehicle-" + Tmvehicle.getStorageurl1() + ":更新成功"); } } @@ -86,4 +97,44 @@ public class TMotorvehicleTask { logger.info(StringKit.getTrace(e)); } } + + @Scheduled(initialDelay = 100, fixedDelay = 3000) + public void DeleteOldVehicle() { + if (!"true".equals(ConfigParam.DeleteOldVehicleSwtich)) { + return; + } + + try { + dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.orderByDesc(TransitVehicleRecord::getPartitionField); + queryWrapper.last("LIMIT 1"); + TransitVehicleRecord one = vehicleRecordService.getOne(queryWrapper); + Date partitionField = one.getPartitionField(); + maxTime = dateFormat.format(partitionField); + + //将maxTime转换为Date对象 + Date maxDate = dateFormat.parse(maxTime); + + //计算7天前的日期 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxDate); + calendar.add(Calendar.DAY_OF_MONTH, -2); + Date twoDaysAgo = calendar.getTime(); + + //构造删除条件 + LambdaQueryWrapper deleteWrapper = Wrappers.lambdaQuery(); + deleteWrapper.le(TransitVehicleRecord::getPartitionField, twoDaysAgo); + + boolean result = vehicleRecordService.remove(deleteWrapper); + + if (result) { + System.out.println("删除成功! "); + } else { + System.out.println("删除失败! "); + } + } catch (Exception e) { + logger.info(StringKit.getTrace(e)); + } + } } diff --git a/src/main/java/com/ssf/mysqloracletest/task/TStrhEntityInfoKsTask.java b/src/main/java/com/ssf/mysqloracletest/task/TStrhEntityInfoKsTask.java index 8d062f9..6b717eb 100644 --- a/src/main/java/com/ssf/mysqloracletest/task/TStrhEntityInfoKsTask.java +++ b/src/main/java/com/ssf/mysqloracletest/task/TStrhEntityInfoKsTask.java @@ -123,11 +123,11 @@ public class TStrhEntityInfoKsTask { Date sevenDaysAgo = calendar.getTime(); // 构建删除条件 - LambdaQueryWrapper deleteWrapper = Wrappers.lambdaQuery(); - deleteWrapper.le(TStrhEntityInfoKs::getCapturetime, sevenDaysAgo); + LambdaQueryWrapper deleteWrapper = Wrappers.lambdaQuery(); + deleteWrapper.le(TransitUserRecord::getPartitionField, sevenDaysAgo); // 执行删除操作 - boolean result = tStrhEntityInfoKsService.remove(deleteWrapper); + boolean result = transitUserRecordService.remove(deleteWrapper); if (result) { System.out.println("删除成功!");