win代码上传

detached
zouyiqing 2024-01-29 15:11:49 +08:00
parent 2eb74912e9
commit 36209c007d
5 changed files with 82 additions and 77 deletions

View File

@ -85,6 +85,10 @@
title: 'TIME', title: 'TIME',
sortable: true sortable: true
}, },
{
field: 'radarLocation',
title: '工位',
},
{ {
field: 'ladleNumber', field: 'ladleNumber',
title: '包号/架号' title: '包号/架号'

View File

@ -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);
} }

View File

@ -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

View File

@ -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>

View File

@ -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>