Commit 88b04a94 authored by hanbing's avatar hanbing

[add] 新信号评价-方案评价-策略评价指标下拉菜单增加策略编号

parent a5ff9fd5
package net.wanji.opt.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Kent HAN
* @date 2023/6/9 13:52
*/
@Data
@ApiModel(value = "SchemeDetailOverallBO", description = "方案详情-总体评价入参")
public class SchemeDetailOverallBO {
@ApiModelProperty(value = "年月日,格式 2023/7/9")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy/M/d", timezone = "GMT+8")
private Date problemDate;
@ApiModelProperty(value = "开始时间 HH:mm")
String startTime;
@ApiModelProperty(value = "结束时间 HH:mm")
String endTime;
@ApiModelProperty(value = "策略编号")
String strategyCode;
}
......@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.ws.rs.core.MediaType;
/**
* 运行评价
* 场景评价
*
* @author Kent HAN
*/
......
......@@ -21,7 +21,7 @@ import javax.ws.rs.core.MediaType;
import java.util.List;
/**
* 运行评价
* 方案评价
*
* @author Kent HAN
*/
......@@ -71,4 +71,16 @@ public class SchemeEvaluateController {
return JsonViewObject.newInstance().success(res);
}
// @ApiOperation(value = "方案详情-总体评价", notes = "方案详情-总体评价", response = JsonViewObject.class,
// produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
// @PostMapping(value = "/schemeDetailOverall",
// produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
// @ApiResponses({
// @ApiResponse(code = 200, message = "OK", response = SchemeEvaluateSchemeDetailOverallVO.class),
// })
// public JsonViewObject schemeDetailOverall(@RequestBody SchemeDetailOverallBO schemeDetailOverallBO) {
// SchemeEvaluateSchemeDetailOverallVO res = schemeEvaluateService.schemeDetailOverall(schemeDetailOverallBO);
// return JsonViewObject.newInstance().success(res);
// }
}
\ No newline at end of file
......@@ -124,17 +124,26 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
SchemeEvaluateStrategyMetricMenuVO vo = new SchemeEvaluateStrategyMetricMenuVO();
vo.setStrategyCode(entry.getKey().getCode());
vo.setStrategyName(entry.getKey().getMsg());
List<String> metricInfoList = new ArrayList<>();
for (StrategyAndMetricsEnum.Metrics metric : entry.getValue()) {
metricInfoList.add(metric.getDescription());
}
vo.setMetrics(metricInfoList);
List<SchemeEvaluateStrategyMetricMenuVO.EvaluateMetric> metricInfoList = buildEvaluateMetrics(entry);
vo.setMetricList(metricInfoList);
voList.add(vo);
}
return voList;
}
private List<SchemeEvaluateStrategyMetricMenuVO.EvaluateMetric> buildEvaluateMetrics(
Map.Entry<StrategyAndMetricsEnum.Strategy, List<StrategyAndMetricsEnum.Metrics>> entry) {
List<SchemeEvaluateStrategyMetricMenuVO.EvaluateMetric> metricInfoList = new ArrayList<>();
for (StrategyAndMetricsEnum.Metrics metric : entry.getValue()) {
SchemeEvaluateStrategyMetricMenuVO.EvaluateMetric evaluateMetric =
new SchemeEvaluateStrategyMetricMenuVO.EvaluateMetric();
evaluateMetric.setMetricCode(metric.getCode());
evaluateMetric.setMetricName(metric.getDescription());
metricInfoList.add(evaluateMetric);
}
return metricInfoList;
}
@Override
public List<SchemeEvaluateCrossSchemeListVO> crossSchemeList(CrossSchemeListBO crossSchemeListBO) {
String crossId = crossSchemeListBO.getCrossId();
......
package net.wanji.opt.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author Kent HAN
* @date 2023/2/9 8:38
*/
@Data
@NoArgsConstructor
@ApiModel(value = "SchemeEvaluateSchemeDetailOverallVO", description = "方案详情-总体评价")
public class SchemeEvaluateSchemeDetailOverallVO {
@ApiModelProperty(value = "服务水平")
String serviceLevel;
@ApiModelProperty(value = "策略评价")
List<String> strategyEvaluate;
@ApiModelProperty(value = "指标数据")
List<OverallMetrics> overallMetricsList;
@NoArgsConstructor
@Data
public static class OverallMetrics {
@ApiModelProperty(value = "指标编号")
Integer metricCode;
@ApiModelProperty(value = "指标名称")
String metricName;
@ApiModelProperty(value = "指标数值")
String metricValue;
@ApiModelProperty(value = "指标数值单位")
String metricUnit;
}
}
......@@ -22,7 +22,16 @@ public class SchemeEvaluateStrategyMetricMenuVO {
@ApiModelProperty(value = "策略编号")
private String strategyCode;
@ApiModelProperty(value = "评价指标")
private List<String> metrics;
@ApiModelProperty(value = "评价指标列表")
List<EvaluateMetric> metricList;
@NoArgsConstructor
@Data
public static class EvaluateMetric {
@ApiModelProperty(value = "指标编号")
Integer metricCode;
@ApiModelProperty(value = "指标名称")
private String metricName;
}
}
......@@ -35,28 +35,34 @@ public class StrategyAndMetricsEnum {
}
public enum Metrics {
NO_STOP_THROUGH_RATE("不停车通过率"),
STOP_THROUGH_RATE("一/二/三次及以上停车通过率"),
AVERAGE_DELAY("平均延误"),
MAX_QUEUE_LENGTH("最大排队长度"),
STOP_COUNT("停车次数"),
AVERAGE_SPEED("平均速度"),
GREEN_LIGHT_UTILIZATION("绿灯有效利用率"),
SATURATION("饱和度"),
LOAD_BALANCE("负载均衡度"),
OVERFLOW_RATE("溢流率"),
GREEN_INTERVAL_CLEAR("绿灯间隔清空率"),
EMERGENCY_COUNT("三急一速数量");
NO_STOP_THROUGH_RATE(1, "不停车通过率"),
STOP_THROUGH_RATE(2, "一/二/三次及以上停车通过率"),
AVERAGE_DELAY(3, "平均延误"),
MAX_QUEUE_LENGTH(4, "最大排队长度"),
STOP_COUNT(5, "停车次数"),
AVERAGE_SPEED(6, "平均速度"),
GREEN_LIGHT_UTILIZATION(7, "绿灯有效利用率"),
SATURATION(8, "饱和度"),
LOAD_BALANCE(9, "负载均衡度"),
OVERFLOW_RATE(10, "溢流率"),
GREEN_INTERVAL_CLEAR(11, "绿灯间隔清空率"),
EMERGENCY_COUNT(12, "三急一速数量");
private final Integer code;
private final String description;
Metrics(String description) {
Metrics(Integer code, String description) {
this.code = code;
this.description = description;
}
public String getDescription() {
return description;
}
public Integer getCode() {
return code;
}
}
public static final Map<Strategy, List<Metrics>> STRATEGY_METRICS_MAP;
......
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