Commit b0526758 authored by hanbing's avatar hanbing

[add] 新信号评价-运行评价-详细指标查询-状态、方案信息

parent cd882d04
...@@ -22,8 +22,8 @@ public class MetricsDetailBO { ...@@ -22,8 +22,8 @@ public class MetricsDetailBO {
private String turn; private String turn;
@ApiModelProperty(name = "车道序号,从左车道开始编号11、12、13...") @ApiModelProperty(name = "车道序号,从左车道开始编号11、12、13...")
private Integer laneSort; private Integer laneSort;
@ApiModelProperty(value = "日期,格式 M/d,如 7/17", required = true) @ApiModelProperty(value = "日期 yyyy-MM-dd", required = true)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "M/d", timezone = "GMT+8") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date date; private Date date;
@ApiModelProperty(value = "对比时间间隔(分钟)", required = true) @ApiModelProperty(value = "对比时间间隔(分钟)", required = true)
private Integer minutes; private Integer minutes;
......
...@@ -128,7 +128,7 @@ public class RunningEvaluateController { ...@@ -128,7 +128,7 @@ public class RunningEvaluateController {
@ApiResponse(code = 200, message = "OK", response = RunningEvaluateMetricsDetailVO.class), @ApiResponse(code = 200, message = "OK", response = RunningEvaluateMetricsDetailVO.class),
}) })
public JsonViewObject schemeProblems(@RequestBody MetricsDetailBO bo) { public JsonViewObject schemeProblems(@RequestBody MetricsDetailBO bo) {
List<RunningEvaluateMetricsDetailVO> res = runningEvaluateService.metricsDetail(bo); RunningEvaluateMetricsDetailVO res = runningEvaluateService.metricsDetail(bo);
return JsonViewObject.newInstance().success(res); return JsonViewObject.newInstance().success(res);
} }
......
...@@ -22,7 +22,7 @@ public interface RunningEvaluateService { ...@@ -22,7 +22,7 @@ public interface RunningEvaluateService {
List<RunningEvaluateSchemeProblemsVO> schemeProblems(CrossIdAndStartEndDateBO bo); List<RunningEvaluateSchemeProblemsVO> schemeProblems(CrossIdAndStartEndDateBO bo);
List<RunningEvaluateMetricsDetailVO> metricsDetail(MetricsDetailBO bo); RunningEvaluateMetricsDetailVO metricsDetail(MetricsDetailBO bo);
RunningEvaluateScopeTreeVO scopeTree(CrossIdBO bo); RunningEvaluateScopeTreeVO scopeTree(CrossIdBO bo);
} }
...@@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; ...@@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* @author Kent HAN * @author Kent HAN
...@@ -21,14 +22,14 @@ public class RunningEvaluateMetricsDetailVO { ...@@ -21,14 +22,14 @@ public class RunningEvaluateMetricsDetailVO {
private List<ProblemStatus> problemStatusList; private List<ProblemStatus> problemStatusList;
@ApiModelProperty(value = "问题方案列表") @ApiModelProperty(value = "问题方案列表")
private List<ProblemScheme> schemeList; private List<ProblemScheme> schemeList;
// @ApiModelProperty(value = "指标列表") @ApiModelProperty(value = "指标列表")
// private List<CrossMetrics> metricsList; private List<CrossMetrics> metricsList;
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class ProblemStatus { public static class ProblemStatus {
@ApiModelProperty(name = "路口状态 0正常 1 失衡 2 拥堵 3 溢出") @ApiModelProperty(value = "路口状态 0正常 1 失衡 2 拥堵 3 溢出")
private String status; private Integer status;
@ApiModelProperty(value = "开始时间") @ApiModelProperty(value = "开始时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm", timezone = "GMT+8") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm", timezone = "GMT+8")
...@@ -46,15 +47,53 @@ public class RunningEvaluateMetricsDetailVO { ...@@ -46,15 +47,53 @@ public class RunningEvaluateMetricsDetailVO {
@Data @Data
public static class ProblemScheme { public static class ProblemScheme {
@ApiModelProperty(value = "方案名称") @ApiModelProperty(value = "方案名称")
private String patternName; private String schemeName;
@ApiModelProperty(value = "开始时间") @ApiModelProperty(value = "开始时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm", timezone = "GMT+8") private String startTime;
private Date startTime;
@ApiModelProperty(value = "结束时间") @ApiModelProperty(value = "结束时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm", timezone = "GMT+8") private String endTime;
private Date endTime;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ProblemScheme that = (ProblemScheme) o;
return Objects.equals(schemeName, that.schemeName) &&
Objects.equals(startTime, that.startTime) &&
Objects.equals(endTime, that.endTime);
} }
@Override
public int hashCode() {
return Objects.hash(schemeName, startTime, endTime);
}
}
@NoArgsConstructor
@Data
public static class CrossMetrics {
@ApiModelProperty(value = "时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm", timezone = "GMT+8")
private Date metricTime;
@ApiModelProperty(value = "流量")
private Integer flow;
@ApiModelProperty(value = "平均速度(km/h)")
private Double speed;
@ApiModelProperty(value = "通行能力")
private Integer capacity;
@ApiModelProperty(value = "饱和度")
private Double sturation;
@ApiModelProperty(value = "平均停车次数")
private Double stopNumber;
@ApiModelProperty(value = "平均延误(秒)")
private Integer delayTime ;
}
} }
...@@ -2,6 +2,7 @@ package net.wanji.databus.dao.mapper; ...@@ -2,6 +2,7 @@ package net.wanji.databus.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.databus.dto.MetricHistDTO;
import net.wanji.databus.po.CrossDataHistPO; import net.wanji.databus.po.CrossDataHistPO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -21,4 +22,6 @@ public interface CrossDataHistMapper extends BaseMapper<CrossDataHistPO> { ...@@ -21,4 +22,6 @@ public interface CrossDataHistMapper extends BaseMapper<CrossDataHistPO> {
List<CrossDataHistPO> selectByCrossIdAndTimestamp(String crossId, long preSeconds); List<CrossDataHistPO> selectByCrossIdAndTimestamp(String crossId, long preSeconds);
List<CrossDataHistPO> selectByCrossIdAndStartEnd(String crossId, int startStamp, int endStamp); List<CrossDataHistPO> selectByCrossIdAndStartEnd(String crossId, int startStamp, int endStamp);
List<MetricHistDTO> selectMetricHistDTO(String crossId, int startStamp, int endStamp);
} }
...@@ -2,6 +2,7 @@ package net.wanji.databus.dao.mapper; ...@@ -2,6 +2,7 @@ package net.wanji.databus.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.databus.bo.CrossDirDataHistAvgBO; import net.wanji.databus.bo.CrossDirDataHistAvgBO;
import net.wanji.databus.dto.MetricHistDTO;
import net.wanji.databus.po.CrossDirDataHistPO; import net.wanji.databus.po.CrossDirDataHistPO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -31,4 +32,6 @@ public interface CrossDirDataHistMapper extends BaseMapper<CrossDirDataHistPO> { ...@@ -31,4 +32,6 @@ public interface CrossDirDataHistMapper extends BaseMapper<CrossDirDataHistPO> {
List<CrossDirDataHistPO> selectNoParkEnd(String crossId, Integer dir, long currentSeconds, long preSeconds); List<CrossDirDataHistPO> selectNoParkEnd(String crossId, Integer dir, long currentSeconds, long preSeconds);
List<CrossDirDataHistPO> selectPhaseQueueEnd(String crossId, Integer dir, long currentSeconds, long preSeconds); List<CrossDirDataHistPO> selectPhaseQueueEnd(String crossId, Integer dir, long currentSeconds, long preSeconds);
List<MetricHistDTO> selectMetricHistDTO(String crossId, int startStamp, int endStamp);
} }
package net.wanji.databus.dao.mapper; package net.wanji.databus.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.databus.dto.MetricHistDTO;
import net.wanji.databus.po.CrossLaneDataHistPO; import net.wanji.databus.po.CrossLaneDataHistPO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -16,5 +17,5 @@ import java.util.List; ...@@ -16,5 +17,5 @@ import java.util.List;
public interface CrossLaneDataHistMapper extends BaseMapper<CrossLaneDataHistPO> { public interface CrossLaneDataHistMapper extends BaseMapper<CrossLaneDataHistPO> {
void insertBatch(@Param("list") List<CrossLaneDataHistPO> list); void insertBatch(@Param("list") List<CrossLaneDataHistPO> list);
void deleteBatch(@Param("list") Collection<String> crossIds); void deleteBatch(@Param("list") Collection<String> crossIds);
List<MetricHistDTO> selectMetricHistDTO(String crossId, int startStamp, int endStamp);
} }
package net.wanji.databus.dao.mapper; package net.wanji.databus.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.databus.dto.MetricHistDTO;
import net.wanji.databus.po.CrossTurnDataHistPO; import net.wanji.databus.po.CrossTurnDataHistPO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -20,4 +21,6 @@ public interface CrossTurnDataHistMapper extends BaseMapper<CrossTurnDataHistPO> ...@@ -20,4 +21,6 @@ public interface CrossTurnDataHistMapper extends BaseMapper<CrossTurnDataHistPO>
CrossTurnDataHistPO selectNoPark(String crossId, Integer dir, String turn, long currentSeconds, long preSeconds); CrossTurnDataHistPO selectNoPark(String crossId, Integer dir, String turn, long currentSeconds, long preSeconds);
List<CrossTurnDataHistPO> selectByCrossId(String crossId, long currentSeconds, long preSeconds); List<CrossTurnDataHistPO> selectByCrossId(String crossId, long currentSeconds, long preSeconds);
List<MetricHistDTO> selectMetricHistDTO(String crossId, int startStamp, int endStamp);
} }
package net.wanji.databus.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@NoArgsConstructor
@Data
public class MetricHistDTO {
@ApiModelProperty(value = "状态:0正常;1失衡;2拥堵;3溢出;4死锁", notes = "")
private Integer status;
@ApiModelProperty(value = "开始时间:yyyy-MM-dd HH:mm:ss", notes = "")
private Date startTime;
@ApiModelProperty(value = "持续时间(单位:分钟)", notes = "")
private Integer duration;
@ApiModelProperty(value = "交通流量(辆)", notes = "")
private Integer flow;
@ApiModelProperty(value = "平均速度(km/h)", notes = "")
private Double speed;
@ApiModelProperty(value = "通行能力")
private Integer capacity;
@ApiModelProperty(value = "饱和度", notes = "")
private Double sturation;
@ApiModelProperty(value = "停车次数(次)", notes = "")
private Double stopTimes;
@ApiModelProperty(value = "延误时间(秒)", notes = "")
private Integer delayTime;
@ApiModelProperty(value = "采集时间(10位时间戳)", notes = "")
private Integer batchTime;
}
...@@ -74,4 +74,14 @@ ...@@ -74,4 +74,14 @@
and batch_time <![CDATA[ <= ]]> #{endStamp} and batch_time <![CDATA[ <= ]]> #{endStamp}
order by batch_time order by batch_time
</select> </select>
<select id="selectMetricHistDTO" resultType="net.wanji.databus.dto.MetricHistDTO">
select status, start_time, duration, flow, speed, sturation, stop_times, delay_time, batch_time
from t_cross_data_hist
where cross_id = #{crossId} and status != 0
and batch_time <![CDATA[ >= ]]> #{startStamp}
and batch_time <![CDATA[ <= ]]> #{endStamp}
order by batch_time
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -106,4 +106,14 @@ ...@@ -106,4 +106,14 @@
and batch_time <![CDATA[ <= ]]> #{currentSeconds} and batch_time <![CDATA[ <= ]]> #{currentSeconds}
and batch_time <![CDATA[ >= ]]> #{preSeconds} and batch_time <![CDATA[ >= ]]> #{preSeconds}
</select> </select>
<select id="selectMetricHistDTO" resultType="net.wanji.databus.dto.MetricHistDTO">
select status, start_time, duration, flow, speed, sturation, capacity, stop_times, delay_time, batch_time
from t_cross_dir_data_hist
where cross_id = #{crossId} and status != 0
and batch_time <![CDATA[ >= ]]> #{startStamp}
and batch_time <![CDATA[ <= ]]> #{endStamp}
order by batch_time
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -44,4 +44,13 @@ ...@@ -44,4 +44,13 @@
(#{crossId}) (#{crossId})
</foreach> </foreach>
</delete> </delete>
<select id="selectMetricHistDTO" resultType="net.wanji.databus.dto.MetricHistDTO">
select flow, speed, sturation, capacity, stop_times, delay_time, batch_time
from t_lane_data_hist
where cross_id = #{crossId}
and batch_time <![CDATA[ >= ]]> #{startStamp}
and batch_time <![CDATA[ <= ]]> #{endStamp}
order by batch_time
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -66,4 +66,13 @@ ...@@ -66,4 +66,13 @@
and batch_time <![CDATA[ >= ]]> #{preSeconds} and batch_time <![CDATA[ >= ]]> #{preSeconds}
</select> </select>
<select id="selectMetricHistDTO" resultType="net.wanji.databus.dto.MetricHistDTO">
select status, flow, speed, sturation, stop_times, delay_time, batch_time
from t_cross_turn_data_hist
where cross_id = #{crossId} and status != 0
and batch_time <![CDATA[ >= ]]> #{startStamp}
and batch_time <![CDATA[ <= ]]> #{endStamp}
order by batch_time
</select>
</mapper> </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