Commit 3111d7ce authored by duanruiming's avatar duanruiming

[update] 实时监控->通过场景获取优化指标参数

parent 5a6e76e6
...@@ -22,5 +22,5 @@ public interface SceneStrategyIdeaMapper { ...@@ -22,5 +22,5 @@ public interface SceneStrategyIdeaMapper {
void deleteByStrategyIds(List<Integer> ids); void deleteByStrategyIds(List<Integer> ids);
int selectIdBySceneNum(Integer sceneNum); SceneStrategyIdeaPO selectIdBySceneNum(Integer sceneNum);
} }
...@@ -22,6 +22,7 @@ import net.wanji.opt.dto.CrossTurnInfoDTO; ...@@ -22,6 +22,7 @@ import net.wanji.opt.dto.CrossTurnInfoDTO;
import net.wanji.opt.po.base.CrossPhasePO; import net.wanji.opt.po.base.CrossPhasePO;
import net.wanji.opt.po.base.CrossSchemeOptLogPO; import net.wanji.opt.po.base.CrossSchemeOptLogPO;
import net.wanji.opt.po.base.CrossSchemePO; import net.wanji.opt.po.base.CrossSchemePO;
import net.wanji.opt.po.strategy.SceneStrategyIdeaPO;
import net.wanji.opt.po.trend.CrossDataRealtimePO; import net.wanji.opt.po.trend.CrossDataRealtimePO;
import net.wanji.opt.service.CrossOptimizeService; import net.wanji.opt.service.CrossOptimizeService;
import net.wanji.opt.service.strategy.SceneService; import net.wanji.opt.service.strategy.SceneService;
...@@ -136,7 +137,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService { ...@@ -136,7 +137,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
Map<String, CrossPhaseDTO> phaseMap) throws Exception { Map<String, CrossPhaseDTO> phaseMap) throws Exception {
// todo 获取溢出场景当前执行的策略方法的指标数据,通过指标数据进行下发方案 // todo 获取溢出场景当前执行的策略方法的指标数据,通过指标数据进行下发方案
Integer sceneStrategyIdeaId = sceneService.selectIdBySceneNum(CrossStatusEnum.SPILLOVER.getCode()); SceneStrategyIdeaPO sceneStrategyIdeaPO = sceneService.selectIdBySceneNum(CrossStatusEnum.SPILLOVER.getCode());
// 溢出路口集合 // 溢出路口集合
Map<String, List<CrossDataRealtimePO>> congestCrossMap = abnormalCrossList.stream().collect(Collectors.groupingBy(CrossDataRealtimePO::getCrossId)); Map<String, List<CrossDataRealtimePO>> congestCrossMap = abnormalCrossList.stream().collect(Collectors.groupingBy(CrossDataRealtimePO::getCrossId));
...@@ -219,7 +220,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService { ...@@ -219,7 +220,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
Map<String, CrossPhaseDTO> phaseMap) throws Exception { Map<String, CrossPhaseDTO> phaseMap) throws Exception {
// 获取拥堵场景当前执行的策略方法的指标数据,通过指标数据进行下发方案 // 获取拥堵场景当前执行的策略方法的指标数据,通过指标数据进行下发方案
Integer sceneStrategyIdeaId = sceneService.selectIdBySceneNum(CrossStatusEnum.CONGESTION.getCode()); SceneStrategyIdeaPO sceneStrategyIdeaPO = sceneService.selectIdBySceneNum(CrossStatusEnum.CONGESTION.getCode());
// 拥堵路口集合 // 拥堵路口集合
Map<String, List<CrossDataRealtimePO>> congestCrossMap = abnormalCrossList.stream().collect(Collectors.groupingBy(CrossDataRealtimePO::getCrossId)); Map<String, List<CrossDataRealtimePO>> congestCrossMap = abnormalCrossList.stream().collect(Collectors.groupingBy(CrossDataRealtimePO::getCrossId));
...@@ -301,7 +302,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService { ...@@ -301,7 +302,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
Map<String, CrossPhaseDTO> phaseMap) throws Exception { Map<String, CrossPhaseDTO> phaseMap) throws Exception {
// 获取失衡场景当前执行的策略方法的指标数据,通过指标数据进行下发方案 // 获取失衡场景当前执行的策略方法的指标数据,通过指标数据进行下发方案
Integer sceneStrategyIdeaId = sceneService.selectIdBySceneNum(CrossStatusEnum.CONGESTION.getCode()); SceneStrategyIdeaPO sceneStrategyIdeaPO = sceneService.selectIdBySceneNum(CrossStatusEnum.CONGESTION.getCode());
String crossId; String crossId;
for (CrossDataRealtimePO cross : abnormalCrossList) { for (CrossDataRealtimePO cross : abnormalCrossList) {
......
...@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo; ...@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
import net.wanji.opt.dto.IntegerIdsDTO; import net.wanji.opt.dto.IntegerIdsDTO;
import net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO; import net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO;
import net.wanji.opt.dto.strategy.QuerySceneDTO; import net.wanji.opt.dto.strategy.QuerySceneDTO;
import net.wanji.opt.po.strategy.SceneStrategyIdeaPO;
/** /**
* @author hanbing * @author hanbing
...@@ -24,5 +25,5 @@ public interface SceneService { ...@@ -24,5 +25,5 @@ public interface SceneService {
* @param sceneNum * @param sceneNum
* @return * @return
*/ */
Integer selectIdBySceneNum(Integer sceneNum); SceneStrategyIdeaPO selectIdBySceneNum(Integer sceneNum);
} }
...@@ -51,7 +51,7 @@ public class SceneServiceImpl implements SceneService { ...@@ -51,7 +51,7 @@ public class SceneServiceImpl implements SceneService {
} }
@Override @Override
public Integer selectIdBySceneNum(Integer sceneNum) { public SceneStrategyIdeaPO selectIdBySceneNum(Integer sceneNum) {
return sceneStrategyIdeaMapper.selectIdBySceneNum(sceneNum); return sceneStrategyIdeaMapper.selectIdBySceneNum(sceneNum);
} }
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
<mapper namespace="net.wanji.opt.dao.mapper.strategy.SceneStrategyIdeaMapper"> <mapper namespace="net.wanji.opt.dao.mapper.strategy.SceneStrategyIdeaMapper">
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true"> <insert id="insertOne" keyProperty="id" useGeneratedKeys="true">
insert into t_strategy_scene_strategy_idea(scene_id,strategy_id,idea_id,idea_order) insert into t_strategy_scene_strategy_idea(scene_id, strategy_id, idea_id, idea_order)
values (#{sceneId},#{strategyId},#{ideaId},#{ideaOrder}) values (#{sceneId}, #{strategyId}, #{ideaId}, #{ideaOrder})
</insert> </insert>
<delete id="deleteBySceneIds"> <delete id="deleteBySceneIds">
...@@ -32,21 +32,33 @@ ...@@ -32,21 +32,33 @@
</delete> </delete>
<select id="selectBySceneIdAndStrategyId" resultType="net.wanji.opt.po.strategy.SceneStrategyIdeaPO"> <select id="selectBySceneIdAndStrategyId" resultType="net.wanji.opt.po.strategy.SceneStrategyIdeaPO">
select select id,
id,scene_id,strategy_id,idea_id,idea_order,gmt_create,gmt_modified scene_id,
strategy_id,
idea_id,
idea_order,
gmt_create,
gmt_modified
from t_strategy_scene_strategy_idea from t_strategy_scene_strategy_idea
where scene_id = #{sceneId} and strategy_id = #{strategyId} where scene_id = #{sceneId}
and strategy_id = #{strategyId}
</select> </select>
<select id="selectIdBySceneNum" resultType="Integer"> <select id="selectIdBySceneNum" resultType="net.wanji.opt.po.strategy.SceneStrategyIdeaPO">
select select t1.id,
max( id ) t1.scene_id,
from t1.strategy_id,
t_strategy_scene_strategy_idea t1 t1.idea_id,
inner join ( select scene_id, strategy_id from t_strategy_scene_strategy where t1.idea_order,
scene_id = ( select id from t_strategy_scene where scene_num = #{sceneNum} ) t1.gmt_create,
and scene_strategy_priority = 1 ) t2 t1.gmt_modified
on t1.scene_id = t2.scene_id and t1.strategy_id = t2.strategy_id; from t_strategy_scene_strategy_idea t1
inner join (select scene_id, strategy_id
from t_strategy_scene_strategy
where scene_id = (select id from t_strategy_scene where scene_num = #{sceneNum})
and scene_strategy_priority = 1) t2 on t1.scene_id = t2.scene_id
and t1.strategy_id = t2.strategy_id
ORDER BY t1.idea_order desc limit 1
</select> </select>
</mapper> </mapper>
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