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', field: 'createTime',
title: '记录开始时间', title: '记录开始时间'
sortable: true, },
},
{ {
field: 'updateTime', field: 'updateTime',
title: '记录结束时间', title: '记录结束时间',

View File

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

View File

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

View File

@ -58,6 +58,7 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
} }
private void radarWebSocket(List<SysRadar> radarList) { private void radarWebSocket(List<SysRadar> radarList) {
// System.out.println(" 雷达集合:::" + radarList);
for (SysRadar radar : radarList) { for (SysRadar radar : radarList) {
try { try {
Socket socket = new Socket(radar.getRadarIp(), 23); 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, List<PrimaryRadarData>> map = new HashMap<>();
Map<String ,Long> timeMap = new HashMap();
while (StringUtils.equals("0", radarDelMap.get(radar.getId()))) { while (StringUtils.equals("0", radarDelMap.get(radar.getId()))) {
try { try {
// socket连接成功返回数据 // socket连接成功返回数据
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp(), radar.getRadarId()); 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 // 没数据返回data.data == null
long current = System.currentTimeMillis();
if (Objects.isNull(data.getData())) { if (Objects.isNull(data.getData())) {
current = System.currentTimeMillis();
// 连续2秒没读到数据结束 // 连续2秒没读到数据结束
if (current - noDataStart >= 2000) { if (current - noDataStart >= 2000) {
long dataNullTime = System.currentTimeMillis();
// todo:存数据 // todo:存数据
if (CollectionUtils.isNotEmpty(map.get(getMapKey(radar)))) { if (CollectionUtils.isNotEmpty(map.get(getMapKey(radar)))) {
System.out.println("连续两秒没收到数据:开始存储........" + "开始时间为:" + timeMap.get("noDataStart") + "结束时间为:" + current);
if (readCount > 1) { if (readCount > 1) {
saveData(radar, map, readCount, noDataEnd, dataNullTime); saveData(radar, map, readCount, timeMap.get("noDataStart"), current);
timeMap.put("noDataStart",System.currentTimeMillis());
readCount = 1; readCount = 1;
} }
} }
map.get(getMapKey(radar)).clear(); map.remove(getMapKey(radar));
noDataStart = current; noDataStart = current;
} }
@ -141,25 +148,35 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
dataList.add(primaryRadarData); dataList.add(primaryRadarData);
map.put(getMapKey(radar), dataList); 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 (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) { // if (current - start >= 20000) {
// todo存数据 // // todo存数据
//
if (readCount > 100) { // System.out.println("连续二十秒秒没收到数据:开始存储........" + "开始时间为:" + start + "结束时间为:" + current);
saveData(radar, map, readCount, start, current); // if (readCount > 100) {
readCount = 1; // saveData(radar, map, readCount, start, current);
} // readCount = 1;
start = System.currentTimeMillis(); // }
// start = System.currentTimeMillis();
} //
dataList.clear(); // }
dataList.add(primaryRadarData); // 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())
&& !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存数据 // todo存数据
long currentTimeMillis = System.currentTimeMillis(); 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(); dataList.clear();
timeMap.put("noDataStart",System.currentTimeMillis());
map.remove(getMapKey(radar));
dataList.add(primaryRadarData); dataList.add(primaryRadarData);
readCount = 1; 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())) { if (!Objects.equals(data.getData().get(0), dataList.get(dataList.size() - 1).getRadarId())) {
long end = System.currentTimeMillis(); 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(); dataList.clear();
timeMap.put("noDataStart",System.currentTimeMillis());
map.remove(getMapKey(radar));
dataList.add(primaryRadarData); dataList.add(primaryRadarData);
readCount = 1; readCount = 1;
} }
@ -181,17 +203,20 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
} }
consecutiveZeros = 0; consecutiveZeros = 0;
} else { } else {
Long dataStart = timeMap.get("noDataStart");
//连续10次读取标签号为0 //连续10次读取标签号为0
consecutiveZeros++; consecutiveZeros++;
if (10 == consecutiveZeros) { if (10 == consecutiveZeros) {
// todo存数据 // todo存数据
long nullTime = System.currentTimeMillis(); 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; readCount = 1;
map.get(getMapKey(radar)).clear(); map.remove(getMapKey(radar));
timeMap.remove("noDataStart");
dataList.clear(); dataList.clear();
consecutiveZeros = 0; 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"> <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') AND DATE_FORMAT(update_time,'%Y-%m-%d') between DATE_FORMAT(#{createTime},'%Y-%m-%d') and DATE_FORMAT(#{updateTime},'%Y-%m-%d')
</if> </if>
order by id desc
</select> </select>