Commit 8cc1f43e authored by hanbing's avatar hanbing

[update] 新信号评价-方案评价-效率提升策略详细问题

parent 4cdf2cdd
......@@ -10,10 +10,7 @@ import net.wanji.opt.bo.CrossSchemeListBO;
import net.wanji.opt.bo.ProblemSchemeBO;
import net.wanji.opt.bo.SchemeDetailOverallBO;
import net.wanji.opt.service.impl.SchemeEvaluateServiceImpl;
import net.wanji.opt.vo.SchemeEvaluateCrossSchemeListVO;
import net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO;
import net.wanji.opt.vo.SchemeEvaluateSchemeDetailOverallVO;
import net.wanji.opt.vo.SchemeEvaluateStrategyMetricMenuVO;
import net.wanji.opt.vo.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -87,4 +84,17 @@ public class SchemeEvaluateController {
return JsonViewObject.newInstance().success(res);
}
@ApiOperation(value = "方案详情-详细问题", notes = "方案详情-详细问题", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/detailedProblem",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = SchemeEvaluateSchemeDetailedProblemVO.class),
})
public JsonViewObject detailedProblem(@RequestBody SchemeDetailOverallBO schemeDetailOverallBO)
throws ParseException {
SchemeEvaluateSchemeDetailedProblemVO res = schemeEvaluateService.detailedProblem(schemeDetailOverallBO);
return JsonViewObject.newInstance().success(res);
}
}
\ No newline at end of file
......@@ -4,10 +4,7 @@ import net.wanji.databus.bo.CrossIdBO;
import net.wanji.opt.bo.CrossSchemeListBO;
import net.wanji.opt.bo.ProblemSchemeBO;
import net.wanji.opt.bo.SchemeDetailOverallBO;
import net.wanji.opt.vo.SchemeEvaluateCrossSchemeListVO;
import net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO;
import net.wanji.opt.vo.SchemeEvaluateSchemeDetailOverallVO;
import net.wanji.opt.vo.SchemeEvaluateStrategyMetricMenuVO;
import net.wanji.opt.vo.*;
import java.text.ParseException;
import java.util.List;
......@@ -20,4 +17,6 @@ public interface SchemeEvaluateService {
List<SchemeEvaluateCrossSchemeListVO> crossSchemeList(CrossSchemeListBO crossSchemeListBO);
SchemeEvaluateSchemeDetailOverallVO schemeDetailOverall(SchemeDetailOverallBO schemeDetailOverallBO) throws ParseException;
SchemeEvaluateSchemeDetailedProblemVO detailedProblem(SchemeDetailOverallBO schemeDetailOverallBO) 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 = "SchemeEvaluateSchemeDetailedProblemVO", description = "方案详情-详细问题")
public class SchemeEvaluateSchemeDetailedProblemVO {
@ApiModelProperty(value = "存在问题")
private List<String> problems;
@ApiModelProperty(value = "表格数据")
private List<TableContent> tableContentList;
@NoArgsConstructor
@Data
public static class TableContent {
@ApiModelProperty(value = "位置")
private String position;
@ApiModelProperty(value = "流量")
private Integer flow;
@ApiModelProperty(value = "是否有问题,0否 1是")
private Integer hasProblem = 0;
@ApiModelProperty(value = "子列表")
private List<TableContent> subList;
// 可变指标数据
@JsonIgnore
private Map<String, String> metricsMap;
@JsonAnyGetter
public Map<String, String> any() {
return metricsMap;
}
}
}
......@@ -32,11 +32,11 @@ public class StrategyAndMetricsEnum {
@Getter
public enum Metrics {
NO_STOP_THROUGH_RATE("1", "不停车通过率", "%"),
STOP_THROUGH_RATE("2", "一/二/三次及以上停车通过率", "%"),
NO_STOP_RATE("1", "不停车通过率", "%"),
STOP_RATE("2", "一/二/三次及以上停车通过率", "%"),
AVERAGE_DELAY("3", "平均延误", "s"),
MAX_QUEUE_LENGTH("4", "最大排队长度", "m"),
STOP_COUNT("5", "停车次数", "次"),
STOP_TIMES("5", "停车次数", "次"),
AVERAGE_SPEED("6", "平均速度", "km/h"),
GREEN_LIGHT_UTILIZATION("7", "绿灯有效利用率", "%"),
SATURATION("8", "饱和度", ""),
......@@ -63,11 +63,11 @@ public class StrategyAndMetricsEnum {
static {
Map<Strategy, List<Metrics>> map = new HashMap<>();
map.put(Strategy.EFFICIENCY, Arrays.asList(
Metrics.NO_STOP_THROUGH_RATE,
Metrics.STOP_THROUGH_RATE,
Metrics.NO_STOP_RATE,
Metrics.STOP_RATE,
Metrics.AVERAGE_DELAY,
Metrics.MAX_QUEUE_LENGTH,
Metrics.STOP_COUNT,
Metrics.STOP_TIMES,
Metrics.AVERAGE_SPEED
));
map.put(Strategy.BALANCE, Arrays.asList(
......
......@@ -37,7 +37,7 @@ public interface CrossDirDataHistMapper extends BaseMapper<CrossDirDataHistPO> {
List<CrossDirDataHistPO> selectByCrossIdAndStartEnd(String crossId, int startStamp, int endStamp);
Double selectMaxDelayTime(String crossId, Integer dirType, Integer inOutType, int startStamp, int endStamp);
Integer selectMaxDelayTime(String crossId, Integer dirType, Integer inOutType, int startStamp, int endStamp);
Double selectMaxQueueLength(String crossId, Integer dirType, Integer inOutType, int startStamp, int endStamp);
......
......@@ -20,7 +20,7 @@ public interface CrossTurnDataHistMapper extends BaseMapper<CrossTurnDataHistPO>
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 endTimeStamp, long startTimeStamp);
List<MetricHistDTO> selectMetricHistDTO(String crossId, int startStamp, int endStamp);
}
......@@ -70,8 +70,8 @@
select <include refid="Base_Column_List"/>
from t_cross_turn_data_hist
where cross_id = #{crossId}
and batch_time <![CDATA[ <= ]]> #{currentSeconds}
and batch_time <![CDATA[ >= ]]> #{preSeconds}
and batch_time <![CDATA[ <= ]]> #{endTimeStamp}
and batch_time <![CDATA[ >= ]]> #{startTimeStamp}
</select>
<select id="selectMetricHistDTO" resultType="net.wanji.databus.dto.MetricHistDTO">
......
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