Commit 7450b246 authored by zhoushiguang's avatar zhoushiguang

Merge remote-tracking branch 'origin/master'

parents 7030a8b5 8f251b83
......@@ -8,6 +8,8 @@ public class GreenReportProblemDetailVO {
@ApiModelProperty(value = "星期", example = "周一")
private String week;
@ApiModelProperty(value = "方向", example = "东向西")
private String dir;
@ApiModelProperty(value = "问题时段", example = "7:35~8:40")
private String problemSpan;
@ApiModelProperty(value = "状态:缓行/拥堵", example = "拥堵")
......
......@@ -14,7 +14,7 @@ public class DailyPlanDetails {
//日计划编号
private int dailyPlanId;
//执行时间
private List<String> weekExecute;
private List<Integer> weekExecute;
//时间详情
private List<TimePlanDetails> timeDetails;
}
package net.wanji.opt.entity.strategy;
import lombok.Data;
import java.util.List;
/**
* @author duanruiming
* @date 2025/04/24 10:27
*/
@Data
public class StrategyPriorityGroupPushReq {
List<StrategyPriorityConfigPush> data;
}
package net.wanji.opt.entity.strategy;
import lombok.Data;
import java.util.List;
/**
* @author duanruiming
* @date 2025/04/24 10:34
*/
@Data
public class StrategyPriorityPlanPushReq {
List<StrategyPriorityPlanPush> data;
}
......@@ -388,7 +388,11 @@ public class AnalysisGreenCongestionPeriodServiceImpl implements AnalysisGreenCo
}
}
}
greenReportProblemDetailAnalysisResponse.setDataList(greenReportProblemDetailList);
List<String> weekOrder = Arrays.asList("周一", "周二", "周三", "周四", "周五", "周六", "周日");
List<GreenReportProblemDetailVO> problemDetailVOS = greenReportProblemDetailList.stream().sorted(Comparator.comparing(
vo -> weekOrder.indexOf(vo.getWeek())
)).collect(Collectors.toList());
greenReportProblemDetailAnalysisResponse.setDataList(problemDetailVOS);
List<GreenWaveCrossRidInfo> greenInfoList = greenWaveCrossRidMapper.getGreenInfoList(String.valueOf(greenId));
greenReportProblemDetailAnalysisResponse.setGreenId(String.valueOf(greenId));
......@@ -469,6 +473,7 @@ public class AnalysisGreenCongestionPeriodServiceImpl implements AnalysisGreenCo
private GreenReportProblemDetailVO getGreenReportProblemDetail(AnalysisGreenCongestionPeriodVO periodVO) {
GreenReportProblemDetailVO greenReportProblemDetail = new GreenReportProblemDetailVO();
greenReportProblemDetail.setWeek(WeekEnum.getDesc(periodVO.getWeekDay()));
greenReportProblemDetail.setDir(GreenBeltDirEnum.getDesc(periodVO.getRoadDirection()));
greenReportProblemDetail.setProblemSpan(getTimeString(periodVO));
greenReportProblemDetail.setStatus(ConsgestionStatusEnum.getDesc(periodVO.getStatus()));
greenReportProblemDetail.setAvgSpeed(Math.round(periodVO.getSpeed() * 100) / 100.0);
......
......@@ -245,7 +245,6 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
@Override
public List<ImportGreenReportAnalysisResponseVO> getProblemDetail(Integer year, Integer week, String ids) {
Integer yearWeek = Integer.valueOf(year + "" + week);
Integer yearWeekLast = Integer.valueOf(year + "" + (week - 1));
List<Integer> greenIdList = new ArrayList<>();
if (ObjectUtils.isEmpty(ids)) {
List<GreenwaveInfoPO> greenwaveInfoPOList = greenwaveInfoMapper.selectAll();
......@@ -315,38 +314,46 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
analysisResponseVO.setDataList(analysisDataVOS);
analysisResponseVO.setOptimizeSpan(TimeIntervalMerger.timeString(timeList));
analysisResponseVO.setAvgCapacity(String.valueOf(allCapacity / waveOptimizeWeeks.size()));
analysisResponseVO.setAvgCapacity(String.valueOf(allCapacity / waveOptimizeWeeks.size())+"辆/小时");
analysisResponseVO.setAvgCongestIndex(String.valueOf(Math.round(allCongestIndex / waveOptimizeWeeks.size() * 100) / 100.0));
analysisResponseVO.setAvgSpeed(String.valueOf(Math.round(allSpeed / waveOptimizeWeeks.size() * 100) / 100.0));
analysisResponseVO.setAvgTravelTime(String.valueOf(allTravelTime / waveOptimizeWeeks.size()));
analysisResponseVO.setAvgCapacityCompareSituation(allCapacity > allCapacityLast ? "提升" : "下降");
double avgCongestIndex = allCongestIndex / waveOptimizeWeeks.size() - allCongestIndexLast / waveOptimizeWeeks.size();
analysisResponseVO.setAvgCongestIndexCompare(avgCongestIndex >= 0 ? "增加" + String.valueOf(Math.round(avgCongestIndex * 100) / 100.0) + "%" : "减少" + String.valueOf(Math.round(Math.abs(avgCongestIndex) * 100) / 100.0) + "%");
double avgSpeed = allSpeed / waveOptimizeWeeks.size() - allSpeedLast / waveOptimizeWeeks.size();
analysisResponseVO.setAvgSpeedCompare(avgSpeed > 0 ? "提升" + String.valueOf(Math.round(avgSpeed * 100) / 100.0) + "%" : "降低" + String.valueOf(Math.round(Math.abs(avgSpeed) * 100) / 100.0) + "%");
int avgTravelTime = allTravelTime / waveOptimizeWeeks.size() - allTravelTimeLast / waveOptimizeWeeks.size();
analysisResponseVO.setAvgTravelTimeCompare(String.valueOf(avgTravelTime > 0 ? "增加" + String.valueOf(Math.round(avgTravelTime * 100) / 100.0) + "%" : "减少" + String.valueOf(Math.round(Math.abs(avgTravelTime) * 100) / 100.0) + "%"));
analysisResponseVO.setAvgTravelTime(String.valueOf(allTravelTime / waveOptimizeWeeks.size()/60));
int allCapacityCha = allCapacity - allCapacityLast;
double allCapacityCompare = 0;
if(allCapacityLast != 0){
allCapacityCompare = Math.round( allCapacityCha * 10000 / allCapacityLast ) / 100.0;
}else {
allCapacityCompare = 100;
}
analysisResponseVO.setAvgCapacityCompareSituation(allCapacity > allCapacityLast ? "提升" + Math.abs(allCapacityCompare) + "%" : "下降" + Math.abs(allCapacityCompare) + "%");
double avgCongestIndexCompare = 0;
if(allCongestIndexLast != 0){
avgCongestIndexCompare = Math.round((allCongestIndex / waveOptimizeWeeks.size() - allCongestIndexLast / waveOptimizeWeeks.size())*10000/(allCongestIndexLast / waveOptimizeWeeks.size()))/100.0;
}else {
avgCongestIndexCompare = 100;
}
analysisResponseVO.setAvgCongestIndexCompare(avgCongestIndexCompare >= 0 ? "增加" + String.valueOf(avgCongestIndexCompare) + "%" : "减少" + String.valueOf(Math.abs(avgCongestIndexCompare)) + "%");
double avgSpeedCompare = 0;
if(allSpeedLast !=0){
avgSpeedCompare = Math.round((allSpeed / waveOptimizeWeeks.size() - allSpeedLast / waveOptimizeWeeks.size()) * 10000/(allSpeedLast / waveOptimizeWeeks.size())) / 100.0;
}else {
avgSpeedCompare = 100;
}
analysisResponseVO.setAvgSpeedCompare(avgSpeedCompare > 0 ? "提升" + String.valueOf(avgSpeedCompare) + "%" : "降低" + String.valueOf(Math.abs(avgSpeedCompare)) + "%");
double avgTravelTimeCompare = 0;
if(allTravelTimeLast!= 0){
avgTravelTimeCompare = Math.round((allTravelTime / waveOptimizeWeeks.size() - allTravelTimeLast / waveOptimizeWeeks.size()) * 10000/(allTravelTimeLast / waveOptimizeWeeks.size())) / 100.0;
}
analysisResponseVO.setAvgTravelTimeCompare(avgTravelTimeCompare > 0 ? "增加" + String.valueOf(avgTravelTimeCompare) + "%" : "减少" + String.valueOf(Math.abs(avgTravelTimeCompare) + "%"));
//本周总体情况
if (allCapacity / waveOptimizeWeeks.size() >= 0 && avgTravelTime <= 0) {
if (allCapacity / waveOptimizeWeeks.size() >= 5) {
if (allCapacityCompare >= 0) {
if (allCapacityCompare * 100 >= 5) {
analysisResponseVO.setWeekTotalitySituation("明显提升");
} else {
analysisResponseVO.setWeekTotalitySituation("略有提升");
}
} else if (allCapacity / waveOptimizeWeeks.size() >= 0 && avgTravelTime > 0) {
if (allCapacity / waveOptimizeWeeks.size() - avgTravelTime > 0) {
analysisResponseVO.setWeekTotalitySituation("略有提升");
} else {
analysisResponseVO.setWeekTotalitySituation("略有下降");
}
} else if (allCapacity / waveOptimizeWeeks.size() < 0 && avgTravelTime <= 0) {
if (allCapacity / waveOptimizeWeeks.size() - avgTravelTime > 0) {
analysisResponseVO.setWeekTotalitySituation("略有提升");
} else {
analysisResponseVO.setWeekTotalitySituation("略有下降");
}
} else if (allCapacity / waveOptimizeWeeks.size() < 0 && avgTravelTime > 0) {
if (Math.abs(allCapacity / waveOptimizeWeeks.size()) >= 5) {
} else if (allCapacityCompare < 0) {
if (Math.abs(allCapacityCompare * 100) >= 5) {
analysisResponseVO.setWeekTotalitySituation("明显下降");
} else {
analysisResponseVO.setWeekTotalitySituation("略有下降");
......
package net.wanji.opt.synthesis.service;
import net.wanji.opt.entity.strategy.StrategyParameterPush;
import net.wanji.opt.entity.strategy.StrategyPriorityConfigPush;
import net.wanji.opt.entity.strategy.StrategyPriorityPlanPush;
import net.wanji.opt.entity.strategy.*;
import net.wanji.opt.synthesis.pojo.Result;
import net.wanji.opt.synthesis.pojo.StrategyControlReq;
import net.wanji.opt.synthesis.pojo.StrategyControlSwitchReq;
......@@ -36,7 +34,7 @@ public interface PushStrategyControlService {
* @return
* @throws Exception
*/
Result StartegyPriorityPush(List<StrategyPriorityConfigPush> req) throws Exception;
Result StartegyPriorityPush(StrategyPriorityGroupPushReq req) throws Exception;
/**
* 策略管理日计划配置推送
......@@ -44,7 +42,7 @@ public interface PushStrategyControlService {
* @return
* @throws Exception
*/
Result StartegyPriorityPlanPush(List<StrategyPriorityPlanPush> req) throws Exception;
Result StartegyPriorityPlanPush(StrategyPriorityPlanPushReq req) throws Exception;
/**
* 策略管理参数配置推送
......
package net.wanji.opt.synthesis.service.impl;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.tool.resttool.RestTemplateTool;
import net.wanji.common.utils.tool.JacksonUtils;
import net.wanji.opt.entity.strategy.StrategyParameterPush;
import net.wanji.opt.entity.strategy.StrategyPriorityConfigPush;
import net.wanji.opt.entity.strategy.StrategyPriorityPlanPush;
import net.wanji.opt.entity.strategy.*;
import net.wanji.opt.synthesis.pojo.Result;
import net.wanji.opt.synthesis.pojo.StrategyControlReq;
import net.wanji.opt.synthesis.pojo.StrategyControlSwitchReq;
......@@ -75,21 +72,19 @@ public class PushStrategyControlServiceImpl implements PushStrategyControlServic
* 优先级配置推送
* */
@Override
public Result StartegyPriorityPush(List<StrategyPriorityConfigPush> req) throws Exception {
public Result StartegyPriorityPush(StrategyPriorityGroupPushReq req) throws Exception {
try {
String priorityUrl = "http://37.12.182.50:8082/api/traffic/strategy/priority/info";
ObjectMapper mapper = JacksonUtils.getInstance();
System.out.println("req~~"+req);
// 序列化请求参数
String jsonReq = mapper.writeValueAsString(req);
//String jsonString = JSON.toJSONString(req);
// System.out.println("请求参数: " + jsonReq);
String resultStr = RestTemplateTool.postList(switchUrl, jsonReq);
String resultStr = RestTemplateTool.post(priorityUrl, jsonReq);
if (StringUtils.isNotBlank(resultStr)) {
log.info("下发神思策略管理优先级推送成功,内容: {}", req);
log.info("下发神思策略管理优先级推送成功,内容: {}", req);
Result result = mapper.readValue(resultStr, Result.class);
return result;
} else {
log.error("策略管理优先级推送url:{}失败:返回数据异常", switchUrl);
log.error("策略管理优先级推送url:{}失败:返回数据异常", priorityUrl);
return new Result("500", "服务调用失败", null);
}
} catch (Exception e) {
......@@ -101,19 +96,19 @@ public class PushStrategyControlServiceImpl implements PushStrategyControlServic
* 日计划配置推送
* */
@Override
public Result StartegyPriorityPlanPush(List<StrategyPriorityPlanPush> req) throws Exception {
public Result StartegyPriorityPlanPush(StrategyPriorityPlanPushReq req) throws Exception {
try {
String planUrl = "http://37.12.182.50:8082/api/traffic/strategy/priority/schedule";
ObjectMapper mapper = JacksonUtils.getInstance();
// 序列化请求参数
String jsonReq = mapper.writeValueAsString(req);
System.out.println("req~~"+jsonReq);
String resultStr = RestTemplateTool.postList(switchUrl, jsonReq);
String resultStr = RestTemplateTool.post(planUrl, jsonReq);
if (StringUtils.isNotBlank(resultStr)) {
log.info("下发神思策略管理日计划配置推送成功,内容: {}", req);
Result result = mapper.readValue(resultStr, Result.class);
return result;
} else {
log.error("策略管理日计划配置推送url:{}失败:返回数据异常", switchUrl);
log.error("策略管理日计划配置推送url:{}失败:返回数据异常", planUrl);
return new Result("500", "服务调用失败", null);
}
} catch (Exception e) {
......
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