Commit a408d2e0 authored by duanruiming's avatar duanruiming

[update] 济南测试平台-事件查询

parent 17f8e31b
...@@ -12,6 +12,7 @@ import net.wanji.opt.dto.trend.AbnormalCrossListDTO; ...@@ -12,6 +12,7 @@ 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.po.trend.AnalysisRidTurnIndicators;
import net.wanji.opt.po.trend.HoloEventInfoPO;
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.*;
...@@ -225,7 +226,7 @@ public class TrendController { ...@@ -225,7 +226,7 @@ public class TrendController {
@PostMapping(value = "/hotspotCross", @PostMapping(value = "/hotspotCross",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({ @ApiResponses({
@ApiResponse(code = 200, message = "OK", response = List.class), @ApiResponse(code = 200, message = "OK", response = HotspotCrossVO.class),
}) })
public JsonViewObject hotspotCross(@RequestBody CommonCrossIdVO commonCrossIdVO) throws Exception { public JsonViewObject hotspotCross(@RequestBody CommonCrossIdVO commonCrossIdVO) throws Exception {
List<HotspotCrossVO> hotspotCrossVOS = trendService.hotspotCross(commonCrossIdVO); List<HotspotCrossVO> hotspotCrossVOS = trendService.hotspotCross(commonCrossIdVO);
...@@ -237,7 +238,7 @@ public class TrendController { ...@@ -237,7 +238,7 @@ public class TrendController {
@PostMapping(value = "/crossTurnData", @PostMapping(value = "/crossTurnData",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({ @ApiResponses({
@ApiResponse(code = 200, message = "OK", response = List.class), @ApiResponse(code = 200, message = "OK", response = HotspotCrossTurnVO.class),
}) })
public JsonViewObject crossTurnData(@RequestBody CommonCrossIdVO commonCrossIdVO) throws Exception { public JsonViewObject crossTurnData(@RequestBody CommonCrossIdVO commonCrossIdVO) throws Exception {
List<HotspotCrossTurnVO> hotspotCrossVOS = trendService.crossTurnData(commonCrossIdVO); List<HotspotCrossTurnVO> hotspotCrossVOS = trendService.crossTurnData(commonCrossIdVO);
...@@ -249,7 +250,7 @@ public class TrendController { ...@@ -249,7 +250,7 @@ public class TrendController {
@PostMapping(value = "/crossLaneData", @PostMapping(value = "/crossLaneData",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({ @ApiResponses({
@ApiResponse(code = 200, message = "OK", response = List.class), @ApiResponse(code = 200, message = "OK", response = HotspotCrossLaneVO.class),
}) })
public JsonViewObject crossLaneData(@RequestBody CommonCrossIdVO commonCrossIdVO) throws Exception { public JsonViewObject crossLaneData(@RequestBody CommonCrossIdVO commonCrossIdVO) throws Exception {
List<HotspotCrossLaneVO> hotspotCrossVOS = trendService.crossLaneData(commonCrossIdVO); List<HotspotCrossLaneVO> hotspotCrossVOS = trendService.crossLaneData(commonCrossIdVO);
...@@ -282,7 +283,7 @@ public class TrendController { ...@@ -282,7 +283,7 @@ public class TrendController {
@PostMapping(value = "/laneTrafficIndex", @PostMapping(value = "/laneTrafficIndex",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({ @ApiResponses({
@ApiResponse(code = 200, message = "OK", response = List.class), @ApiResponse(code = 200, message = "OK", response = TableQueryVO.CycleDataElement.class),
}) })
public JsonViewObject laneTrafficIndex(@RequestBody CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception { public JsonViewObject laneTrafficIndex(@RequestBody CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception {
List<TableQueryVO.CycleDataElement> result = trendService.laneTrafficIndex(crossIdDateTimeVO); List<TableQueryVO.CycleDataElement> result = trendService.laneTrafficIndex(crossIdDateTimeVO);
...@@ -295,7 +296,7 @@ public class TrendController { ...@@ -295,7 +296,7 @@ public class TrendController {
@PostMapping(value = "/laneSnapshotIndex", @PostMapping(value = "/laneSnapshotIndex",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({ @ApiResponses({
@ApiResponse(code = 200, message = "OK", response = List.class), @ApiResponse(code = 200, message = "OK", response = TableQueryVO.RealTimeDataElement.class),
}) })
public JsonViewObject laneSnapshotIndex(@RequestBody CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception { public JsonViewObject laneSnapshotIndex(@RequestBody CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception {
List<TableQueryVO.RealTimeDataElement> result = trendService.laneSnapshotIndex(crossIdDateTimeVO); List<TableQueryVO.RealTimeDataElement> result = trendService.laneSnapshotIndex(crossIdDateTimeVO);
...@@ -307,10 +308,22 @@ public class TrendController { ...@@ -307,10 +308,22 @@ public class TrendController {
@PostMapping(value = "/lanePeriodTurnData", @PostMapping(value = "/lanePeriodTurnData",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({ @ApiResponses({
@ApiResponse(code = 200, message = "OK", response = List.class), @ApiResponse(code = 200, message = "OK", response = AnalysisRidTurnIndicators.class),
}) })
public JsonViewObject lanePeriodTurnData(@RequestBody LanePeriodTurnVO lanePeriodTurnVO) throws Exception { public JsonViewObject lanePeriodTurnData(@RequestBody LanePeriodTurnVO lanePeriodTurnVO) throws Exception {
List<AnalysisRidTurnIndicators> result = trendService.lanePeriodTurnData(lanePeriodTurnVO); List<AnalysisRidTurnIndicators> result = trendService.lanePeriodTurnData(lanePeriodTurnVO);
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 = "/holoEventList",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = HoloEventInfoPO.class),
})
public JsonViewObject holoEvenList(@RequestBody CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception {
List<HoloEventInfoPO> result = trendService.holoEvenList(crossIdDateTimeVO);
return JsonViewObject.newInstance().success(result);
}
} }
\ No newline at end of file
package net.wanji.opt.dao.mapper; package net.wanji.opt.dao.mapper;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.opt.po.trend.HoloEventInfoPO;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
...@@ -11,7 +13,7 @@ import java.util.List; ...@@ -11,7 +13,7 @@ import java.util.List;
*/ */
@Repository @Repository
@DS("holo") @DS("holo")
public interface HoloEventMapper { public interface HoloEventMapper extends BaseMapper<HoloEventInfoPO> {
Integer selectCrossEmergencyCount(String crossId, int startStamp, int endStamp); Integer selectCrossEmergencyCount(String crossId, int startStamp, int endStamp);
Integer selectEmergencyCountWithLaneIds(String crossId, int startStamp, int endStamp, List<String> laneIds); Integer selectEmergencyCountWithLaneIds(String crossId, int startStamp, int endStamp, List<String> laneIds);
......
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;
/**
* @author duanruiming
* @date 2024/05/17 9:45
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_event_info")
@ApiModel(value = "HoloEventInfoPO", description = "交通事件信息")
public class HoloEventInfoPO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID", hidden = true)
@JSONField(serialize = false)
private Long oid;
@ApiModelProperty(value = "车牌号")
private String plateNo;
@ApiModelProperty(value = "参与者类别 1:机动车 2:非机动车 3:行人")
private String objectType;
@ApiModelProperty(value = "可信度")
private Integer confidence;
@ApiModelProperty(value = "检测时间", notes = "格式:yyyy-MM-dd HH:mm:ss")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date detectTime;
@ApiModelProperty(value = "事件等级:1扣分 2 罚款 3警告 0 未知")
private Integer grade;
@ApiModelProperty(value = "事件地点描述")
private String placeDesc;
@ApiModelProperty(value = "发生地点经度")
private BigDecimal lng;
@ApiModelProperty(value = "发生地点纬度")
private BigDecimal lat;
@ApiModelProperty(value = "事件一级类别 1:非机动事件 2:行人事件 3:机动车事件")
private String category;
@ApiModelProperty(value = "二级类别")
@JsonProperty("eventType")
//@JSONField(name = "eventType")
private String type;
@ApiModelProperty(value = "事件发生时间")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
@ApiModelProperty(value = "事件结束时间")
//@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
@ApiModelProperty(value = "事件持续时长,单位分钟")
private Integer duration;
@ApiModelProperty(value = "事件来源", notes = "1-系统检测;2-接处警;3-互联网;4-交管部门;5-济南城市大脑;")
private String source;
@ApiModelProperty(value = "车道ID")
private String laneId;
@ApiModelProperty(value = "路段ID")
private String rid;
@ApiModelProperty(value = "路口ID")
private String crossId;
@ApiModelProperty(value = "渠化ID")
private String segmentId;
@ApiModelProperty(value = "关联的事件摄像头信息ID")
private String cameraOid;
@ApiModelProperty(value = "序列号")
private String eventSerialNumber;
@ApiModelProperty(value = "事件状态")
private String dataStatus;
private String globalId;
private Integer stationId;
private String eventId;
@ApiModelProperty(value = "入库时间", hidden = true)
@JSONField(serialize = false)
private Date ruksj;
@ApiModelProperty(value = "备注")
private String remark;
}
\ No newline at end of file
...@@ -6,6 +6,7 @@ import net.wanji.opt.bo.*; ...@@ -6,6 +6,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.GreenwaveListDTO; import net.wanji.opt.dto.trend.GreenwaveListDTO;
import net.wanji.opt.po.trend.AnalysisRidTurnIndicators; import net.wanji.opt.po.trend.AnalysisRidTurnIndicators;
import net.wanji.opt.po.trend.HoloEventInfoPO;
import net.wanji.opt.vo.*; import net.wanji.opt.vo.*;
import java.text.ParseException; import java.text.ParseException;
...@@ -63,4 +64,6 @@ public interface TrendService { ...@@ -63,4 +64,6 @@ public interface TrendService {
List<TableQueryVO.RealTimeDataElement> laneSnapshotIndex(CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception; List<TableQueryVO.RealTimeDataElement> laneSnapshotIndex(CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception;
List<AnalysisRidTurnIndicators> lanePeriodTurnData(LanePeriodTurnVO lanePeriodTurnVO) throws Exception; List<AnalysisRidTurnIndicators> lanePeriodTurnData(LanePeriodTurnVO lanePeriodTurnVO) throws Exception;
List<HoloEventInfoPO> holoEvenList(CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception;
} }
...@@ -19,6 +19,7 @@ import net.wanji.databus.vo.GreenwaveListVO; ...@@ -19,6 +19,7 @@ import net.wanji.databus.vo.GreenwaveListVO;
import net.wanji.opt.bo.*; import net.wanji.opt.bo.*;
import net.wanji.opt.config.DirectionMappingsConfig; import net.wanji.opt.config.DirectionMappingsConfig;
import net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper; import net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper;
import net.wanji.opt.dao.mapper.HoloEventMapper;
import net.wanji.opt.dao.mapper.strategy.SceneMapper; 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;
...@@ -34,6 +35,7 @@ import net.wanji.opt.po.strategy.ScenePO; ...@@ -34,6 +35,7 @@ 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.AnalysisRidTurnIndicators;
import net.wanji.opt.po.trend.EventAlarmPO; import net.wanji.opt.po.trend.EventAlarmPO;
import net.wanji.opt.po.trend.HoloEventInfoPO;
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;
import net.wanji.opt.vo.*; import net.wanji.opt.vo.*;
...@@ -98,6 +100,7 @@ public class TrendServiceImpl implements TrendService { ...@@ -98,6 +100,7 @@ public class TrendServiceImpl implements TrendService {
private final CrossDataHistMapper crossDataHistMapper; private final CrossDataHistMapper crossDataHistMapper;
private final RunningEvaluateServiceImpl runningEvaluateService; private final RunningEvaluateServiceImpl runningEvaluateService;
private final AnalysisRidTurnIndicatorsMapper ridTurnIndicatorsMapper; private final AnalysisRidTurnIndicatorsMapper ridTurnIndicatorsMapper;
private final HoloEventMapper holoEventMapper;
// 用于计算路口状态,key为方向,value为状态 // 用于计算路口状态,key为方向,value为状态
private Map<Integer, Integer> preStatus = new HashMap<Integer, Integer>() {{ private Map<Integer, Integer> preStatus = new HashMap<Integer, Integer>() {{
...@@ -125,7 +128,7 @@ public class TrendServiceImpl implements TrendService { ...@@ -125,7 +128,7 @@ public class TrendServiceImpl implements TrendService {
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) { AnalysisRidTurnIndicatorsMapper ridTurnIndicatorsMapper,HoloEventMapper holoEventMapper) {
this.greenwaveInfoMapper = greenwaveInfoMapper; this.greenwaveInfoMapper = greenwaveInfoMapper;
this.baseCrossInfoMapper = baseCrossInfoMapper; this.baseCrossInfoMapper = baseCrossInfoMapper;
this.crossDataRealtimeMapper = crossDataRealtimeMapper; this.crossDataRealtimeMapper = crossDataRealtimeMapper;
...@@ -160,6 +163,7 @@ public class TrendServiceImpl implements TrendService { ...@@ -160,6 +163,7 @@ public class TrendServiceImpl implements TrendService {
this.crossDataHistMapper = crossDataHistMapper; this.crossDataHistMapper = crossDataHistMapper;
this.runningEvaluateService = runningEvaluateService; this.runningEvaluateService = runningEvaluateService;
this.ridTurnIndicatorsMapper = ridTurnIndicatorsMapper; this.ridTurnIndicatorsMapper = ridTurnIndicatorsMapper;
this.holoEventMapper = holoEventMapper;
} }
@Override @Override
...@@ -1982,4 +1986,17 @@ public class TrendServiceImpl implements TrendService { ...@@ -1982,4 +1986,17 @@ public class TrendServiceImpl implements TrendService {
queryWrapper.between(AnalysisRidTurnIndicators::getRuksj, start, end); queryWrapper.between(AnalysisRidTurnIndicators::getRuksj, start, end);
return ridTurnIndicatorsMapper.selectList(queryWrapper); return ridTurnIndicatorsMapper.selectList(queryWrapper);
} }
@Override
public List<HoloEventInfoPO> holoEvenList(CommonCrossIdDateTimeVO crossIdDateTimeVO) throws Exception {
LambdaQueryWrapper<HoloEventInfoPO> queryWrapper = new LambdaQueryWrapper<>();
String crossId = crossIdDateTimeVO.getCrossId();
Date start = crossIdDateTimeVO.getStart();
LocalDateTime localDateTime1 = LocalDateTime.ofInstant(start.toInstant(), ZoneId.of("+8"));
Date end = crossIdDateTimeVO.getEnd();
LocalDateTime localDateTime2 = LocalDateTime.ofInstant(end.toInstant(), ZoneId.of("+8"));
queryWrapper.eq(HoloEventInfoPO::getCrossId, crossId);
queryWrapper.between(HoloEventInfoPO::getDetectTime, localDateTime1, localDateTime2);
return holoEventMapper.selectList(queryWrapper);
}
} }
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