Commit 90bd6481 authored by hanbing's avatar hanbing

[add] 新信号评价-运行评价-溢出情况

parent 7b036473
......@@ -83,4 +83,16 @@ public class RunningEvaluateController {
return JsonViewObject.newInstance().success(res);
}
@ApiOperation(value = "溢出情况", notes = "溢出情况", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/spilloverStatus",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = RunningEvaluateIndexStatusVO.class),
})
public JsonViewObject spilloverStatus(@RequestBody CrossIdAndStartEndDateBO bo) {
List<RunningEvaluateIndexStatusVO> res = runningEvaluateService.spilloverStatus(bo);
return JsonViewObject.newInstance().success(res);
}
}
\ No newline at end of file
......@@ -16,4 +16,6 @@ public interface RunningEvaluateService {
List<RunningEvaluateIndexStatusVO> congestionStatus(CrossIdAndStartEndDateBO bo);
List<RunningEvaluateIndexStatusVO> unbalanceStatus(CrossIdAndStartEndDateBO bo);
List<RunningEvaluateIndexStatusVO> spilloverStatus(CrossIdAndStartEndDateBO bo);
}
......@@ -15,8 +15,8 @@ import net.wanji.databus.po.CrossDataRealtimePO;
import net.wanji.databus.vo.RunningEvaluateCrossListVO;
import net.wanji.opt.bo.CrossNameBO;
import net.wanji.opt.service.RunningEvaluateService;
import net.wanji.opt.vo.RunningEvaluateIndexStatusVO;
import net.wanji.opt.vo.RunningEvaluateCrossEvaluateVO;
import net.wanji.opt.vo.RunningEvaluateIndexStatusVO;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
......@@ -108,6 +108,22 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
return buildRes(bo, crossId, status);
}
@Override
public List<RunningEvaluateIndexStatusVO> unbalanceStatus(CrossIdAndStartEndDateBO bo) {
String crossId = bo.getCrossId();
int status = CrossStatusEnum.UNBALANCE.getCode();
return buildRes(bo, crossId, status);
}
@Override
public List<RunningEvaluateIndexStatusVO> spilloverStatus(CrossIdAndStartEndDateBO bo) {
String crossId = bo.getCrossId();
int status = CrossStatusEnum.SPILLOVER.getCode();
return buildRes(bo, crossId, status);
}
@NotNull
private List<RunningEvaluateIndexStatusVO> buildRes(CrossIdAndStartEndDateBO bo, String crossId, int status) {
List<CrossDataHistPO> crossDataHistPOList = buildCrossDataHistPOList(bo, crossId);
......@@ -119,15 +135,6 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
return res;
}
@Override
public List<RunningEvaluateIndexStatusVO> unbalanceStatus(CrossIdAndStartEndDateBO bo) {
String crossId = bo.getCrossId();
int status = CrossStatusEnum.UNBALANCE.getCode();
return buildRes(bo, crossId, status);
}
@NotNull
private List<RunningEvaluateIndexStatusVO> buildRunningEvaluateIndexStatusVOList(
List<CrossDataHistPO> crossDataHistPOList, int status) {
......@@ -158,7 +165,6 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
}
private Double calcAvgIndex(List<CrossDataHistPO> subList, int status) {
Double average = 0.0;
if (status == CrossStatusEnum.CONGESTION.getCode()) {
......@@ -171,6 +177,11 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
.mapToDouble(CrossDataHistPO::getUnbalanceIndex)
.average()
.orElse(0.0);
} else if (status == CrossStatusEnum.SPILLOVER.getCode()) {
average = subList.stream()
.mapToDouble(CrossDataHistPO::getQueueLength)
.average()
.orElse(0.0);
}
DecimalFormat df = new DecimalFormat("#.00");
......
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