Commit 7efd40f6 authored by hanbing's avatar hanbing

[update] 绿波合并时段抽取至配置文件

parent 771c0a9a
package net.wanji.opt.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author Kent HAN
* @date 2023/11/30 11:07
*/
@ConfigurationProperties(prefix = "greenwave-merge")
@Component
@Data
public class GreenwaveMergeConfig {
List<String> weekDay;
List<String> weekEnd;
}
...@@ -13,6 +13,7 @@ import net.wanji.databus.dao.mapper.*; ...@@ -13,6 +13,7 @@ import net.wanji.databus.dao.mapper.*;
import net.wanji.databus.po.*; import net.wanji.databus.po.*;
import net.wanji.databus.vo.CrossIdAndNameVO; import net.wanji.databus.vo.CrossIdAndNameVO;
import net.wanji.opt.bo.*; import net.wanji.opt.bo.*;
import net.wanji.opt.config.GreenwaveMergeConfig;
import net.wanji.opt.dao.mapper.strategy.SceneStrategyMapper; import net.wanji.opt.dao.mapper.strategy.SceneStrategyMapper;
import net.wanji.opt.dao.mapper.strategy.StrategyMapper; import net.wanji.opt.dao.mapper.strategy.StrategyMapper;
import net.wanji.databus.dao.mapper.GreenwaveInfoMapper; import net.wanji.databus.dao.mapper.GreenwaveInfoMapper;
...@@ -59,6 +60,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService { ...@@ -59,6 +60,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
private final CrossPlanMapper crossPlanMapper; private final CrossPlanMapper crossPlanMapper;
private final BaseCrossPlanMapper baseCrossPlanMapper; private final BaseCrossPlanMapper baseCrossPlanMapper;
private final BaseCrossSchemeMapper baseCrossSchemeMapper; private final BaseCrossSchemeMapper baseCrossSchemeMapper;
private final GreenwaveMergeConfig greenwaveMergeConfig;
SimpleDateFormat hourMinuteFormat = new SimpleDateFormat("HH:mm"); SimpleDateFormat hourMinuteFormat = new SimpleDateFormat("HH:mm");
SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd");
...@@ -73,7 +75,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService { ...@@ -73,7 +75,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
@Qualifier("baseCrossTurnInfoMapper") BaseCrossTurnInfoMapper baseCrossTurnInfoMapper, @Qualifier("baseCrossTurnInfoMapper") BaseCrossTurnInfoMapper baseCrossTurnInfoMapper,
CrossBaseLaneInfoMapper crossBaseLaneInfoMapper, CrossBaseLaneInfoMapper crossBaseLaneInfoMapper,
@Qualifier("laneInfoMapper") LaneInfoMapper laneInfoMapper, @Qualifier("laneInfoMapper") LaneInfoMapper laneInfoMapper,
CrossDirDataHistMapper crossDirDataHistMapper, CrossDataHistMapper crossDataHistMapper, CrossTurnDataHistMapper crossTurnDataHistMapper, CrossLaneDataHistMapper crossLaneDataHistMapper, @Qualifier("greenwaveInfoMapper") GreenwaveInfoMapper greenwaveInfoMapper, @Qualifier("greenwaveHistMapper") GreenwaveHistMapper greenwaveHistMapper, @Qualifier("greenwaveCrossMapper") GreenwaveCrossMapper greenwaveCrossMapper, @Qualifier("baseCrossInfoMapper") BaseCrossInfoMapper baseCrossInfoMapper, @Qualifier("greenwaveSceneMapper") GreenwaveSceneMapper greenwaveSceneMapper, @Qualifier("sceneStrategyMapper") SceneStrategyMapper sceneStrategyMapper, @Qualifier("strategyMapper") StrategyMapper strategyMapper, @Qualifier("baseCrossSectionMapper") BaseCrossSectionMapper baseCrossSectionMapper, @Qualifier("ridInfoMapper") RidInfoMapper ridInfoMapper, CrossPlanMapper crossPlanMapper, @Qualifier("baseCrossPlanMapper") BaseCrossPlanMapper baseCrossPlanMapper, @Qualifier("baseCrossSchemeMapper") BaseCrossSchemeMapper baseCrossSchemeMapper) { CrossDirDataHistMapper crossDirDataHistMapper, CrossDataHistMapper crossDataHistMapper, CrossTurnDataHistMapper crossTurnDataHistMapper, CrossLaneDataHistMapper crossLaneDataHistMapper, @Qualifier("greenwaveInfoMapper") GreenwaveInfoMapper greenwaveInfoMapper, @Qualifier("greenwaveHistMapper") GreenwaveHistMapper greenwaveHistMapper, @Qualifier("greenwaveCrossMapper") GreenwaveCrossMapper greenwaveCrossMapper, @Qualifier("baseCrossInfoMapper") BaseCrossInfoMapper baseCrossInfoMapper, @Qualifier("greenwaveSceneMapper") GreenwaveSceneMapper greenwaveSceneMapper, @Qualifier("sceneStrategyMapper") SceneStrategyMapper sceneStrategyMapper, @Qualifier("strategyMapper") StrategyMapper strategyMapper, @Qualifier("baseCrossSectionMapper") BaseCrossSectionMapper baseCrossSectionMapper, @Qualifier("ridInfoMapper") RidInfoMapper ridInfoMapper, CrossPlanMapper crossPlanMapper, @Qualifier("baseCrossPlanMapper") BaseCrossPlanMapper baseCrossPlanMapper, @Qualifier("baseCrossSchemeMapper") BaseCrossSchemeMapper baseCrossSchemeMapper, GreenwaveMergeConfig greenwaveMergeConfig) {
this.baseCrossDirInfoMapper = baseCrossDirInfoMapper; this.baseCrossDirInfoMapper = baseCrossDirInfoMapper;
this.baseCrossTurnInfoMapper = baseCrossTurnInfoMapper; this.baseCrossTurnInfoMapper = baseCrossTurnInfoMapper;
this.laneInfoMapper = laneInfoMapper; this.laneInfoMapper = laneInfoMapper;
...@@ -93,6 +95,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService { ...@@ -93,6 +95,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
this.crossPlanMapper = crossPlanMapper; this.crossPlanMapper = crossPlanMapper;
this.baseCrossPlanMapper = baseCrossPlanMapper; this.baseCrossPlanMapper = baseCrossPlanMapper;
this.baseCrossSchemeMapper = baseCrossSchemeMapper; this.baseCrossSchemeMapper = baseCrossSchemeMapper;
this.greenwaveMergeConfig = greenwaveMergeConfig;
} }
@Override @Override
...@@ -777,18 +780,23 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService { ...@@ -777,18 +780,23 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
} }
private List<int[]> getMergingPeriods(boolean isWeekday) { private List<int[]> getMergingPeriods(boolean isWeekday) {
List<int[]> res = new ArrayList<>();
if (isWeekday) { if (isWeekday) {
return Arrays.asList( List<String> weekDays = greenwaveMergeConfig.getWeekDay();
new int[] {timeToInt("07:00"), timeToInt("09:30")}, fillRes(weekDays, res);
new int[] {timeToInt("09:30"), timeToInt("16:30")},
new int[] {timeToInt("16:30"), timeToInt("19:00")},
new int[] {timeToInt("21:30"), timeToInt("23:59")}
);
} else { } else {
return Arrays.asList( List<String> weekEnds = greenwaveMergeConfig.getWeekEnd();
new int[] {timeToInt("13:30"), timeToInt("20:00")}, fillRes(weekEnds, res);
new int[] {timeToInt("21:30"), timeToInt("23:59")} }
); return res;
}
private void fillRes(List<String> days, List<int[]> res) {
for (String day : days) {
// "07:00,09:30"
String[] split = day.split(",");
int[] ints = {timeToInt(split[0]), timeToInt(split[1])};
res.add(ints);
} }
} }
......
...@@ -139,4 +139,9 @@ crossOptParam: ...@@ -139,4 +139,9 @@ crossOptParam:
#车头时距 #车头时距
maxVehheadTime: 5.0 maxVehheadTime: 5.0
minVehheadTime: 2.0 minVehheadTime: 2.0
defaultVehheadTime: 2.8 defaultVehheadTime: 2.8
\ No newline at end of file
# 合并绿波时段
greenwave-merge:
weekday: ["07:00,09:30", "09:30,16:30", "16:30,19:00", "21:30,23:59"]
weekend: ["13:30,20:00", "21:30,23:59"]
\ No newline at end of file
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