Commit 20b905bb authored by duwei's avatar duwei

信号灯倒计时

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