From df15e866ebebdd94ad9a415015fa814064f7e395 Mon Sep 17 00:00:00 2001 From: Angel <1050374295@qq.com> Date: Wed, 3 Jan 2024 10:55:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E6=B5=81---0.0.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/PeopleVehicleFlow.java | 25 +++++++ .../mapper/PeopleVehicleFlowMapper.java | 10 +++ .../service/PeopleVehicleFlowService.java | 7 ++ .../impl/PeopleVehicleFlowServiceImpl.java | 13 ++++ .../task/PeopleVehicleFlowTask.java | 66 +++++++++++++++++++ 5 files changed, 121 insertions(+) create mode 100644 src/main/java/com/ssf/mysqloracletest/domain/PeopleVehicleFlow.java create mode 100644 src/main/java/com/ssf/mysqloracletest/mapper/PeopleVehicleFlowMapper.java create mode 100644 src/main/java/com/ssf/mysqloracletest/service/PeopleVehicleFlowService.java create mode 100644 src/main/java/com/ssf/mysqloracletest/service/impl/PeopleVehicleFlowServiceImpl.java create mode 100644 src/main/java/com/ssf/mysqloracletest/task/PeopleVehicleFlowTask.java diff --git a/src/main/java/com/ssf/mysqloracletest/domain/PeopleVehicleFlow.java b/src/main/java/com/ssf/mysqloracletest/domain/PeopleVehicleFlow.java new file mode 100644 index 0000000..e95e2b3 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/domain/PeopleVehicleFlow.java @@ -0,0 +1,25 @@ +package com.ssf.mysqloracletest.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +@TableName(value = "people_vehicle_flow") +@Data +public class PeopleVehicleFlow implements Serializable { + /** + * 日期 + * */ + private String date; + + /** + * 流量 + * */ + private String flow; + + /** + * 类别(1:人/2:车) + * */ + private Integer type; +} diff --git a/src/main/java/com/ssf/mysqloracletest/mapper/PeopleVehicleFlowMapper.java b/src/main/java/com/ssf/mysqloracletest/mapper/PeopleVehicleFlowMapper.java new file mode 100644 index 0000000..f01d7cb --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/mapper/PeopleVehicleFlowMapper.java @@ -0,0 +1,10 @@ +package com.ssf.mysqloracletest.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ssf.mysqloracletest.domain.PeopleVehicleFlow; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PeopleVehicleFlowMapper extends BaseMapper { + +} diff --git a/src/main/java/com/ssf/mysqloracletest/service/PeopleVehicleFlowService.java b/src/main/java/com/ssf/mysqloracletest/service/PeopleVehicleFlowService.java new file mode 100644 index 0000000..c64bd04 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/PeopleVehicleFlowService.java @@ -0,0 +1,7 @@ +package com.ssf.mysqloracletest.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ssf.mysqloracletest.domain.PeopleVehicleFlow; + +public interface PeopleVehicleFlowService extends IService { +} diff --git a/src/main/java/com/ssf/mysqloracletest/service/impl/PeopleVehicleFlowServiceImpl.java b/src/main/java/com/ssf/mysqloracletest/service/impl/PeopleVehicleFlowServiceImpl.java new file mode 100644 index 0000000..8c3fe47 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/impl/PeopleVehicleFlowServiceImpl.java @@ -0,0 +1,13 @@ +package com.ssf.mysqloracletest.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ssf.mysqloracletest.domain.PeopleVehicleFlow; +import com.ssf.mysqloracletest.mapper.PeopleVehicleFlowMapper; +import com.ssf.mysqloracletest.service.PeopleVehicleFlowService; +import org.springframework.stereotype.Service; + +@Service +@DS("mysql") +public class PeopleVehicleFlowServiceImpl extends ServiceImpl implements PeopleVehicleFlowService { +} diff --git a/src/main/java/com/ssf/mysqloracletest/task/PeopleVehicleFlowTask.java b/src/main/java/com/ssf/mysqloracletest/task/PeopleVehicleFlowTask.java new file mode 100644 index 0000000..4875cad --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/task/PeopleVehicleFlowTask.java @@ -0,0 +1,66 @@ +package com.ssf.mysqloracletest.task; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ssf.mysqloracletest.domain.PeopleVehicleFlow; +import com.ssf.mysqloracletest.domain.TMotorvehicle; +import com.ssf.mysqloracletest.service.PeopleVehicleFlowService; +import com.ssf.mysqloracletest.service.TMotorvehicleService; +import com.ssf.mysqloracletest.service.TStrhEntityInfoKsService; +import com.ssf.mysqloracletest.utils.ConfigParam; +import com.ssf.mysqloracletest.utils.StringKit; +import lombok.RequiredArgsConstructor; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.slf4j.Logger; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +@Component +@RequiredArgsConstructor +public class PeopleVehicleFlowTask { + private static final Logger logger = LoggerFactory.getLogger(PeopleVehicleFlowTask.class); + //元表车 + private final TMotorvehicleService tMotorvehicleService; + //元表人 + private final TStrhEntityInfoKsService tStrhEntityInfoKsService; + //人车流量业表 + private final PeopleVehicleFlowService peopleVehicleFlowService; + + @Scheduled(initialDelay = 100, fixedDelay = 3000) + public void setVehicleFlowService() { + if (!"true".equals(ConfigParam.vehicleFlowSwitch)) { + return; + } + + try { + //获取当前日期 +// LocalDateTime currentDate = LocalDateTime.now();//例如:2023-10-10 00:00:00 +// LocalDateTime startOfDay = currentDate.withHour(0).withMinute(0).withSecond(0); + LocalDate localDate = LocalDate.now(); + //循环迭代7天 + for (int i = 0; i < 7; i++) { + //构造查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + // 减去 i 天并设置查询条件的日期字段 +// LocalDateTime targetDate = currentDate.minusDays(i); + LocalDate date = localDate.minusDays(i); + // 将日期部分格式化为数据库存储格式 + String formattedDate = date.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); + + queryWrapper.between("passtime", formattedDate,date.plusDays(1).format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); + int count = tMotorvehicleService.count(queryWrapper); + PeopleVehicleFlow peopleVehicleFlow = new PeopleVehicleFlow(); + peopleVehicleFlow.setFlow(String.valueOf(count)); + peopleVehicleFlow.setType(2); + peopleVehicleFlow.setDate(date.toString()); + peopleVehicleFlowService.save(peopleVehicleFlow); + } + } catch (Exception e) { + logger.info(StringKit.getTrace(e)); + } + } +}