Commit 20b905bb authored by duwei's avatar duwei

信号灯倒计时

parent d1aac497
......@@ -214,6 +214,7 @@
</from>
<to>
<!-- <image>${harbor.ip.port}/xinkong/${artifactId}:${version}</image> -->
<!-- https://10.102.1.163:19443/account/sign-in?redirect_url=%2Fharbor%2Fprojects -->
<image>10.102.1.163:19443/yanshi/fuzhujuece-${project.artifactId}:${project.version}</image>
<auth>
<username>admin</username>
......
package net.wanji.utc.task;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
......@@ -87,6 +88,10 @@ public class SignalStatusTask {
private ProducerHandler producerHandler;
@Resource
RestHighLevelClient client;
public static Map<String, String> crossIdMap = new HashMap();
{
crossIdMap.put("R-081507", "12Q5V099C30");
}
private static final Map<String, Integer> runModeTimeMap = new ConcurrentHashMap<>();
@Qualifier("net.wanji.feign.service.UtcHisenseFeignClients")
......@@ -123,8 +128,8 @@ public class SignalStatusTask {
/**
* 消费孪生灯态kafka数据
*/
@KafkaListener(topics = {"WHSpatData"}, groupId = "utc-whspat-consumer-01")
public void consumeTwinSpat(ConsumerRecord<Object, Object> record, Acknowledgment acknowledgment) {
@KafkaListener(topics = {"WHSpatData"}, groupId = "utc-whspat-consumer-03")
public void consumeTwinSpat(ConsumerRecord<Object, Object> record, Acknowledgment ack) {
try {
String lightStatusJson = String.valueOf(record.value());
WHSpatData light = JSONObject.parseObject(lightStatusJson, WHSpatData.class);
......@@ -152,14 +157,16 @@ public class SignalStatusTask {
List<LightsStatusVO> lightsStatusVOS = getLightsStatusVOS2(crossInfoPO, light);
//2.3 保存灯态数据并发送
saveAndSendLightsStatus(mapper, crossId, lightsStatusVOS, entry);
if (CollectionUtil.isNotEmpty(lightsStatusVOS)) {
saveAndSendLightsStatus(mapper, crossId, lightsStatusVOS, entry);
}
}
sendKafka();
}
//--------------------------------------------------------------------------
}
ack.acknowledge(); // 手动提交 offset
}catch (Exception e) {
log.error("解析灯态数据异常", e);
}
......@@ -215,7 +222,7 @@ public class SignalStatusTask {
if (!CollectionUtils.isEmpty(lightsStatusVOS)) {
//2. 循环遍历灯态数据,并保存灯态数据到数据库,并发送灯态数据到websocket
for (LightsStatusVO lightsStatusVO : lightsStatusVOS) {
if (Objects.nonNull(lightsStatusVO) && Objects.equals(lightsStatusVO.getCrossId(), crossId)) {
if (Objects.nonNull(lightsStatusVO) && Objects.equals(lightsStatusVO.getCrossId(), crossId) ) {
//
calculateControlCountDown(crossId, lightsStatusVO);
try {
......@@ -276,10 +283,7 @@ public class SignalStatusTask {
return Collections.emptyList();
}
public static Map<String, String> crossIdMap = new HashMap();
{
crossIdMap.put("R-081507", "12Q5V099C30");
}
/**
* 获取路口灯态列表
* @param crossInfoPO 路口信息
......@@ -320,6 +324,7 @@ public class SignalStatusTask {
}
}else{
phaseCountdownCacheMap.put(cycleLenKey, p.getLimitEndTime());
infoVo.setCycleLen(p.getLimitEndTime());
}
infoVo.setPhaseId(p.getPhaseId() + "");
infoVo.setCyclePhaseCountDown(p.getLimitEndTime());
......@@ -419,6 +424,9 @@ public class SignalStatusTask {
Map<String, Object> dirLampGroupMap = lightsStatusVO.getDirLampGroupMap();
List<LightsStatusVO2.DirInfo> dirList = new ArrayList<>();
Map<String, Object> phaseMap = lightsStatusVO.getPhaseMap();
if (dirLampGroupMap == null || dirLampGroupMap.entrySet() == null || dirLampGroupMap.entrySet().size() == 0){
continue;
}
for (Map.Entry<String, Object> groupEntry : dirLampGroupMap.entrySet()) {
LightsStatusVO2.DirInfo dirInfo = new LightsStatusVO2.DirInfo();
String dir = groupEntry.getKey();
......@@ -436,7 +444,6 @@ public class SignalStatusTask {
}
} catch (Exception e) {
log.error("灯态推送转换V2异常:", e);
throw new Exception(e);
}
return listResult;
}
......
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