win代码上传

detached
zouyiqing 2024-02-04 01:28:48 +08:00
parent 6fc4de5e43
commit 074326ce6a
5 changed files with 63 additions and 33 deletions

View File

@ -103,9 +103,8 @@
},
{
field: 'createTime',
title: '记录开始时间',
sortable: true,
},
title: '记录开始时间'
},
{
field: 'updateTime',
title: '记录结束时间',

View File

@ -26,4 +26,6 @@ public class DataResponse implements Serializable {
private List<Integer> data;
private Long time;
}

View File

@ -22,11 +22,9 @@ public class SocketUtil {
try {
boolean connected = socket.isConnected();
if (!connected) {
dataResponse.setStatus(0);
}else {
dataResponse.setStatus(1);
dataResponse.setStatus(0);
}
RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse));
dataResponse.setTime(System.currentTimeMillis());
InputStream inputStream = socket.getInputStream(); // 获取输入流
int available = inputStream.available();
byte[] buffer = new byte[available];
@ -48,6 +46,11 @@ public class SocketUtil {
if (Objects.equals(radarId, decimal.get(0))) {
dataResponse.setData(decimal);
}
dataResponse.setStatus(1);
System.out.println("雷达ip " + radarIp+ radarId + radarLocation + "成功");
RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse));
return dataResponse;
}

View File

