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)); + } + } +}