win代码上传
parent
6fc4de5e43
commit
074326ce6a
|
|
@ -103,9 +103,8 @@
|
|||
},
|
||||
{
|
||||
field: 'createTime',
|
||||
title: '记录开始时间',
|
||||
sortable: true,
|
||||
},
|
||||
title: '记录开始时间'
|
||||
},
|
||||
{
|
||||
field: 'updateTime',
|
||||
title: '记录结束时间',
|
||||
|
|
|
|||
|
|
@ -26,4 +26,6 @@ public class DataResponse implements Serializable {
|
|||
|
||||
private List<Integer> data;
|
||||
|
||||
private Long time;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
// 没有配置过将铁包号置空
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue