Commit 36d19e31 authored by duanruiming's avatar duanruiming

[test] 动态检测测试数据

parent 04a213d9
......@@ -73,6 +73,9 @@ public class SignalCommandController {
@PostMapping("/lampStateControl")
public JsonViewObject allRedControl(@RequestBody @Validated ControlCommandVO commandVO) {
Integer controlType = commandVO.getControlType();
if (true) {
return JsonViewObject.newInstance().success();
}
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
if (1 == controlType) {
jsonViewObject = utcFeignClients.allRedControl(commandVO);
......@@ -86,7 +89,7 @@ public class SignalCommandController {
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("灯态控制UTC服务调用异常");
}
controlHistMapper.insertOne(commandVO.getCrossCode(), controlType + 1);
controlHistMapper.insertOne(commandVO.getCrossCode(), controlType + 1, "admin");
return jsonViewObject;
}
......@@ -94,11 +97,14 @@ public class SignalCommandController {
@ApiOperation(value = "步进控制-步进控制/恢复", notes = "步进控制-步进控制/恢复")
@PostMapping("/stepControl")
public JsonViewObject stepControl(@RequestBody @Validated StepControlVO stepControlVO) {
if (true) {
return JsonViewObject.newInstance().success();
}
JsonViewObject jsonViewObject = utcFeignClients.stepControl(stepControlVO.getCode(), stepControlVO.getCommand(), stepControlVO.getStepNum());
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("步进控制-步进控制/恢复UTC服务调用异常");
}
controlHistMapper.insertOne(stepControlVO.getCode(), 7);
controlHistMapper.insertOne(stepControlVO.getCode(), 7, "admin");
return jsonViewObject;
}
......@@ -110,7 +116,7 @@ public class SignalCommandController {
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("恢复时间表-恢复路口时间表执行UTC服务调用异常");
}
controlHistMapper.insertOne(code, 1);
controlHistMapper.insertOne(code, 1,"admin");
return jsonViewObject;
}
......@@ -121,7 +127,7 @@ public class SignalCommandController {
if (Objects.isNull(jsonViewObject) || jsonViewObject.getCode() != 200) {
return jsonViewObject.fail("锁定控制-相位锁定/解锁UTC服务调用异常");
}
controlHistMapper.insertOne(lockControlVO.getCrossCode(), 4);
controlHistMapper.insertOne(lockControlVO.getCrossCode(), 4, "admin");
return jsonViewObject;
}
......
package net.wanji.utc.task;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.extern.slf4j.Slf4j;
import net.wanji.utc.entity.SignalRunring;
import net.wanji.utc.po.SignalStatusLogPO;
import net.wanji.utc.service.runninginfo.SignalStatusService;
import net.wanji.utc.vo.LightsStatusVO;
import net.wanji.utc.websocket.RealTimeDataWebSocket;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 订阅信号运行状态、告警、灯态
......@@ -16,6 +24,8 @@ import java.util.List;
* @date 2022/11/21 9:01
*/
@Component
@Slf4j
@SuppressWarnings("all")
public class SignalStatusTask {
@Autowired
SignalStatusService signalStatusService;
......@@ -29,6 +39,35 @@ public class SignalStatusTask {
// 灯态,5秒一次
@Scheduled(fixedRate = 5 * 1000)
public void lightStatus() {
List<LightsStatusVO> lightsStatusVOS = signalStatusService.lightStatus();
try {
ConcurrentHashMap<String, RealTimeDataWebSocket> evenWarnWebSocketMap = RealTimeDataWebSocket.getEvenWarnWebSocketMap();
if (!evenWarnWebSocketMap.isEmpty()) {
for (Map.Entry<String, RealTimeDataWebSocket> entry : evenWarnWebSocketMap.entrySet()) {
String crossId = entry.getKey();
RealTimeDataWebSocket webSocket = entry.getValue();
List<LightsStatusVO> lightsStatusVOS = new ArrayList<>();
// signalStatusService.lightStatus();
LightsStatusVO lightsStatusVO = new LightsStatusVO();
lightsStatusVO.setRunMode("4");
lightsStatusVO.setControlMode("22"); // 闪光
List<SignalRunring> runrings = new ArrayList<>();
SignalRunring signalRunring = new SignalRunring();
signalRunring.setLampStatus(22);
runrings.add(signalRunring);
lightsStatusVO.setRunrings(runrings);
lightsStatusVOS.add(lightsStatusVO);
webSocket.sendInfo(JSONObject.toJSONString(lightsStatusVOS, SerializerFeature.WriteMapNullValue), crossId);
}
}
} catch (Exception e) {
log.error("实时推送灯态数据失败", e);
}
}
}
......@@ -17,7 +17,7 @@ import java.util.concurrent.ConcurrentHashMap;
* @author duanruiming
* @date 2023/01/06 8:58
*/
@ServerEndpoint("/websocket/realTimeData/{crossId}")
@ServerEndpoint("/signalStatus/{crossId}")
@Component
@Slf4j
public class RealTimeDataWebSocket {
......@@ -80,6 +80,7 @@ public class RealTimeDataWebSocket {
/**
* 收到客户端消息后调用的方法
*
* @param message 客户端发送过来的消息
*/
@OnMessage
......@@ -128,11 +129,11 @@ public class RealTimeDataWebSocket {
/**
* 发送自定义消息
*/
public static void sendInfo(String message, @PathParam("crossId") String crossId) throws IOException {
public void sendInfo(String message, @PathParam("crossId") String crossId) throws IOException {
//log.info("发送消息到:" + crossId + ",报文:" + message);
if (StringUtils.isNotBlank(crossId) && evenWarnWebSocketMap.containsKey(crossId)) {
try {
evenWarnWebSocketMap.get(crossId).sendMessage(message);
this.sendMessage(message);
} catch (Exception e) {
log.error("用户" + crossId + ",不在线!{}", e.getMessage());
}
......
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