Commit 5bf377e9 authored by duanruiming's avatar duanruiming

[add] 海信方案环相位,添加相位差周期

parent b187b9b7
......@@ -10,6 +10,8 @@ import lombok.Data;
public class SchemeGreenDirGreenTimeDTO {
private String crossId;
private Integer schemeNo;
private Integer offset;
private Integer cycleLen;
private Integer ringNo;
private Integer phaseId;
private Integer start;
......
package net.wanji.opt.task;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.tool.redistool.RedisUtil;
import net.wanji.common.utils.tool.JacksonUtils;
import net.wanji.common.utils.tool.StringUtils;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.databus.dao.entity.GreenCrossDirDTO;
import net.wanji.databus.dao.mapper.GreenwaveCrossMapper;
import net.wanji.opt.cache.GreenCrossDirInfoCache;
import net.wanji.opt.common.RedisUtils;
import net.wanji.opt.dto.RingPhaseInfoDTO;
import net.wanji.opt.dto.SchemeGreenDirGreenTimeDTO;
import net.wanji.opt.vo.GreenwaveDetailVO;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
......@@ -36,13 +31,14 @@ public class HisenseGreenChartTask {
private RedisUtils redisUtils;
@Scheduled(fixedRate = 60 * 1000, initialDelay = 1 * 60 * 1000)
@Scheduled(fixedRate = 10 * 60 * 1000, initialDelay = 1 * 60 * 1000)
public void getGreenChart() {
try {
ObjectMapper mapper = JacksonUtils.getInstance();
// 绿波路口数据
List<GreenCrossDirDTO> greenCrossDirCache = GreenCrossDirInfoCache.greenCrossDirCache;
if (!CollectionUtils.isEmpty(greenCrossDirCache)) {
List<SchemeGreenDirGreenTimeDTO> schemeGreenDirGreenTimeDTOS = new ArrayList<>();
for (GreenCrossDirDTO greenCrossDirDTO : greenCrossDirCache) {
Integer greenId = greenCrossDirDTO.getGreenId();
String greenCrossId = greenCrossDirDTO.getCrossId();
......@@ -54,12 +50,9 @@ public class HisenseGreenChartTask {
continue;
}
List<RingPhaseInfoDTO> ringPhaseInfoDTOS = mapper.readValue(str, new TypeReference<List<RingPhaseInfoDTO>>() {});
log.info("当前路口:{}, 环相位信息:{}", greenCrossId, str);
// 遍历绿波路口协调方向
if (StringUtils.isNotBlank(greenDirStr)) {
String[] greenDirArray = greenDirStr.split(",");
List<SchemeGreenDirGreenTimeDTO> schemeGreenDirGreenTimeDTOS = new ArrayList<>();
for (String s : greenDirArray) {
// 协调方向
Integer greenDir = Integer.valueOf(s);
......@@ -85,6 +78,8 @@ public class HisenseGreenChartTask {
Integer yellowTime = ringPhaseInfoDTO.getYellowTime();
Integer redTime = ringPhaseInfoDTO.getRedTime();
Integer schemeNo = ringPhaseInfoDTO.getSchemeNo();
Integer cycleLen = ringPhaseInfoDTO.getCycleLen();
Integer offset = ringPhaseInfoDTO.getOffset();
for (RingPhaseInfoDTO.DirTurn dirTurn : dirTurnInfoList) {
Integer dir = dirTurn.getDir();
Integer turn = dirTurn.getTurn();
......@@ -98,6 +93,8 @@ public class HisenseGreenChartTask {
schemeGreenDirGreenTimeDTO.setPhaseId(phaseId);
schemeGreenDirGreenTimeDTO.setStart(start);
schemeGreenDirGreenTimeDTO.setRingNo(ringNo);
schemeGreenDirGreenTimeDTO.setCycleLen(cycleLen);
schemeGreenDirGreenTimeDTO.setOffset(offset);
Integer endTime = start + greenTime + yellowTime;
schemeGreenDirGreenTimeDTO.setEnd(endTime);
schemeGreenDirGreenTimeDTOS.add(schemeGreenDirGreenTimeDTO);
......@@ -110,13 +107,10 @@ public class HisenseGreenChartTask {
}
}
}
log.error("路口绿灯协调方向时间:{}", mapper.writeValueAsString(schemeGreenDirGreenTimeDTOS));
}
}
log.error("路口绿灯协调方向时间:{}", mapper.writeValueAsString(schemeGreenDirGreenTimeDTOS));
}
log.error("路口绿灯协调方向时间:{}", "333");
} catch (Exception e) {
log.error("通过海信方案处理绿波波定时任务失败:{}", e);
//throw new RuntimeException(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