Commit feca1273 authored by hanbing's avatar hanbing

[add] 信号优化,态势监测-保存子区策略

parent d7c5db66
package net.wanji.opt.bo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Kent HAN
* @date 2023/6/9 13:52
*/
@Data
@ApiModel(value = "SaveGreenwaveStrategyBO", description = "保存子区策略输入参数")
public class SaveGreenwaveStrategyBO {
@ApiModelProperty(value = "绿波ID")
private Integer greenwaveId;
@ApiModelProperty(value = "策略名称")
private String strategyName;
}
...@@ -8,20 +8,12 @@ import net.wanji.common.dto.CrossIdDTO; ...@@ -8,20 +8,12 @@ import net.wanji.common.dto.CrossIdDTO;
import net.wanji.common.framework.rest.JsonViewObject; import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.opt.bo.GreenwaveIdAndTimeStampBO; import net.wanji.opt.bo.GreenwaveIdAndTimeStampBO;
import net.wanji.opt.bo.GreenwaveIdBO; import net.wanji.opt.bo.GreenwaveIdBO;
import net.wanji.opt.bo.SaveGreenwaveStrategyBO;
import net.wanji.opt.dto.trend.AbnormalCrossListDTO; import net.wanji.opt.dto.trend.AbnormalCrossListDTO;
import net.wanji.opt.dto.trend.EventAlarmDTO; import net.wanji.opt.dto.trend.EventAlarmDTO;
import net.wanji.opt.dto.trend.GreenwaveListDTO; import net.wanji.opt.dto.trend.GreenwaveListDTO;
import net.wanji.opt.service.impl.TrendServiceImpl; import net.wanji.opt.service.impl.TrendServiceImpl;
import net.wanji.opt.vo.AbnormalCrossDetailVO; import net.wanji.opt.vo.*;
import net.wanji.opt.vo.AbnormalCrossVO;
import net.wanji.opt.vo.EventAlarmVO;
import net.wanji.opt.vo.GreenWaveCrossMonitorVO;
import net.wanji.opt.vo.GreenwaveCrossMetricsVO;
import net.wanji.opt.vo.GreenwaveDetailVO;
import net.wanji.opt.vo.GreenwaveListVO;
import net.wanji.opt.vo.GreenwaveRunMonitorVO;
import net.wanji.opt.vo.GreenwaveStats;
import net.wanji.opt.vo.GreenwaveVO;
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;
...@@ -86,6 +78,18 @@ public class TrendController { ...@@ -86,6 +78,18 @@ public class TrendController {
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 = "/saveGreenwaveStrategy",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = JsonViewObject.class),
})
public JsonViewObject saveGreenwaveStrategy(@RequestBody SaveGreenwaveStrategyBO saveGreenwaveStrategyBO) {
trendService.saveGreenwaveStrategy(saveGreenwaveStrategyBO);
return JsonViewObject.newInstance().success();
}
@ApiOperation(value = "子区路口指标", notes = "子区路口指标", response = JsonViewObject.class, @ApiOperation(value = "子区路口指标", notes = "子区路口指标", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/greenwaveCrossMetrics", @PostMapping(value = "/greenwaveCrossMetrics",
......
...@@ -25,4 +25,6 @@ public interface StrategyMapper { ...@@ -25,4 +25,6 @@ public interface StrategyMapper {
StrategyPO selectById(Integer strategyId); StrategyPO selectById(Integer strategyId);
List<String> selectAllNames(); List<String> selectAllNames();
StrategyPO selectByName(String strategyName);
} }
...@@ -19,4 +19,6 @@ public interface GreenwaveInfoMapper { ...@@ -19,4 +19,6 @@ public interface GreenwaveInfoMapper {
List<String> selectCrossIdsById(Integer greenwaveId); List<String> selectCrossIdsById(Integer greenwaveId);
GreenwaveInfoPO selectById(Integer id); GreenwaveInfoPO selectById(Integer id);
void updateStrategy(Integer greenwaveId, Integer strategyId);
} }
...@@ -3,6 +3,7 @@ package net.wanji.opt.service; ...@@ -3,6 +3,7 @@ package net.wanji.opt.service;
import net.wanji.common.dto.CrossIdDTO; import net.wanji.common.dto.CrossIdDTO;
import net.wanji.opt.bo.GreenwaveIdAndTimeStampBO; import net.wanji.opt.bo.GreenwaveIdAndTimeStampBO;
import net.wanji.opt.bo.GreenwaveIdBO; import net.wanji.opt.bo.GreenwaveIdBO;
import net.wanji.opt.bo.SaveGreenwaveStrategyBO;
import net.wanji.opt.dto.trend.AbnormalCrossListDTO; import net.wanji.opt.dto.trend.AbnormalCrossListDTO;
import net.wanji.opt.dto.trend.GreenwaveListDTO; import net.wanji.opt.dto.trend.GreenwaveListDTO;
import net.wanji.opt.vo.*; import net.wanji.opt.vo.*;
...@@ -34,4 +35,6 @@ public interface TrendService { ...@@ -34,4 +35,6 @@ public interface TrendService {
GreenwaveDetailVO greenwaveDetail(GreenwaveIdBO greenwaveIdBO); GreenwaveDetailVO greenwaveDetail(GreenwaveIdBO greenwaveIdBO);
List<GreenwaveCrossMetricsVO> greenwaveCrossMetrics(GreenwaveIdAndTimeStampBO greenwaveIdAndTimeStampBO); List<GreenwaveCrossMetricsVO> greenwaveCrossMetrics(GreenwaveIdAndTimeStampBO greenwaveIdAndTimeStampBO);
void saveGreenwaveStrategy(SaveGreenwaveStrategyBO saveGreenwaveStrategyBO);
} }
...@@ -9,38 +9,13 @@ import net.wanji.common.enums.CrossStatusEnum; ...@@ -9,38 +9,13 @@ import net.wanji.common.enums.CrossStatusEnum;
import net.wanji.common.enums.EventAlarmEnum; import net.wanji.common.enums.EventAlarmEnum;
import net.wanji.common.enums.EventAlarmSourceEnum; import net.wanji.common.enums.EventAlarmSourceEnum;
import net.wanji.common.utils.tool.CrossUtil; import net.wanji.common.utils.tool.CrossUtil;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPO; import net.wanji.databus.dao.entity.*;
import net.wanji.databus.dao.entity.BaseCrossSchemePO; import net.wanji.databus.dao.mapper.*;
import net.wanji.databus.dao.entity.CrossSchedulesPlanPO; import net.wanji.databus.po.*;
import net.wanji.databus.dao.entity.CrossSectionPO;
import net.wanji.databus.dao.entity.GreenwaveCrossPO;
import net.wanji.databus.dao.entity.GreenwaveHistPOExt;
import net.wanji.databus.dao.entity.GreenwaveInfoPO;
import net.wanji.databus.dao.entity.GreenwaveRealtimePO;
import net.wanji.databus.dao.entity.RidInfoEntity;
import net.wanji.databus.dao.mapper.BaseCrossDirInfoMapper;
import net.wanji.databus.dao.mapper.BaseCrossInfoMapper;
import net.wanji.databus.dao.mapper.BaseCrossSchedulesMapper;
import net.wanji.databus.dao.mapper.BaseCrossSchemeMapper;
import net.wanji.databus.dao.mapper.BaseCrossSectionMapper;
import net.wanji.databus.dao.mapper.CrossDataRealtimeMapper;
import net.wanji.databus.dao.mapper.CrossDirDataHistMapper;
import net.wanji.databus.dao.mapper.CrossDirDataRealtimeMapper;
import net.wanji.databus.dao.mapper.CrossSchedulesPlanMapper;
import net.wanji.databus.dao.mapper.CrossTurnDataRealtimeMapper;
import net.wanji.databus.dao.mapper.GreenwaveCrossMapper;
import net.wanji.databus.dao.mapper.GreenwaveHistMapper;
import net.wanji.databus.dao.mapper.GreenwaveRealtimeMapper;
import net.wanji.databus.dao.mapper.RidInfoMapper;
import net.wanji.databus.po.BaseCrossInfoPO;
import net.wanji.databus.po.CrossDataRealtimePO;
import net.wanji.databus.po.CrossDirDataHistPO;
import net.wanji.databus.po.CrossDirDataRealtimePO;
import net.wanji.databus.po.CrossTurnDataRealtimePO;
import net.wanji.databus.po.TBaseCrossInfo;
import net.wanji.databus.vo.AbnormalCrossListVO; import net.wanji.databus.vo.AbnormalCrossListVO;
import net.wanji.opt.bo.GreenwaveIdAndTimeStampBO; import net.wanji.opt.bo.GreenwaveIdAndTimeStampBO;
import net.wanji.opt.bo.GreenwaveIdBO; import net.wanji.opt.bo.GreenwaveIdBO;
import net.wanji.opt.bo.SaveGreenwaveStrategyBO;
import net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper; import net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper;
import net.wanji.opt.dao.mapper.strategy.SceneStrategyIdeaMapper; import net.wanji.opt.dao.mapper.strategy.SceneStrategyIdeaMapper;
import net.wanji.opt.dao.mapper.strategy.StrategyMapper; import net.wanji.opt.dao.mapper.strategy.StrategyMapper;
...@@ -52,26 +27,13 @@ import net.wanji.opt.po.base.CrossSchemeOptLogPO; ...@@ -52,26 +27,13 @@ import net.wanji.opt.po.base.CrossSchemeOptLogPO;
import net.wanji.opt.po.strategy.StrategyPO; import net.wanji.opt.po.strategy.StrategyPO;
import net.wanji.opt.po.trend.EventAlarmPO; import net.wanji.opt.po.trend.EventAlarmPO;
import net.wanji.opt.service.TrendService; import net.wanji.opt.service.TrendService;
import net.wanji.opt.vo.AbnormalCrossDetailVO; import net.wanji.opt.vo.*;
import net.wanji.opt.vo.AbnormalCrossStats;
import net.wanji.opt.vo.AbnormalCrossVO;
import net.wanji.opt.vo.EventAlarmVO;
import net.wanji.opt.vo.GreenWaveCrossMonitorVO;
import net.wanji.opt.vo.GreenwaveCrossMetricsVO;
import net.wanji.opt.vo.GreenwaveDetailVO;
import net.wanji.opt.vo.GreenwaveListVO;
import net.wanji.opt.vo.GreenwaveRunMonitorVO;
import net.wanji.opt.vo.GreenwaveStats;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -585,6 +547,18 @@ public class TrendServiceImpl implements TrendService { ...@@ -585,6 +547,18 @@ public class TrendServiceImpl implements TrendService {
return res; return res;
} }
@Override
@Transactional
public void saveGreenwaveStrategy(SaveGreenwaveStrategyBO saveGreenwaveStrategyBO) {
Integer greenwaveId = saveGreenwaveStrategyBO.getGreenwaveId();
String strategyName = saveGreenwaveStrategyBO.getStrategyName();
// 获取策略ID
StrategyPO strategyPO = strategyMapper.selectByName(strategyName);
Integer strategyId = strategyPO.getId();
// 更新绿波信息
greenwaveInfoMapper.updateStrategy(greenwaveId, strategyId);
}
private void setMetrics(GreenwaveCrossMetricsVO greenwaveCrossMetricsVO, RidInfoEntity ridInfoEntity, private void setMetrics(GreenwaveCrossMetricsVO greenwaveCrossMetricsVO, RidInfoEntity ridInfoEntity,
List<CrossDirDataHistPO> listForNoPark, List<CrossDirDataHistPO> listForPhaseQueue) { List<CrossDirDataHistPO> listForNoPark, List<CrossDirDataHistPO> listForPhaseQueue) {
if (CollectionUtil.isNotEmpty(listForNoPark) && CollectionUtil.isNotEmpty(listForPhaseQueue)) { if (CollectionUtil.isNotEmpty(listForNoPark) && CollectionUtil.isNotEmpty(listForPhaseQueue)) {
......
...@@ -61,9 +61,17 @@ ...@@ -61,9 +61,17 @@
from t_strategy_strategy from t_strategy_strategy
where id = #{strategyId} where id = #{strategyId}
</select> </select>
<select id="selectAllNames" resultType="java.lang.String"> <select id="selectAllNames" resultType="java.lang.String">
SELECT strategy_name SELECT strategy_name
FROM t_strategy_strategy FROM t_strategy_strategy
</select> </select>
<select id="selectByName" resultType="net.wanji.opt.po.strategy.StrategyPO">
select
id,strategy_code,strategy_name,strategy_target,strategy_detail,gmt_create,gmt_modified
from t_strategy_strategy
where strategy_name = #{strategyName}
</select>
</mapper> </mapper>
...@@ -2,6 +2,12 @@ ...@@ -2,6 +2,12 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.wanji.opt.dao.mapper.trend.GreenwaveInfoMapper"> <mapper namespace="net.wanji.opt.dao.mapper.trend.GreenwaveInfoMapper">
<update id="updateStrategy">
update t_greenwave_info
set strategy_id = #{strategyId}
where id = #{greenwaveId}
</update>
<select id="listGreenwave" resultType="net.wanji.opt.vo.GreenwaveListVO"> <select id="listGreenwave" resultType="net.wanji.opt.vo.GreenwaveListVO">
select select
t1.id, t1.name, t1.status as infoStatus, t2.status as realtimeStatus, t1.id, t1.name, t1.status as infoStatus, t2.status as realtimeStatus,
......
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