Commit 8cc1f43e authored by hanbing's avatar hanbing

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

parent 4cdf2cdd
...@@ -10,10 +10,7 @@ import net.wanji.opt.bo.CrossSchemeListBO; ...@@ -10,10 +10,7 @@ import net.wanji.opt.bo.CrossSchemeListBO;
import net.wanji.opt.bo.ProblemSchemeBO; import net.wanji.opt.bo.ProblemSchemeBO;
import net.wanji.opt.bo.SchemeDetailOverallBO; import net.wanji.opt.bo.SchemeDetailOverallBO;
import net.wanji.opt.service.impl.SchemeEvaluateServiceImpl; import net.wanji.opt.service.impl.SchemeEvaluateServiceImpl;
import net.wanji.opt.vo.SchemeEvaluateCrossSchemeListVO; import net.wanji.opt.vo.*;
import net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO;
import net.wanji.opt.vo.SchemeEvaluateSchemeDetailOverallVO;
import net.wanji.opt.vo.SchemeEvaluateStrategyMetricMenuVO;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -87,4 +84,17 @@ public class SchemeEvaluateController { ...@@ -87,4 +84,17 @@ public class SchemeEvaluateController {
return JsonViewObject.newInstance().success(res); 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; ...@@ -4,10 +4,7 @@ import net.wanji.databus.bo.CrossIdBO;
import net.wanji.opt.bo.CrossSchemeListBO; import net.wanji.opt.bo.CrossSchemeListBO;
import net.wanji.opt.bo.ProblemSchemeBO; import net.wanji.opt.bo.ProblemSchemeBO;
import net.wanji.opt.bo.SchemeDetailOverallBO; import net.wanji.opt.bo.SchemeDetailOverallBO;
import net.wanji.opt.vo.SchemeEvaluateCrossSchemeListVO; import net.wanji.opt.vo.*;
import net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO;
import net.wanji.opt.vo.SchemeEvaluateSchemeDetailOverallVO;
import net.wanji.opt.vo.SchemeEvaluateStrategyMetricMenuVO;
import java.text.ParseException; import java.text.ParseException;
import java.util.List; import java.util.List;
...@@ -20,4 +17,6 @@ public interface SchemeEvaluateService { ...@@ -20,4 +17,6 @@ public interface SchemeEvaluateService {
List<SchemeEvaluateCrossSchemeListVO> crossSchemeList(CrossSchemeListBO crossSchemeListBO); List<SchemeEvaluateCrossSchemeListVO> crossSchemeList(CrossSchemeListBO crossSchemeListBO);
SchemeEvaluateSchemeDetailOverallVO schemeDetailOverall(SchemeDetailOverallBO schemeDetailOverallBO) throws ParseException; 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 { ...@@ -32,11 +32,11 @@ public class StrategyAndMetricsEnum {
@Getter @Getter
public enum Metrics { public enum Metrics {
NO_STOP_THROUGH_RATE("1", "不停车通过率", "%"), NO_STOP_RATE("1", "不停车通过率", "%"),
STOP_THROUGH_RATE("2", "一/二/三次及以上停车通过率", "%"), STOP_RATE("2", "一/二/三次及以上停车通过率", "%"),
AVERAGE_DELAY("3", "平均延误", "s"), AVERAGE_DELAY("3", "平均延误", "s"),
MAX_QUEUE_LENGTH("4", "最大排队长度", "m"), MAX_QUEUE_LENGTH("4", "最大排队长度", "m"),
STOP_COUNT("5", "停车次数", "次"), STOP_TIMES("5", "停车次数", "次"),
AVERAGE_SPEED("6", "平均速度", "km/h"), AVERAGE_SPEED("6", "平均速度", "km/h"),
GREEN_LIGHT_UTILIZATION("7", "绿灯有效利用率", "%"), GREEN_LIGHT_UTILIZATION("7", "绿灯有效利用率", "%"),
SATURATION("8", "饱和度", ""), SATURATION("8", "饱和度", ""),
...@@ -63,11 +63,11 @@ public class StrategyAndMetricsEnum { ...@@ -63,11 +63,11 @@ public class StrategyAndMetricsEnum {
static { static {
Map<Strategy, List<Metrics>> map = new HashMap<>(); Map<Strategy, List<Metrics>> map = new HashMap<>();
map.put(Strategy.EFFICIENCY, Arrays.asList( map.put(Strategy.EFFICIENCY, Arrays.asList(
Metrics.NO_STOP_THROUGH_RATE, Metrics.NO_STOP_RATE,
Metrics.STOP_THROUGH_RATE, Metrics.STOP_RATE,
Metrics.AVERAGE_DELAY, Metrics.AVERAGE_DELAY,
Metrics.MAX_QUEUE_LENGTH, Metrics.MAX_QUEUE_LENGTH,
Metrics.STOP_COUNT, Metrics.STOP_TIMES,
Metrics.AVERAGE_SPEED Metrics.AVERAGE_SPEED
)); ));
map.put(Strategy.BALANCE, Arrays.asList( map.put(Strategy.BALANCE, Arrays.asList(
......
...@@ -37,7 +37,7 @@ public interface CrossDirDataHistMapper extends BaseMapper<CrossDirDataHistPO> { ...@@ -37,7 +37,7 @@ public interface CrossDirDataHistMapper extends BaseMapper<CrossDirDataHistPO> {
List<CrossDirDataHistPO> selectByCrossIdAndStartEnd(String crossId, int startStamp, int endStamp); 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); Double selectMaxQueueLength(String crossId, Integer dirType, Integer inOutType, int startStamp, int endStamp);
......
...@@ -20,7 +20,7 @@ public interface CrossTurnDataHistMapper extends BaseMapper<CrossTurnDataHistPO> ...@@ -20,7 +20,7 @@ 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 endTimeStamp, long startTimeStamp);
List<MetricHistDTO> selectMetricHistDTO(String crossId, int startStamp, int endStamp); List<MetricHistDTO> selectMetricHistDTO(String crossId, int startStamp, int endStamp);
} }
...@@ -70,8 +70,8 @@ ...@@ -70,8 +70,8 @@
select <include refid="Base_Column_List"/> select <include refid="Base_Column_List"/>
from t_cross_turn_data_hist from t_cross_turn_data_hist
where cross_id = #{crossId} where cross_id = #{crossId}
and batch_time <![CDATA[ <= ]]> #{currentSeconds} and batch_time <![CDATA[ <= ]]> #{endTimeStamp}
and batch_time <![CDATA[ >= ]]> #{preSeconds} and batch_time <![CDATA[ >= ]]> #{startTimeStamp}
</select> </select>
<select id="selectMetricHistDTO" resultType="net.wanji.databus.dto.MetricHistDTO"> <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