Commit a6c1483b authored by hanbing's avatar hanbing

[add] 新信号评价-运行评价-详细指标查询,车道级指标

parent 11a92de9
......@@ -12,8 +12,8 @@ import java.util.Date;
* @date 2023/6/9 13:52
*/
@Data
@ApiModel(value = "MetricsTurnBO", description = "转向级指标查询输入参数")
public class MetricsTurnBO {
@ApiModel(value = "MetricsTurnAndLaneBO", description = "转向级和车道级指标查询输入参数")
public class MetricsTurnAndLaneBO {
@ApiModelProperty(value = "0正常 1失衡 2拥堵 3溢出")
private Integer status;
......
......@@ -7,11 +7,12 @@ import io.swagger.annotations.ApiResponses;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.bo.CrossIdAndStartEndDateBO;
import net.wanji.opt.bo.AbnormalDetailBO;
import net.wanji.opt.bo.MetricsTurnBO;
import net.wanji.opt.bo.MetricsTurnAndLaneBO;
import net.wanji.opt.bo.SceneMetricsDetailBO;
import net.wanji.opt.service.impl.SceneEvaluateServiceImpl;
import net.wanji.opt.vo.SceneEvaluateAbnormalDetailVO;
import net.wanji.opt.vo.SceneEvaluateAbnormalDistributeVO;
import net.wanji.opt.vo.SceneEvaluateMetricsLaneVO;
import net.wanji.opt.vo.SceneEvaluateMetricsTurnVO;
import net.wanji.opt.vo.SceneMetricsDetailVO;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -84,8 +85,20 @@ public class SceneEvaluateController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = SceneEvaluateMetricsTurnVO.class),
})
public JsonViewObject metricsTurn(@RequestBody MetricsTurnBO bo) throws ParseException {
public JsonViewObject metricsTurn(@RequestBody MetricsTurnAndLaneBO bo) throws ParseException {
SceneEvaluateMetricsTurnVO res = sceneEvaluateService.metricsTurn(bo);
return JsonViewObject.newInstance().success(res);
}
@ApiOperation(value = "车道级指标", notes = "车道级指标", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/metricsLane",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = SceneEvaluateMetricsLaneVO.class),
})
public JsonViewObject metricsLane(@RequestBody MetricsTurnAndLaneBO bo) throws ParseException {
SceneEvaluateMetricsLaneVO res = sceneEvaluateService.metricsLane(bo);
return JsonViewObject.newInstance().success(res);
}
}
\ No newline at end of file
......@@ -2,10 +2,11 @@ package net.wanji.opt.service;
import net.wanji.databus.bo.CrossIdAndStartEndDateBO;
import net.wanji.opt.bo.AbnormalDetailBO;
import net.wanji.opt.bo.MetricsTurnBO;
import net.wanji.opt.bo.MetricsTurnAndLaneBO;
import net.wanji.opt.bo.SceneMetricsDetailBO;
import net.wanji.opt.vo.SceneEvaluateAbnormalDetailVO;
import net.wanji.opt.vo.SceneEvaluateAbnormalDistributeVO;
import net.wanji.opt.vo.SceneEvaluateMetricsLaneVO;
import net.wanji.opt.vo.SceneEvaluateMetricsTurnVO;
import net.wanji.opt.vo.SceneMetricsDetailVO;
......@@ -21,5 +22,7 @@ public interface SceneEvaluateService {
List<SceneMetricsDetailVO> metricsDetail(SceneMetricsDetailBO bo) throws InvocationTargetException, NoSuchMethodException, IllegalAccessException;
SceneEvaluateMetricsTurnVO metricsTurn(MetricsTurnBO bo) throws ParseException;
SceneEvaluateMetricsTurnVO metricsTurn(MetricsTurnAndLaneBO bo) throws ParseException;
SceneEvaluateMetricsLaneVO metricsLane(MetricsTurnAndLaneBO bo) throws ParseException;
}
package net.wanji.opt.vo;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
/**
* @author Kent HAN
* @date 2023/2/9 8:38
*/
@Data
@NoArgsConstructor
@ApiModel(value = "SceneEvaluateMetricsLaneVO", description = "车道级指标")
public class SceneEvaluateMetricsLaneVO {
// todo 目前只有拥堵,后期扩展考虑增加字段
@ApiModelProperty(value = "等级",notes = "0畅通 1轻度 2中度 3严重")
private Integer level ;
@ApiModelProperty(value = "车道指标")
private List<LaneListElement> laneList;
@NoArgsConstructor
@Data
public static class LaneListElement {
@ApiModelProperty(value = "车道序号")
private Integer sort;
@ApiModelProperty(value = "流量(单位:pcu/5min)")
private Integer flow;
// 可变指标数据
@JsonIgnore
private Map<String, Integer> metricsMap;
@JsonAnyGetter
public Map<String, Integer> any() {
return metricsMap;
}
}
}
......@@ -3,6 +3,7 @@ package net.wanji.databus.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.databus.dto.MetricHistDTO;
import net.wanji.databus.po.CrossLaneDataHistPO;
import net.wanji.databus.po.CrossLaneDataHistPOExt;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -18,4 +19,5 @@ public interface CrossLaneDataHistMapper extends BaseMapper<CrossLaneDataHistPO>
void insertBatch(@Param("list") List<CrossLaneDataHistPO> list);
void deleteBatch(@Param("list") Collection<String> crossIds);
List<MetricHistDTO> selectMetricHistDTO(String crossId, int startStamp, int endStamp);
List<CrossLaneDataHistPOExt> selectByCrossIdAndDir(String crossId, Integer dir, int endTimeStamp, int startTimeStamp);
}
package net.wanji.databus.po;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author duanruiming
* @date 2023/03/12 20:53
*/
@Data
public class CrossLaneDataHistPOExt extends CrossLaneDataRealTimePO{
// 方向
private Integer dir;
// 车道序号,从左车道开始编号11、12、13...
private Integer sort;
}
......@@ -63,4 +63,15 @@
and batch_time <![CDATA[ <= ]]> #{endStamp}
order by batch_time
</select>
<select id="selectByCrossIdAndDir" resultType="net.wanji.databus.po.CrossLaneDataHistPOExt">
SELECT *
FROM t_base_lane_info
JOIN t_lane_data_hist ON t_base_lane_info.id = t_lane_data_hist.id
WHERE t_base_lane_info.cross_id = #{crossId}
AND t_base_lane_info.type = 2
AND t_base_lane_info.dir = #{dir}
AND batch_time <![CDATA[ >= ]]> #{startTimeStamp}
AND batch_time <![CDATA[ <= ]]> #{endTimeStamp};
</select>
</mapper>
\ No newline at end of file
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