@ -58,6 +58,7 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
}
private void radarWebSocket(List<SysRadar> radarList) {
// System.out.println(" 雷达集合:::" + radarList);
for (SysRadar radar : radarList) {
try {
Socket socket = new Socket(radar.getRadarIp(), 23);
@ -83,27 +84,33 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
Map<String, List<PrimaryRadarData>> map = new HashMap<>();
Map<String ,Long> timeMap = new HashMap();
while (StringUtils.equals("0", radarDelMap.get(radar.getId()))) {
try {
// socket连接成功返回数据
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp(), radar.getRadarId());
long current = System.currentTimeMillis();
if (Objects.nonNull(data.getData())){
timeMap.put("noDataStart",System.currentTimeMillis());
}
// 没数据返回data.data == null
long current = System.currentTimeMillis();
if (Objects.isNull(data.getData())) {
current = System.currentTimeMillis();
// 连续2秒没读到数据结束
if (current - noDataStart >= 2000) {
long dataNullTime = System.currentTimeMillis();
// todo:存数据
if (CollectionUtils.isNotEmpty(map.get(getMapKey(radar)))) {
System.out.println("连续两秒没收到数据:开始存储........" + "开始时间为:" + timeMap.get("noDataStart") + "结束时间为:" + current);
if (readCount > 1) {
saveData(radar, map, readCount, noDataEnd, dataNullTime);
saveData(radar, map, readCount, timeMap.get("noDataStart"), current);
timeMap.put("noDataStart",System.currentTimeMillis());
readCount = 1;
}
}
map.get(getMapKey(radar)).clear();
map.remove(getMapKey(radar));
noDataStart = current;
}
@ -141,25 +148,35 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
dataList.add(primaryRadarData);
map.put(getMapKey(radar), dataList);
}
if (StringUtils.equals(modbusResponse.getTagId(), dataList.get(dataList.size() - 1).getTagId()) && Objects.equals(primaryRadarData.getRadarId(), dataList.get(dataList.size() - 1).getRadarId()) && Objects.equals(primaryRadarData.getRadarIp(), dataList.get(dataList.size() - 1).getRadarIp())) {
if (current - start >= 20000) {
// todo存数据
if (readCount > 100) {
saveData(radar, map, readCount, start, current);
readCount = 1;
}
start = System.currentTimeMillis();
}
dataList.clear();
dataList.add(primaryRadarData);
}
if (!StringUtils.equals(modbusResponse.getTagId(), dataList.get(dataList.size() - 1).getTagId()) && !StringUtils.equals("0", dataList.get(dataList.size() - 1).getTagId()) && Objects.equals(primaryRadarData.getRadarId(), dataList.get(dataList.size() - 1).getRadarId()) && Objects.equals(primaryRadarData.getRadarIp(), dataList.get(dataList.size() - 1).getRadarIp())) {
// if (StringUtils.equals(modbusResponse.getTagId(), dataList.get(dataList.size() - 1).getTagId()) && Objects.equals(primaryRadarData.getRadarId(), dataList.get(dataList.size() - 1).getRadarId()) && Objects.equals(primaryRadarData.getRadarIp(), dataList.get(dataList.size() - 1).getRadarIp())) {
// if (current - start >= 20000) {
// // todo存数据
//
// System.out.println("连续二十秒秒没收到数据:开始存储........" + "开始时间为:" + start + "结束时间为:" + current);
// if (readCount > 100) {
// saveData(radar, map, readCount, start, current);
// readCount = 1;
// }
// start = System.currentTimeMillis();
//
// }
// dataList.clear();
// dataList.add(primaryRadarData);
// }
if (!StringUtils.equals(modbusResponse.getTagId(), dataList.get(dataList.size() - 1).getTagId())
&& !StringUtils.equals("0", dataList.get(dataList.size() - 1).getTagId())
&& Objects.equals(primaryRadarData.getRadarId(), dataList.get(dataList.size() - 1).getRadarId())
&& Objects.equals(primaryRadarData.getRadarIp(), dataList.get(dataList.size() - 1).getRadarIp())) {
// todo存数据
long currentTimeMillis = System.currentTimeMillis();
saveData(radar, map, readCount, start, currentTimeMillis);
Long dataStart = timeMap.get("noDataStart");
System.out.println("突然读到另一个标签:开始存储........"
+ "此次雷达id===="+primaryRadarData.getRadarId() + "上次雷达id===="+primaryRadarData.getRadarId()
+ "此次雷达ip为====" + primaryRadarData.getRadarIp()+ "上次雷达ip为 =====" + dataList.get(dataList.size() - 1).getRadarIp() + dataStart + "结束时间为:" + currentTimeMillis);
saveData(radar, map, readCount, data.getTime()-1, currentTimeMillis);
dataList.clear();
timeMap.put("noDataStart",System.currentTimeMillis());
map.remove(getMapKey(radar));
dataList.add(primaryRadarData);
readCount = 1;
}
@ -172,8 +189,13 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
if (!Objects.equals(data.getData().get(0), dataList.get(dataList.size() - 1).getRadarId())) {
long end = System.currentTimeMillis();
saveData(radar, map, readCount, start, end);
Long dataStart = timeMap.get("noDataStart");
System.out.println("突然读到另一个雷达id " + "开始存储........" + "开始时间为:" + dataStart + "结束时间为:" + end);
saveData(radar, map, readCount, data.getTime(), end);
dataList.clear();
timeMap.put("noDataStart",System.currentTimeMillis());
map.remove(getMapKey(radar));
dataList.add(primaryRadarData);
readCount = 1;
}
@ -181,17 +203,20 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
}
consecutiveZeros = 0;
} else {
Long dataStart = timeMap.get("noDataStart");
//连续10次读取标签号为0
consecutiveZeros++;
if (10 == consecutiveZeros) {
// todo存数据
long nullTime = System.currentTimeMillis();
saveData(radar, map, readCount, start, noDataStart);
System.out.println("连续10次读取标签号为0开始存储........" + "开始时间为:" + dataStart + "结束时间为:" + noDataStart);
saveData(radar, map, readCount, data.getTime(), noDataStart);
readCount = 1;
map.get(getMapKey(radar)).clear();
map.remove(getMapKey(radar));
timeMap.remove("noDataStart");
dataList.clear();
consecutiveZeros = 0;
start = System.currentTimeMillis();
}
// 没有配置过将铁包号置空

View File

@ -93,6 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createTime != null and updateTime != null">
AND DATE_FORMAT(update_time,'%Y-%m-%d') between DATE_FORMAT(#{createTime},'%Y-%m-%d') and DATE_FORMAT(#{updateTime},'%Y-%m-%d')
</if>
order by id desc
</select>