Commit c3340a83 authored by duanruiming's avatar duanruiming

[update] 济南测试平台-转向数据

parent 666fadc9
...@@ -11,6 +11,7 @@ import net.wanji.opt.bo.*; ...@@ -11,6 +11,7 @@ import net.wanji.opt.bo.*;
import net.wanji.opt.dto.trend.AbnormalCrossListDTO; import net.wanji.opt.dto.trend.AbnormalCrossListDTO;
import net.wanji.opt.dto.trend.EventAlarmDTO; import net.wanji.opt.dto.trend.EventAlarmDTO;
import net.wanji.opt.dto.trend.GreenwaveListDTO; import net.wanji.opt.dto.trend.GreenwaveListDTO;
import net.wanji.opt.po.trend.AnalysisRidTurnIndicators;
import net.wanji.opt.service.impl.TrendServiceImpl; import net.wanji.opt.service.impl.TrendServiceImpl;
import net.wanji.opt.vo.*; import net.wanji.opt.vo.*;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -300,4 +301,16 @@ public class TrendController { ...@@ -300,4 +301,16 @@ public class TrendController {
List<TableQueryVO.RealTimeDataElement> result = trendService.laneSnapshotIndex(crossIdDateTimeVO); List<TableQueryVO.RealTimeDataElement> result = trendService.laneSnapshotIndex(crossIdDateTimeVO);
return JsonViewObject.newInstance().success(result); return JsonViewObject.newInstance().success(result);
} }
@ApiOperation(value = "车道周期转向数据", notes = "车道周期转向数据", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/lanePeriodTurnData",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = List.class),
})
public JsonViewObject lanePeriodTurnData(@RequestBody CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception {
List<AnalysisRidTurnIndicators> result = trendService.lanePeriodTurnData(crossIdDateTimeVO);
return JsonViewObject.newInstance().success(result);
}
} }
\ No newline at end of file
package net.wanji.opt.dao.mapper.trend;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.opt.po.trend.AnalysisRidTurnIndicators;
import org.springframework.stereotype.Repository;
/**
* @author duanruiming
* @date 2024/05/16 17:10
*/
@Repository
@DS("holo")
public interface AnalysisRidTurnIndicatorsMapper extends BaseMapper<AnalysisRidTurnIndicators> {
}
package net.wanji.opt.po.trend;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_analysis_rid_turn_indicators")
@ApiModel(value = "AnalysisRidTurnIndicators", description = "")
public class AnalysisRidTurnIndicators implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键", hidden = true)
private Integer oid;
@ApiModelProperty(value = "路口id")
private String crossId;
@ApiModelProperty(name = "fRid", value = "进口rid")
@JsonProperty("fRid")
private String fRid;
@ApiModelProperty(name = "fRidDir", value = "进口道方向 1北;2东北;3东;4东南;5南;6西南;7西;8西北")
@JsonProperty("fRidDir")
private Integer fRidDir;
@ApiModelProperty(value = "出口rid", hidden = true)
@JsonProperty("tRid")
private String tRid;
@ApiModelProperty(value = "转向类型 根据进入、出口路段转向计算 1 左转 2 直行3右转 4 掉头")
private Integer turnDirNo;
@ApiModelProperty(value = "交通流量")
private Integer flow;
@ApiModelProperty(value = "平均速度")
private BigDecimal speed;
@ApiModelProperty(value = "排队长度")
private Integer queueLength;
@ApiModelProperty(value = "绿灯有效利用率")
private BigDecimal greenUsageRate;
@ApiModelProperty(value = "平均停车次数")
private BigDecimal stopNum;
@ApiModelProperty(value = "一次停车率")
private BigDecimal onceStopRate;
@ApiModelProperty(value = "二次停车率")
private BigDecimal secondStopRate;
@ApiModelProperty(value = "三次停车率")
private BigDecimal threeStopRate;
@ApiModelProperty(value = "不停车通过率")
private BigDecimal noStopRate;
@ApiModelProperty(value = "交通状态")
private String trafficState;
@ApiModelProperty(value = "分析粒度【5m:五分钟 10m:10分钟 30m:30分钟 1h:一小时】", hidden = true)
private String granularity;
@JSONField(format = "yyyy-MM-dd HH:mm:ss.SSS")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS", timezone = "GMT+8")
private Date windowStartTime;
@JSONField(format = "yyyy-MM-dd HH:mm:ss.SSS")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS", timezone = "GMT+8")
private Date windowEndTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS", timezone = "GMT+8")
private Date ruksj;
}
\ No newline at end of file
...@@ -5,6 +5,7 @@ import net.wanji.databus.vo.GreenwaveListVO; ...@@ -5,6 +5,7 @@ import net.wanji.databus.vo.GreenwaveListVO;
import net.wanji.opt.bo.*; import net.wanji.opt.bo.*;
import net.wanji.opt.dto.trend.AbnormalCrossListDTO; import net.wanji.opt.dto.trend.AbnormalCrossListDTO;
import net.wanji.opt.dto.trend.GreenwaveListDTO; import net.wanji.opt.dto.trend.GreenwaveListDTO;
import net.wanji.opt.po.trend.AnalysisRidTurnIndicators;
import net.wanji.opt.vo.*; import net.wanji.opt.vo.*;
import java.text.ParseException; import java.text.ParseException;
...@@ -60,4 +61,6 @@ public interface TrendService { ...@@ -60,4 +61,6 @@ public interface TrendService {
List<TableQueryVO.CycleDataElement> laneTrafficIndex(CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception; List<TableQueryVO.CycleDataElement> laneTrafficIndex(CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception;
List<TableQueryVO.RealTimeDataElement> laneSnapshotIndex(CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception; List<TableQueryVO.RealTimeDataElement> laneSnapshotIndex(CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception;
List<AnalysisRidTurnIndicators> lanePeriodTurnData(CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception;
} }
...@@ -23,6 +23,7 @@ import net.wanji.opt.dao.mapper.strategy.SceneMapper; ...@@ -23,6 +23,7 @@ import net.wanji.opt.dao.mapper.strategy.SceneMapper;
import net.wanji.opt.dao.mapper.strategy.SceneStrategyIdeaMapper; import net.wanji.opt.dao.mapper.strategy.SceneStrategyIdeaMapper;
import net.wanji.opt.dao.mapper.strategy.SceneStrategyMapper; import net.wanji.opt.dao.mapper.strategy.SceneStrategyMapper;
import net.wanji.opt.dao.mapper.strategy.StrategyMapper; import net.wanji.opt.dao.mapper.strategy.StrategyMapper;
import net.wanji.opt.dao.mapper.trend.AnalysisRidTurnIndicatorsMapper;
import net.wanji.opt.dao.mapper.trend.EventAlarmMapper; import net.wanji.opt.dao.mapper.trend.EventAlarmMapper;
import net.wanji.opt.dto.CrossLaneSnapshotDataDTO; import net.wanji.opt.dto.CrossLaneSnapshotDataDTO;
import net.wanji.opt.dto.LineSchemeDTO; import net.wanji.opt.dto.LineSchemeDTO;
...@@ -31,6 +32,7 @@ import net.wanji.opt.dto.trend.GreenwaveListDTO; ...@@ -31,6 +32,7 @@ import net.wanji.opt.dto.trend.GreenwaveListDTO;
import net.wanji.opt.po.base.CrossSchemeOptLogPO; import net.wanji.opt.po.base.CrossSchemeOptLogPO;
import net.wanji.opt.po.strategy.ScenePO; import net.wanji.opt.po.strategy.ScenePO;
import net.wanji.opt.po.strategy.StrategyPO; import net.wanji.opt.po.strategy.StrategyPO;
import net.wanji.opt.po.trend.AnalysisRidTurnIndicators;
import net.wanji.opt.po.trend.EventAlarmPO; import net.wanji.opt.po.trend.EventAlarmPO;
import net.wanji.opt.service.TrendService; import net.wanji.opt.service.TrendService;
import net.wanji.opt.service.es.LaneSnapshotDataQueryService; import net.wanji.opt.service.es.LaneSnapshotDataQueryService;
...@@ -95,6 +97,7 @@ public class TrendServiceImpl implements TrendService { ...@@ -95,6 +97,7 @@ public class TrendServiceImpl implements TrendService {
private final DirectionMappingsConfig directionMappingsConfig; private final DirectionMappingsConfig directionMappingsConfig;
private final CrossDataHistMapper crossDataHistMapper; private final CrossDataHistMapper crossDataHistMapper;
private final RunningEvaluateServiceImpl runningEvaluateService; private final RunningEvaluateServiceImpl runningEvaluateService;
private final AnalysisRidTurnIndicatorsMapper ridTurnIndicatorsMapper;
// 用于计算路口状态,key为方向,value为状态 // 用于计算路口状态,key为方向,value为状态
private Map<Integer, Integer> preStatus = new HashMap<Integer, Integer>() {{ private Map<Integer, Integer> preStatus = new HashMap<Integer, Integer>() {{
...@@ -121,7 +124,8 @@ public class TrendServiceImpl implements TrendService { ...@@ -121,7 +124,8 @@ public class TrendServiceImpl implements TrendService {
CrossDirDataHistMapper crossDirDataHistMapper, EventAlarmMapper eventAlarmMapper, CrossDirDataHistMapper crossDirDataHistMapper, EventAlarmMapper eventAlarmMapper,
RidInfoMapper ridInfoMapper, BaseCrossDirInfoMapper baseCrossDirInfoMapper, RidInfoMapper ridInfoMapper, BaseCrossDirInfoMapper baseCrossDirInfoMapper,
CrossSchemeOptLogMapper crossSchemeOptLogMapper, GreenwaveCrossMapper greenwaveCrossMapper, CrossDirDataRealtimeMapper crossDirDataRealtimeMapper, GreenwaveHistMapper greenwaveHistMapper, GreenwaveRealtimeMapper greenwaveRealtimeMapper, SceneStrategyIdeaMapper strategyIdeaMapper, StrategyMapper strategyMapper, BaseCrossSchedulesMapper baseCrossSchedulesMapper, BaseCrossSchedulesPlanMapper baseCrossSchedulesPlanMapper, BaseCrossSectionMapper baseCrossSectionMapper, BaseCrossSchemeMapper crossSchemeMapper, BaseCrossSchemeMapper baseCrossSchemeMapper, BaseCrossPhaseMapper baseCrossPhaseMapper, BaseCrossPhaseLightsMapper crossPhaseLightsMapper, BaseCrossLaneLightsMapper baseCrossLaneLightsMapper, CrossBaseLaneInfoMapper crossBaseLaneInfoMapper, CrossTurnDataHistMapper crossTurnDataHistMapper, @Qualifier("greenwaveSceneMapper") GreenwaveSceneMapper greenwaveSceneMapper, @Qualifier("sceneStrategyMapper") SceneStrategyMapper sceneStrategyMapper, @Qualifier("sceneMapper") SceneMapper sceneMapper, @Qualifier("baseCrossPlanMapper") BaseCrossPlanMapper baseCrossPlanMapper, MainlineEvaluateServiceImpl mainlineEvaluateServiceImpl, CrossLaneDataHistMapper crossLaneDataHistMapper, LaneSnapshotDataQueryService laneSnapshotDataQueryService, DirectionMappingsConfig directionMappingsConfig, CrossSchemeOptLogMapper crossSchemeOptLogMapper, GreenwaveCrossMapper greenwaveCrossMapper, CrossDirDataRealtimeMapper crossDirDataRealtimeMapper, GreenwaveHistMapper greenwaveHistMapper, GreenwaveRealtimeMapper greenwaveRealtimeMapper, SceneStrategyIdeaMapper strategyIdeaMapper, StrategyMapper strategyMapper, BaseCrossSchedulesMapper baseCrossSchedulesMapper, BaseCrossSchedulesPlanMapper baseCrossSchedulesPlanMapper, BaseCrossSectionMapper baseCrossSectionMapper, BaseCrossSchemeMapper crossSchemeMapper, BaseCrossSchemeMapper baseCrossSchemeMapper, BaseCrossPhaseMapper baseCrossPhaseMapper, BaseCrossPhaseLightsMapper crossPhaseLightsMapper, BaseCrossLaneLightsMapper baseCrossLaneLightsMapper, CrossBaseLaneInfoMapper crossBaseLaneInfoMapper, CrossTurnDataHistMapper crossTurnDataHistMapper, @Qualifier("greenwaveSceneMapper") GreenwaveSceneMapper greenwaveSceneMapper, @Qualifier("sceneStrategyMapper") SceneStrategyMapper sceneStrategyMapper, @Qualifier("sceneMapper") SceneMapper sceneMapper, @Qualifier("baseCrossPlanMapper") BaseCrossPlanMapper baseCrossPlanMapper, MainlineEvaluateServiceImpl mainlineEvaluateServiceImpl, CrossLaneDataHistMapper crossLaneDataHistMapper, LaneSnapshotDataQueryService laneSnapshotDataQueryService, DirectionMappingsConfig directionMappingsConfig,
CrossDataHistMapper crossDataHistMapper, RunningEvaluateServiceImpl runningEvaluateService) { CrossDataHistMapper crossDataHistMapper, RunningEvaluateServiceImpl runningEvaluateService,
AnalysisRidTurnIndicatorsMapper ridTurnIndicatorsMapper) {
this.greenwaveInfoMapper = greenwaveInfoMapper; this.greenwaveInfoMapper = greenwaveInfoMapper;
this.baseCrossInfoMapper = baseCrossInfoMapper; this.baseCrossInfoMapper = baseCrossInfoMapper;
this.crossDataRealtimeMapper = crossDataRealtimeMapper; this.crossDataRealtimeMapper = crossDataRealtimeMapper;
...@@ -155,6 +159,7 @@ public class TrendServiceImpl implements TrendService { ...@@ -155,6 +159,7 @@ public class TrendServiceImpl implements TrendService {
this.directionMappingsConfig = directionMappingsConfig; this.directionMappingsConfig = directionMappingsConfig;
this.crossDataHistMapper = crossDataHistMapper; this.crossDataHistMapper = crossDataHistMapper;
this.runningEvaluateService = runningEvaluateService; this.runningEvaluateService = runningEvaluateService;
this.ridTurnIndicatorsMapper = ridTurnIndicatorsMapper;
} }
@Override @Override
...@@ -1390,6 +1395,7 @@ public class TrendServiceImpl implements TrendService { ...@@ -1390,6 +1395,7 @@ public class TrendServiceImpl implements TrendService {
vo.setV85(po.getV85()); vo.setV85(po.getV85());
vo.setPedFlow(pedFlow); vo.setPedFlow(pedFlow);
vo.setAllFlow(pedFlow + pedFlow + po.getNonMotorFlow()); vo.setAllFlow(pedFlow + pedFlow + po.getNonMotorFlow());
vo.setAllVehiceleFlow(po.getFlow() + po.getNonMotorFlow());
Integer turn = null; Integer turn = null;
for (CrossBaseLaneInfoPO crossBaseLaneInfoPO : crossBaseLaneInfoPOS) { for (CrossBaseLaneInfoPO crossBaseLaneInfoPO : crossBaseLaneInfoPOS) {
...@@ -1960,4 +1966,15 @@ public class TrendServiceImpl implements TrendService { ...@@ -1960,4 +1966,15 @@ public class TrendServiceImpl implements TrendService {
laneSnapshotDataQueryService.queryByCrossIdAndTimeSpan(crossId, start, end); laneSnapshotDataQueryService.queryByCrossIdAndTimeSpan(crossId, start, end);
return buildRealTimeList(dtoList); return buildRealTimeList(dtoList);
} }
@Override
public List<AnalysisRidTurnIndicators> lanePeriodTurnData(CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception {
String crossId = crossIdDateTimeVO.getCrossId();
Date start = crossIdDateTimeVO.getStart();
Date end = crossIdDateTimeVO.getEnd();
LambdaQueryWrapper<AnalysisRidTurnIndicators> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AnalysisRidTurnIndicators::getCrossId, crossId);
queryWrapper.between(AnalysisRidTurnIndicators::getRuksj, start, end);
return ridTurnIndicatorsMapper.selectList(queryWrapper);
}
} }
...@@ -100,5 +100,7 @@ public class TableQueryVO { ...@@ -100,5 +100,7 @@ public class TableQueryVO {
private int pedFlow; private int pedFlow;
@ApiModelProperty(value = "总流量") @ApiModelProperty(value = "总流量")
private int allFlow; private int allFlow;
@ApiModelProperty(value = "车辆总和")
private int allVehiceleFlow;
} }
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.wanji.opt.dao.mapper.trend.AnalysisRidTurnIndicatorsMapper">
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment