win代码上传
parent
2eb74912e9
commit
36209c007d
|
|
@ -85,6 +85,10 @@
|
||||||
title: 'TIME',
|
title: 'TIME',
|
||||||
sortable: true
|
sortable: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
field: 'radarLocation',
|
||||||
|
title: '工位',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
field: 'ladleNumber',
|
field: 'ladleNumber',
|
||||||
title: '包号/架号'
|
title: '包号/架号'
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ public class SocketUtil {
|
||||||
System.out.println("雷达:" + radarIp + "===" + radarLocation + ": 连接异常:{}" + connected);
|
System.out.println("雷达:" + radarIp + "===" + radarLocation + ": 连接异常:{}" + connected);
|
||||||
dataResponse.setStatus(0);
|
dataResponse.setStatus(0);
|
||||||
dataResponse.setData(null);
|
dataResponse.setData(null);
|
||||||
return dataResponse;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
InputStream inputStream = socket.getInputStream(); // 获取输入流
|
InputStream inputStream = socket.getInputStream(); // 获取输入流
|
||||||
|
|
@ -32,6 +31,8 @@ public class SocketUtil {
|
||||||
byte[] buffer = new byte[available];
|
byte[] buffer = new byte[available];
|
||||||
inputStream.read(buffer, 0, available);
|
inputStream.read(buffer, 0, available);
|
||||||
String hex = new BigInteger(1, buffer).toString(16);
|
String hex = new BigInteger(1, buffer).toString(16);
|
||||||
|
dataResponse.setStatus(1);
|
||||||
|
RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse));
|
||||||
if (!"0".equals(hex)) {
|
if (!"0".equals(hex)) {
|
||||||
hex = "0" + hex;
|
hex = "0" + hex;
|
||||||
List<Integer> decimal = new ArrayList<>();
|
List<Integer> decimal = new ArrayList<>();
|
||||||
|
|
@ -41,11 +42,10 @@ public class SocketUtil {
|
||||||
decimal.add(s);
|
decimal.add(s);
|
||||||
}
|
}
|
||||||
dataResponse.setData(decimal);
|
dataResponse.setData(decimal);
|
||||||
dataResponse.setStatus(1);
|
|
||||||
return dataResponse;
|
return dataResponse;
|
||||||
}
|
}
|
||||||
dataResponse.setStatus(1);
|
|
||||||
RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse));
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println("读取数据异常:" + radarIp);
|
System.out.println("读取数据异常:" + radarIp);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,7 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
|
@ -59,8 +58,11 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
|
||||||
|
|
||||||
CompletableFuture.runAsync(() -> {
|
CompletableFuture.runAsync(() -> {
|
||||||
while (StringUtils.equals("0",radarDelMap.get(radar.getId()))) {
|
while (StringUtils.equals("0",radarDelMap.get(radar.getId()))) {
|
||||||
|
long start = System.currentTimeMillis();
|
||||||
task(radar, socket);
|
task(radar, socket);
|
||||||
System.out.println("雷达ip : =====" + radar.getRadarIp());
|
|
||||||
|
System.out.println("耗时时间: " + (System.currentTimeMillis() - start));
|
||||||
|
// System.out.println("雷达ip : =====" + radar.getRadarIp());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
@ -71,51 +73,49 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
|
||||||
}
|
}
|
||||||
|
|
||||||
private void task(SysRadar radar, Socket socket) {
|
private void task(SysRadar radar, Socket socket) {
|
||||||
|
try {
|
||||||
|
|
||||||
try {
|
// long start = System.currentTimeMillis();
|
||||||
|
Map<String, List<Integer>> pulse4Number = new HashMap<>();
|
||||||
|
int count = 0;
|
||||||
|
int consecutiveZeros = 0;
|
||||||
|
// long start = System.currentTimeMillis();
|
||||||
|
List<SysDiscern> discernList = new ArrayList<>();
|
||||||
|
|
||||||
|
// socket连接成功返回数据
|
||||||
Map<String, List<Integer>> pulse4Number = new HashMap<>();
|
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp());
|
||||||
int count = 0 ;
|
// 天线号字符串转集合
|
||||||
int consecutiveZeros = 0;
|
List<String> numberList = convertStringToList(radar.getRadarNum());
|
||||||
long start = System.currentTimeMillis();
|
for (String number : numberList) {
|
||||||
List<SysDiscern> discernList = new ArrayList<>();
|
if (!pulse4Number.containsKey(number)) {
|
||||||
|
pulse4Number.put(number, new ArrayList<>());
|
||||||
// socket连接成功返回数据
|
}
|
||||||
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp());
|
List<Integer> pulse4Values = pulse4Number.get(number);
|
||||||
// 天线号字符串转集合
|
if (data.getData().get(7) == 0) {
|
||||||
List<String> numberList = convertStringToList(radar.getRadarNum());
|
consecutiveZeros++;
|
||||||
for (String number : numberList) {
|
if (consecutiveZeros >= 10) {
|
||||||
if (!pulse4Number.containsKey(number)) {
|
// 10个0连续,说明该天线没有数据 从pulse4Number中删除该天线
|
||||||
pulse4Number.put(number, new ArrayList<>());
|
pulse4Number.remove(number);
|
||||||
}
|
|
||||||
List<Integer> pulse4Values = pulse4Number.get(number);
|
// 数据记录结束,计算最大pulse4值
|
||||||
if (data.getData().get(7) == 0){
|
double maxPulse4 = pulse4Values.stream().mapToDouble(Integer::doubleValue).max().orElse(0);
|
||||||
consecutiveZeros ++;
|
System.out.println("天线 " + number + " 的最大pulse4值为: " + maxPulse4);
|
||||||
if (consecutiveZeros >= 10) {
|
// 为下一次数据记录重置
|
||||||
// 10个0连续,说明该天线没有数据 从pulse4Number中删除该天线
|
pulse4Values.clear();
|
||||||
pulse4Number.remove(number);
|
consecutiveZeros = 0;
|
||||||
|
}
|
||||||
// 数据记录结束,计算最大pulse4值
|
} else {
|
||||||
double maxPulse4 = pulse4Values.stream().mapToDouble(Integer::doubleValue).max().orElse(0);
|
count++;
|
||||||
System.out.println("天线 " + number + " 的最大pulse4值为: " + maxPulse4);
|
System.out.println("天线:=== " + number + "雷达============" + radar.getRadarIp() + " 峰值为: " + data.getData().get(7) + "次数: ===" + count);
|
||||||
// 为下一次数据记录重置
|
pulse4Values.add(data.getData().get(7));
|
||||||
pulse4Values.clear();
|
|
||||||
consecutiveZeros = 0;
|
|
||||||
}
|
}
|
||||||
}else {
|
|
||||||
count ++;
|
|
||||||
pulse4Values.add(data.getData().get(7));
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
SysDiscern sysDiscern = copyDataToDiscern(data);
|
|
||||||
|
|
||||||
System.out.println(radar.getRadarIp() + ": " + data);
|
|
||||||
// 雷达数据返回封装类赋值
|
|
||||||
ModbusResponse modbusResponse = getModbusResponse(data);
|
|
||||||
|
|
||||||
|
SysDiscern sysDiscern = copyDataToDiscern(data);
|
||||||
|
|
||||||
|
System.out.println(radar.getRadarIp() + ": " + data);
|
||||||
|
// 雷达数据返回封装类赋值
|
||||||
|
ModbusResponse modbusResponse = getModbusResponse(data);
|
||||||
|
|
||||||
String tag = modbusResponse.getTagId();
|
String tag = modbusResponse.getTagId();
|
||||||
// 雷达原始数据对象
|
// 雷达原始数据对象
|
||||||
|
|
@ -136,28 +136,29 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
|
||||||
primaryRadarData.setRadarLocation(radar.getRadarLocation());
|
primaryRadarData.setRadarLocation(radar.getRadarLocation());
|
||||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||||
|
|
||||||
if (modbusResponse.getValue4() != 0){
|
if (modbusResponse.getValue4() != 0) {
|
||||||
// 给雷达识别报表赋值
|
// 给雷达识别报表赋值
|
||||||
sysDiscern.setType(sysIdentifier.getType());
|
sysDiscern.setType(sysIdentifier.getType());
|
||||||
sysDiscern.setRadarLocation(radar.getRadarLocation());
|
sysDiscern.setRadarLocation(radar.getRadarLocation());
|
||||||
sysDiscern.setLadleNumber(sysIdentifier.getLadleNumber());
|
sysDiscern.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||||
sysDiscern.setCreateTime(new Date());
|
sysDiscern.setCreateTime(new Date());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// 没有配置过将铁包号置空
|
||||||
|
primaryRadarData.setLadleNumber(null);
|
||||||
|
primaryRadarData.setRadarLocation(null);
|
||||||
|
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||||
}
|
}
|
||||||
} else {
|
if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) {
|
||||||
// 没有配置过将铁包号置空
|
CompletableFuture.runAsync(() -> {
|
||||||
primaryRadarData.setLadleNumber(null);
|
primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
|
||||||
primaryRadarData.setRadarLocation(null);
|
});
|
||||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
}
|
||||||
}
|
// System.out.println("耗时时间: " + (System.currentTimeMillis() - start));
|
||||||
if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) {
|
|
||||||
primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
|
|
||||||
} else {
|
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
}
|
}
|
||||||
System.out.println("耗时时间: " + (System.currentTimeMillis() - start) );
|
|
||||||
} catch (Exception e) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -48,11 +48,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
insert into sys_primary_radar_data(
|
insert into sys_primary_radar_data(
|
||||||
<if test="id != null and id != 0">id,</if>
|
<if test="id != null and id != 0">id,</if>
|
||||||
<if test="tagId != null and tagId != ''">tag_id,</if>
|
<if test="tagId != null and tagId != ''">tag_id,</if>
|
||||||
<if test="value1 != null and value1 != ''">value1,</if>
|
value1,
|
||||||
<if test="value2 != null and value2 != ''">value2,</if>
|
value2,
|
||||||
<if test="value3 != null and value3 != ''">value3,</if>
|
value3,
|
||||||
<if test="value4 != null and value4 != ''">value4,</if>
|
value4,
|
||||||
<if test="value5 != null and value5 != ''">value5,</if>
|
value5,
|
||||||
<if test="baseLine != null and baseLine != ''">base_line,</if>
|
<if test="baseLine != null and baseLine != ''">base_line,</if>
|
||||||
<if test="queryFre != null ">query_fre,</if>
|
<if test="queryFre != null ">query_fre,</if>
|
||||||
<if test="number != null and number != ''">number,</if>
|
<if test="number != null and number != ''">number,</if>
|
||||||
|
|
@ -66,11 +66,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
)values(
|
)values(
|
||||||
<if test="id != null and id != 0">#{id},</if>
|
<if test="id != null and id != 0">#{id},</if>
|
||||||
<if test="tagId != null and tagId != ''">#{tagId},</if>
|
<if test="tagId != null and tagId != ''">#{tagId},</if>
|
||||||
<if test="value1 != null and value1 != ''">#{value1},</if>
|
#{value1},
|
||||||
<if test="value2 != null and value2 != ''">#{value2},</if>
|
#{value2},
|
||||||
<if test="value3 != null and value3 != ''">#{value3},</if>
|
#{value3},
|
||||||
<if test="value4 != null and value4 != ''">#{value4},</if>
|
#{value4},
|
||||||
<if test="value5 != null and value5 != ''">#{value5},</if>
|
#{value5},
|
||||||
<if test="baseLine != null and baseLine != ''">#{baseLine},</if>
|
<if test="baseLine != null and baseLine != ''">#{baseLine},</if>
|
||||||
<if test="queryFre != null">#{queryFre},</if>
|
<if test="queryFre != null">#{queryFre},</if>
|
||||||
<if test="number != null and number != ''">#{number},</if>
|
<if test="number != null and number != ''">#{number},</if>
|
||||||
|
|
|
||||||
|
|
@ -117,9 +117,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<delete id="deleteRadarByIds">
|
<update id="deleteRadarByIds">
|
||||||
delete from sys_radar where id in (#{ids})
|
update sys_radar set del_flag = 1 where id in (#{ids})
|
||||||
</delete>
|
</update>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue