mac
parent
9f26dbb992
commit
02c7b0d6cb
|
|
@ -1,7 +1,6 @@
|
|||
package com.ruoyi.web.controller.system;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.ruoyi.common.core.domain.entity.*;
|
||||
import com.ruoyi.common.core.page.PageDomain;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
|
@ -13,7 +12,6 @@ import com.ruoyi.common.utils.bean.ModbusResponse;
|
|||
import com.ruoyi.system.service.ISysIdentifierService;
|
||||
import com.ruoyi.system.service.ISysRadarService;
|
||||
import com.ruoyi.system.service.PrimaryRadarDataService;
|
||||
import com.ruoyi.common.config.RadarStatusWebSocket;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
|
@ -29,7 +27,6 @@ import java.sql.SQLException;
|
|||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -39,29 +36,12 @@ import java.util.stream.Collectors;
|
|||
*/
|
||||
@Controller
|
||||
@RequestMapping("/system/radarstatus")
|
||||
public class RadarStatusController implements InitializingBean {
|
||||
public class RadarStatusController {
|
||||
private static final Logger log = LoggerFactory.getLogger(RadarStatusController.class);
|
||||
|
||||
@Autowired
|
||||
private ISysRadarService service;
|
||||
|
||||
@Autowired
|
||||
private PrimaryRadarDataService primaryRadarDataService;
|
||||
|
||||
@Autowired
|
||||
private ISysIdentifierService identifierService;
|
||||
|
||||
private Timer timer = new Timer();
|
||||
|
||||
public static CopyOnWriteArrayList<SocketModel> allRadar = new CopyOnWriteArrayList<>();
|
||||
|
||||
public static Integer count = 0 ;
|
||||
|
||||
private Integer consecutiveZeros = 0;
|
||||
|
||||
private Map<String, List<Integer>> pulse4Number = new HashMap<>();
|
||||
|
||||
|
||||
private String prefix = "system/radarstatus";
|
||||
|
||||
/**
|
||||
|
|
@ -94,7 +74,6 @@ public class RadarStatusController implements InitializingBean {
|
|||
rspData.setRows(radarList.subList(pageNum, pageSize));
|
||||
rspData.setTotal(radarList.size());
|
||||
|
||||
// RadarStatusWebSocket.sendToAll(rspData);
|
||||
return rspData;
|
||||
}
|
||||
|
||||
|
|
@ -144,302 +123,12 @@ public class RadarStatusController implements InitializingBean {
|
|||
}
|
||||
}
|
||||
|
||||
private void asyncWebSocket(List<SysRadar> radarList) {
|
||||
CompletableFuture.runAsync(() -> {
|
||||
|
||||
buildAllRadar(radarList);
|
||||
|
||||
// TimerTask task = new TimerTask() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
// allRadar.forEach(socketModel -> {
|
||||
// asyncReadRadar(socketModel);
|
||||
// });
|
||||
// }
|
||||
// };
|
||||
// timer.scheduleAtFixedRate(task, 1, 100);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
public void buildAllRadar(List<SysRadar> radarList) {
|
||||
for (SysRadar radar : radarList) {
|
||||
try {
|
||||
Socket socket = new Socket(radar.getRadarIp(), 23);
|
||||
|
||||
TimerTask timerTask = new TimerTask() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
while (true) {
|
||||
// long start = System.currentTimeMillis();
|
||||
task(radar, socket);
|
||||
|
||||
System.out.println("雷达ip : =====" + radar.getRadarIp());
|
||||
try {
|
||||
Thread.sleep(3000);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
// System.out.println("耗时时间: " + (System.currentTimeMillis() - start) );
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
CompletableFuture.runAsync(() -> {
|
||||
timerTask.run();
|
||||
});
|
||||
} catch (Exception e) {
|
||||
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void task(SysRadar radar, Socket socket) {
|
||||
|
||||
try {
|
||||
long start = System.currentTimeMillis();
|
||||
List<SysDiscern> discernList = new ArrayList<>();
|
||||
|
||||
// socket连接成功返回数据
|
||||
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp());
|
||||
// 天线号字符串转集合
|
||||
List<String> numberList = convertStringToList(radar.getRadarNum());
|
||||
for (String number : numberList) {
|
||||
if (!pulse4Number.containsKey(number)) {
|
||||
pulse4Number.put(number, new ArrayList<>());
|
||||
}
|
||||
List<Integer> pulse4Values = pulse4Number.get(number);
|
||||
if (data.getData().get(7) == 0){
|
||||
consecutiveZeros ++;
|
||||
if (consecutiveZeros >= 10) {
|
||||
// 10个0连续,说明该天线没有数据 从pulse4Number中删除该天线
|
||||
pulse4Number.remove(number);
|
||||
// 从radarList中删除该天线
|
||||
|
||||
// 数据记录结束,计算最大pulse4值
|
||||
double maxPulse4 = pulse4Values.stream().mapToDouble(Integer::doubleValue).max().orElse(0);
|
||||
System.out.println("天线 " + number + " 的最大pulse4值为: " + maxPulse4);
|
||||
// 为下一次数据记录重置
|
||||
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);
|
||||
|
||||
|
||||
|
||||
String tag = modbusResponse.getTagId();
|
||||
// 雷达原始数据对象
|
||||
PrimaryRadarData primaryRadarData = new PrimaryRadarData();
|
||||
// 标识器对象
|
||||
SysIdentifier sysIdentifier = new SysIdentifier();
|
||||
// 拷贝封装类属性到雷达原始数据对象
|
||||
BeanUtils.copyProperties(modbusResponse, primaryRadarData);
|
||||
|
||||
//判断读取数据中是否携带标签
|
||||
if (!"0".equals(modbusResponse.getTagId())) {
|
||||
// 根据标签去数据库查询标签列表
|
||||
sysIdentifier = identifierService.selectIdentifierByTag(tag);
|
||||
//判断数据库查询结果是否有数据
|
||||
if (sysIdentifier != null) {
|
||||
// 有数据将查询到的标识器配置属性放进原始数据对象
|
||||
primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
primaryRadarData.setRadarLocation(radar.getRadarLocation());
|
||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||
|
||||
if (modbusResponse.getValue4() != 0){
|
||||
// 给雷达识别报表赋值
|
||||
sysDiscern.setType(sysIdentifier.getType());
|
||||
sysDiscern.setRadarLocation(radar.getRadarLocation());
|
||||
sysDiscern.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
sysDiscern.setCreateTime(new Date());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 没有配置过将铁包号置空
|
||||
primaryRadarData.setLadleNumber(null);
|
||||
primaryRadarData.setRadarLocation(null);
|
||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||
}
|
||||
if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) {
|
||||
// primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
|
||||
} else {
|
||||
|
||||
}
|
||||
System.out.println("耗时时间: " + (System.currentTimeMillis() - start) );
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
public static void addRadar(List<SysRadar> radarList) {
|
||||
List<Long> idList = allRadar.stream().map(SocketModel::getId).collect(Collectors.toList());
|
||||
List<SysRadar> filterList = radarList.stream().filter(item -> !idList.contains(item.getId())).collect(Collectors.toList());
|
||||
// buildAllRadar(filterList);
|
||||
}
|
||||
|
||||
public static void delRadar(Long id) {
|
||||
allRadar.removeIf(item -> item.getId().equals(id));
|
||||
}
|
||||
|
||||
|
||||
// private void asyncReadRadar(SocketModel socketModel) {
|
||||
// CompletableFuture.runAsync(() -> {
|
||||
// try {
|
||||
// List<SysDiscern> discernList = new ArrayList<>();
|
||||
// // socket连接成功返回数据
|
||||
// DataResponse data = SocketUtil.getData(socketModel);
|
||||
// // 天线号字符串转集合
|
||||
// List<String> numberList = convertStringToList(socketModel.getNumber());
|
||||
// for (String number : numberList) {
|
||||
// if (!pulse4Number.containsKey(number)) {
|
||||
// pulse4Number.put(number, new ArrayList<>());
|
||||
// }
|
||||
// List<Integer> pulse4Values = pulse4Number.get(number);
|
||||
// if (data.getData().get(7) == 0){
|
||||
// consecutiveZeros ++;
|
||||
// if (consecutiveZeros >= 10) {
|
||||
// // 10个0连续,说明该天线没有数据 从pulse4Number中删除该天线
|
||||
// pulse4Number.remove(number);
|
||||
// // 从radarList中删除该天线
|
||||
// allRadar.remove(socketModel);
|
||||
//
|
||||
// // 数据记录结束,计算最大pulse4值
|
||||
// double maxPulse4 = pulse4Values.stream().mapToDouble(Integer::doubleValue).max().orElse(0);
|
||||
// System.out.println("天线 " + number + " 的最大pulse4值为: " + maxPulse4);
|
||||
// // 为下一次数据记录重置
|
||||
// pulse4Values.clear();
|
||||
// consecutiveZeros = 0;
|
||||
// }
|
||||
// }else {
|
||||
// count ++;
|
||||
// pulse4Values.add(data.getData().get(7));
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// SysDiscern sysDiscern = copyDataToDiscern(data);
|
||||
//
|
||||
// System.out.println(socketModel.getRadarIp() + ": " + data);
|
||||
// // 雷达数据返回封装类赋值
|
||||
// ModbusResponse modbusResponse = getModbusResponse(data);
|
||||
//
|
||||
//
|
||||
//
|
||||
// String tag = modbusResponse.getTagId();
|
||||
// // 雷达原始数据对象
|
||||
// PrimaryRadarData primaryRadarData = new PrimaryRadarData();
|
||||
// // 标识器对象
|
||||
// SysIdentifier sysIdentifier = new SysIdentifier();
|
||||
// // 拷贝封装类属性到雷达原始数据对象
|
||||
// BeanUtils.copyProperties(modbusResponse, primaryRadarData);
|
||||
//
|
||||
// //判断读取数据中是否携带标签
|
||||
// if (!"0".equals(modbusResponse.getTagId())) {
|
||||
// // 根据标签去数据库查询标签列表
|
||||
// sysIdentifier = identifierService.selectIdentifierByTag(tag);
|
||||
// //判断数据库查询结果是否有数据
|
||||
// if (sysIdentifier != null) {
|
||||
// // 有数据将查询到的标识器配置属性放进原始数据对象
|
||||
// primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
// primaryRadarData.setRadarLocation(socketModel.getRadarLocation());
|
||||
// primaryRadarData.setRadarIp(socketModel.getRadarIp());
|
||||
//
|
||||
// if (modbusResponse.getValue4() != 0){
|
||||
// // 给雷达识别报表赋值
|
||||
// sysDiscern.setType(sysIdentifier.getType());
|
||||
// sysDiscern.setRadarLocation(socketModel.getRadarLocation());
|
||||
// sysDiscern.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
// sysDiscern.setCreateTime(new Date());
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// // 没有配置过将铁包号置空
|
||||
// primaryRadarData.setLadleNumber(null);
|
||||
// primaryRadarData.setRadarLocation(null);
|
||||
// primaryRadarData.setRadarIp(socketModel.getRadarIp());
|
||||
// }
|
||||
// if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) {
|
||||
// primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
|
||||
// } else {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 雷达识别报表赋值
|
||||
*
|
||||
* @param data
|
||||
* @return ModbusResponse
|
||||
*/
|
||||
private static SysDiscern copyDataToDiscern(DataResponse data) {
|
||||
SysDiscern discern = new SysDiscern();
|
||||
discern.setTagId(data.getData().get(3).toString());
|
||||
discern.setValue4(data.getData().get(7));
|
||||
discern.setNumber(data.getData().get(11));
|
||||
return discern;
|
||||
}
|
||||
|
||||
/**
|
||||
* 雷达数据返回封装类赋值
|
||||
*
|
||||
* @param data
|
||||
* @return ModbusResponse
|
||||
*/
|
||||
public static ModbusResponse getModbusResponse(DataResponse data) {
|
||||
ModbusResponse modbusResponse = new ModbusResponse();
|
||||
modbusResponse.setRadarNum(data.getData().get(0).toString());
|
||||
modbusResponse.setTagId(data.getData().get(3).toString());
|
||||
modbusResponse.setValue1(data.getData().get(4));
|
||||
modbusResponse.setValue2(data.getData().get(5));
|
||||
modbusResponse.setValue3(data.getData().get(6));
|
||||
modbusResponse.setValue4(data.getData().get(7));
|
||||
modbusResponse.setValue5(data.getData().get(8));
|
||||
modbusResponse.setBaseLine(data.getData().get(9));
|
||||
modbusResponse.setQueryFre(data.getData().get(10));
|
||||
modbusResponse.setNumber(data.getData().get(11));
|
||||
return modbusResponse;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
List<SysRadar> radarList = service.selectRadarList(new SysRadar());
|
||||
|
||||
asyncWebSocket(radarList);
|
||||
}
|
||||
|
||||
|
||||
public static List<String> convertStringToList(String input) {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (input.contains(",")) {
|
||||
String[] array = input.split(",");
|
||||
list.addAll(Arrays.asList(array));
|
||||
} else {
|
||||
list.add(input);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
|
||||
class ConnectionStatus {
|
||||
boolean connected = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ public class SysRadarController extends BaseController {
|
|||
@Autowired
|
||||
private ISysRadarService radarService;
|
||||
|
||||
@Autowired
|
||||
private RadarRealTimeDataService radarRealTimeDataService;
|
||||
|
||||
@GetMapping()
|
||||
public String user() {
|
||||
return prefix + "/radar";
|
||||
|
|
@ -74,7 +77,7 @@ public class SysRadarController extends BaseController {
|
|||
radar.setCreateBy(getLoginName());
|
||||
int result = radarService.insertRadar(radar);
|
||||
List<SysRadar> sysRadars = radarService.selectRadarList(new SysRadar());
|
||||
|
||||
radarRealTimeDataService.addRadar(sysRadars);
|
||||
return toAjax(result);
|
||||
}
|
||||
|
||||
|
|
@ -99,7 +102,6 @@ public class SysRadarController extends BaseController {
|
|||
|
||||
radar.setUpdateBy(getLoginName());
|
||||
int result = radarService.updateUser(radar);
|
||||
// RadarStatusController.buildAllRadar(radarService.selectRadarList(new SysRadar()));
|
||||
return toAjax(result);
|
||||
}
|
||||
|
||||
|
|
@ -107,7 +109,7 @@ public class SysRadarController extends BaseController {
|
|||
@ResponseBody
|
||||
public AjaxResult remove(String ids) {
|
||||
int result = radarService.deleteRadarByIds(ids);
|
||||
RadarStatusController.delRadar(Long.valueOf(ids));
|
||||
radarRealTimeDataService.delRadar(Long.valueOf(ids));
|
||||
return toAjax(result);
|
||||
}
|
||||
|
||||
|
|
@ -141,7 +143,7 @@ public class SysRadarController extends BaseController {
|
|||
ExcelUtil<RadarExcel> util = new ExcelUtil<RadarExcel>(RadarExcel.class);
|
||||
List<RadarExcel> radarList = util.importExcel(file.getInputStream());
|
||||
String message = radarService.importData(radarList, updateSupport);
|
||||
// RadarStatusController.buildAllRadar(radarService.selectRadarList(new SysRadar()));
|
||||
radarRealTimeDataService.addRadar(radarService.selectRadarList(new SysRadar()));
|
||||
return AjaxResult.success(message);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.SysRadar;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface RadarRealTimeDataService {
|
||||
|
||||
void addRadar(List<SysRadar> radarList);
|
||||
|
||||
void delRadar(Long id);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,225 @@
|
|||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.*;
|
||||
import com.ruoyi.common.utils.SocketModel;
|
||||
import com.ruoyi.common.utils.SocketUtil;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import com.ruoyi.common.utils.bean.ModbusResponse;
|
||||
import com.ruoyi.system.service.ISysIdentifierService;
|
||||
import com.ruoyi.system.service.ISysRadarService;
|
||||
import com.ruoyi.system.service.PrimaryRadarDataService;
|
||||
import com.ruoyi.system.service.RadarRealTimeDataService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.net.Socket;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, InitializingBean {
|
||||
|
||||
@Autowired
|
||||
private PrimaryRadarDataService primaryRadarDataService;
|
||||
|
||||
@Autowired
|
||||
private ISysIdentifierService identifierService;
|
||||
|
||||
@Autowired
|
||||
private ISysRadarService service;
|
||||
|
||||
public static CopyOnWriteArrayList<String> allRadar = new CopyOnWriteArrayList<>();
|
||||
|
||||
public static Integer count = 0 ;
|
||||
|
||||
private Integer consecutiveZeros = 0;
|
||||
|
||||
private Map<String, List<Integer>> pulse4Number = new HashMap<>();
|
||||
|
||||
private Map<Long,String> radarDelMap = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
List<SysRadar> radarList = service.selectRadarList(new SysRadar());
|
||||
|
||||
CompletableFuture.runAsync(() -> {
|
||||
radarWebSocket(radarList);
|
||||
});
|
||||
}
|
||||
|
||||
private void radarWebSocket(List<SysRadar> radarList) {
|
||||
for (SysRadar radar : radarList) {
|
||||
try {
|
||||
Socket socket = new Socket(radar.getRadarIp(), 23);
|
||||
allRadar.add(radar.getRadarIp());
|
||||
radarDelMap.put(radar.getId(), "0");
|
||||
|
||||
CompletableFuture.runAsync(() -> {
|
||||
while (StringUtils.equals("0",radarDelMap.get(radar.getId()))) {
|
||||
// long start = System.currentTimeMillis();
|
||||
task(radar, socket);
|
||||
|
||||
System.out.println("雷达ip : =====" + radar.getRadarIp());
|
||||
try {
|
||||
Thread.sleep(3000);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
// System.out.println("耗时时间: " + (System.currentTimeMillis() - start) );
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void task(SysRadar radar, Socket socket) {
|
||||
|
||||
try {
|
||||
long start = System.currentTimeMillis();
|
||||
List<SysDiscern> discernList = new ArrayList<>();
|
||||
|
||||
// socket连接成功返回数据
|
||||
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp());
|
||||
// 天线号字符串转集合
|
||||
List<String> numberList = convertStringToList(radar.getRadarNum());
|
||||
for (String number : numberList) {
|
||||
if (!pulse4Number.containsKey(number)) {
|
||||
pulse4Number.put(number, new ArrayList<>());
|
||||
}
|
||||
List<Integer> pulse4Values = pulse4Number.get(number);
|
||||
if (data.getData().get(7) == 0){
|
||||
consecutiveZeros ++;
|
||||
if (consecutiveZeros >= 10) {
|
||||
// 10个0连续,说明该天线没有数据 从pulse4Number中删除该天线
|
||||
pulse4Number.remove(number);
|
||||
// 从radarList中删除该天线
|
||||
|
||||
// 数据记录结束,计算最大pulse4值
|
||||
double maxPulse4 = pulse4Values.stream().mapToDouble(Integer::doubleValue).max().orElse(0);
|
||||
System.out.println("天线 " + number + " 的最大pulse4值为: " + maxPulse4);
|
||||
// 为下一次数据记录重置
|
||||
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);
|
||||
|
||||
|
||||
|
||||
String tag = modbusResponse.getTagId();
|
||||
// 雷达原始数据对象
|
||||
PrimaryRadarData primaryRadarData = new PrimaryRadarData();
|
||||
// 标识器对象
|
||||
SysIdentifier sysIdentifier = new SysIdentifier();
|
||||
// 拷贝封装类属性到雷达原始数据对象
|
||||
BeanUtils.copyProperties(modbusResponse, primaryRadarData);
|
||||
|
||||
//判断读取数据中是否携带标签
|
||||
if (!"0".equals(modbusResponse.getTagId())) {
|
||||
// 根据标签去数据库查询标签列表
|
||||
sysIdentifier = identifierService.selectIdentifierByTag(tag);
|
||||
//判断数据库查询结果是否有数据
|
||||
if (sysIdentifier != null) {
|
||||
// 有数据将查询到的标识器配置属性放进原始数据对象
|
||||
primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
primaryRadarData.setRadarLocation(radar.getRadarLocation());
|
||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||
|
||||
if (modbusResponse.getValue4() != 0){
|
||||
// 给雷达识别报表赋值
|
||||
sysDiscern.setType(sysIdentifier.getType());
|
||||
sysDiscern.setRadarLocation(radar.getRadarLocation());
|
||||
sysDiscern.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
sysDiscern.setCreateTime(new Date());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 没有配置过将铁包号置空
|
||||
primaryRadarData.setLadleNumber(null);
|
||||
primaryRadarData.setRadarLocation(null);
|
||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||
}
|
||||
if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) {
|
||||
// primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
|
||||
} else {
|
||||
|
||||
}
|
||||
System.out.println("耗时时间: " + (System.currentTimeMillis() - start) );
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addRadar(List<SysRadar> radarList) {
|
||||
List<SysRadar> filterDataList = radarList.stream().filter(item -> !allRadar.contains(item.getRadarIp())).collect(Collectors.toList());
|
||||
radarWebSocket(filterDataList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delRadar(Long id) {
|
||||
radarDelMap.put(id,"1");
|
||||
}
|
||||
|
||||
|
||||
public static List<String> convertStringToList(String input) {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (input.contains(",")) {
|
||||
String[] array = input.split(",");
|
||||
list.addAll(Arrays.asList(array));
|
||||
} else {
|
||||
list.add(input);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 雷达识别报表赋值
|
||||
*
|
||||
* @param data
|
||||
* @return ModbusResponse
|
||||
*/
|
||||
private static SysDiscern copyDataToDiscern(DataResponse data) {
|
||||
SysDiscern discern = new SysDiscern();
|
||||
discern.setTagId(data.getData().get(3).toString());
|
||||
discern.setValue4(data.getData().get(7));
|
||||
discern.setNumber(data.getData().get(11));
|
||||
return discern;
|
||||
}
|
||||
|
||||
/**
|
||||
* 雷达数据返回封装类赋值
|
||||
*
|
||||
* @param data
|
||||
* @return ModbusResponse
|
||||
*/
|
||||
public static ModbusResponse getModbusResponse(DataResponse data) {
|
||||
ModbusResponse modbusResponse = new ModbusResponse();
|
||||
modbusResponse.setRadarNum(data.getData().get(0).toString());
|
||||
modbusResponse.setTagId(data.getData().get(3).toString());
|
||||
modbusResponse.setValue1(data.getData().get(4));
|
||||
modbusResponse.setValue2(data.getData().get(5));
|
||||
modbusResponse.setValue3(data.getData().get(6));
|
||||
modbusResponse.setValue4(data.getData().get(7));
|
||||
modbusResponse.setValue5(data.getData().get(8));
|
||||
modbusResponse.setBaseLine(data.getData().get(9));
|
||||
modbusResponse.setQueryFre(data.getData().get(10));
|
||||
modbusResponse.setNumber(data.getData().get(11));
|
||||
return modbusResponse;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue