装置通讯检测
This commit is contained in:
@@ -54,26 +54,52 @@ public class SocketDevResponseService {
|
|||||||
/**
|
/**
|
||||||
* 装置名称
|
* 装置名称
|
||||||
*/
|
*/
|
||||||
Map<String,String> devNameMap = new HashMap<>();
|
Map<String, String> devNameMap = new HashMap<>();
|
||||||
|
|
||||||
public void deal(PreDetectionParam param,String msg){
|
|
||||||
|
/**
|
||||||
|
* 所有装置通道信息
|
||||||
|
*/
|
||||||
|
List<String> moniterIdListComm = new ArrayList<>();
|
||||||
|
/**
|
||||||
|
* 成功结束的装置
|
||||||
|
*/
|
||||||
|
List<String> successComm = new ArrayList<>();
|
||||||
|
/**
|
||||||
|
* 装置名称
|
||||||
|
*/
|
||||||
|
Map<String, String> devNameMapComm = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所有装置通道信息
|
||||||
|
*/
|
||||||
|
List<String> moniterIdListXieyi = new ArrayList<>();
|
||||||
|
/**
|
||||||
|
* 成功结束的装置
|
||||||
|
*/
|
||||||
|
List<String> successXieyi = new ArrayList<>();
|
||||||
|
/**
|
||||||
|
* 装置名称
|
||||||
|
*/
|
||||||
|
Map<String, String> devNameMapXieyi = new HashMap<>();
|
||||||
|
|
||||||
|
public void deal(PreDetectionParam param, String msg) {
|
||||||
SocketDataMsg socketDataMsg = MsgUtil.socketDataMsg(msg);
|
SocketDataMsg socketDataMsg = MsgUtil.socketDataMsg(msg);
|
||||||
SourceOperateCodeEnum sourceOperateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getRequestId());
|
SourceOperateCodeEnum sourceOperateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getRequestId());
|
||||||
|
|
||||||
switch (sourceOperateCodeEnum) {
|
switch (sourceOperateCodeEnum) {
|
||||||
case YJC_SBTXJY:
|
case YJC_SBTXJY:
|
||||||
devComm(socketDataMsg,param,msg);
|
devComm(socketDataMsg, param, msg);
|
||||||
break;
|
break;
|
||||||
case QUITE:
|
case QUITE:
|
||||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||||
String userKey = param.getUserPageId()+handlerStr;
|
String userKey = param.getUserPageId() + handlerStr;
|
||||||
switch (dictDataEnumByCode){
|
switch (dictDataEnumByCode) {
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
//通讯校验成功
|
//通讯校验成功
|
||||||
webSocketHandler.sendMsgToUser(userKey, msg);
|
webSocketHandler.sendMsgToUser(userKey, msg);
|
||||||
Channel channel = SocketManager.getChannelByUserId(userKey);
|
|
||||||
channel.close();
|
|
||||||
SocketManager.removeUser(userKey);
|
|
||||||
break;
|
break;
|
||||||
case UNPROCESSED_BUSINESS:
|
case UNPROCESSED_BUSINESS:
|
||||||
break;
|
break;
|
||||||
@@ -84,39 +110,45 @@ public class SocketDevResponseService {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case YJC_XYJY:
|
case YJC_XYJY:
|
||||||
devXieyi(socketDataMsg,param,msg);
|
devXieyi(socketDataMsg, param, msg);
|
||||||
break;
|
break;
|
||||||
case YJC_XUJY:
|
case YJC_XUJY:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<String, Map<String, Integer>> reloverMap = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
private void devComm(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) {
|
||||||
private void devComm(SocketDataMsg socketDataMsg,PreDetectionParam param,String msg){
|
|
||||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||||
String s = param.getUserPageId() + handlerStr;
|
String s = param.getUserPageId() + handlerStr;
|
||||||
SocketMsg socketMsg=new SocketMsg();
|
SocketMsg socketMsg = new SocketMsg();
|
||||||
switch (dictDataEnumByCode){
|
switch (dictDataEnumByCode) {
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
//通讯校验成功
|
//通讯校验成功
|
||||||
webSocketHandler.sendMsgToUser(param.getUserPageId(), msg);
|
webSocketHandler.sendMsgToUser(param.getUserPageId(), msg);
|
||||||
//开始进行协议校验
|
String mId = JSON.parseObject(msg).get("data").toString();
|
||||||
/* List<PreDetection> devList = iPqDevService.getDevInfo(param.getDevIds());
|
successComm.add(mId);
|
||||||
Map<String, List<PreDetection>> map = new HashMap(1);
|
|
||||||
map.put("deviceList", devList);
|
System.out.println(successComm.size()+"====="+moniterIdListComm.size());
|
||||||
String jsonString = JSON.toJSONString(map);
|
if (successComm.size() == moniterIdListComm.size()) {
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
//开始进行协议校验
|
||||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
|
List<PreDetection> devList = iPqDevService.getDevInfo(param.getDevIds());
|
||||||
socketMsg.setData(jsonString);
|
Map<String, List<PreDetection>> map = new HashMap(1);
|
||||||
String json = JSON.toJSONString(socketMsg);*/
|
map.put("deviceList", devList);
|
||||||
//
|
String jsonString = JSON.toJSONString(map);
|
||||||
System.out.println("开始协议校验++++++++++");
|
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
||||||
//SocketManager.sendMsg(s,json);
|
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
|
||||||
|
socketMsg.setData(jsonString);
|
||||||
|
String json = JSON.toJSONString(socketMsg);
|
||||||
|
|
||||||
|
System.out.println("开始协议校验++++++++++");
|
||||||
|
SocketManager.sendMsg(s, json);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case UNPROCESSED_BUSINESS:
|
case UNPROCESSED_BUSINESS:
|
||||||
@@ -134,8 +166,11 @@ public class SocketDevResponseService {
|
|||||||
//发起关闭操作
|
//发起关闭操作
|
||||||
socketMsg.setRequestId("quit");
|
socketMsg.setRequestId("quit");
|
||||||
socketMsg.setOperateCode("QUIT_FUNEND$01");
|
socketMsg.setOperateCode("QUIT_FUNEND$01");
|
||||||
SocketManager.sendMsg(s,JSON.toJSONString(socketMsg));
|
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||||
|
socketMsg.setOperateCode("QUIT_FUNEND$02");
|
||||||
|
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||||
|
socketMsg.setOperateCode("QUIT_FUNEND$03");
|
||||||
|
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
WebSocketVO webSocketVO = new WebSocketVO();
|
WebSocketVO webSocketVO = new WebSocketVO();
|
||||||
@@ -146,18 +181,34 @@ public class SocketDevResponseService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void devXieyi(SocketDataMsg socketDataMsg,PreDetectionParam param,String msg){
|
private void devXieyi(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) {
|
||||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||||
switch (dictDataEnumByCode){
|
SocketMsg socketMsg = new SocketMsg();
|
||||||
|
String s = param.getUserPageId() + handlerStr;
|
||||||
|
|
||||||
|
switch (dictDataEnumByCode) {
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
webSocketHandler.sendMsgToUser(param.getUserPageId(), msg);
|
webSocketHandler.sendMsgToUser(param.getUserPageId(), msg);
|
||||||
String s = param.getUserPageId() + handlerStr;
|
System.out.println(successXieyi.size()+"====="+moniterIdListXieyi.size());
|
||||||
|
String mId = JSON.parseObject(msg).get("data").toString();
|
||||||
|
successXieyi.add(mId);
|
||||||
|
if (successXieyi.size() == moniterIdListXieyi.size()) {
|
||||||
|
//开始相序校验
|
||||||
|
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case UNPROCESSED_BUSINESS:
|
case UNPROCESSED_BUSINESS:
|
||||||
break;
|
break;
|
||||||
case RE_OPERATE:
|
case RE_OPERATE:
|
||||||
//发起关闭操作
|
//发起关闭操作
|
||||||
|
//发起关闭操作
|
||||||
|
socketMsg.setRequestId("quit");
|
||||||
|
socketMsg.setOperateCode("QUIT_FUNEND$01");
|
||||||
|
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||||
|
socketMsg.setOperateCode("QUIT_FUNEND$02");
|
||||||
|
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||||
|
socketMsg.setOperateCode("QUIT_FUNEND$03");
|
||||||
|
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
WebSocketVO webSocketVO = new WebSocketVO();
|
WebSocketVO webSocketVO = new WebSocketVO();
|
||||||
@@ -174,7 +225,7 @@ public class SocketDevResponseService {
|
|||||||
moniterIdList = pqDevList.stream().flatMap(x -> x.getMonitorList().stream())
|
moniterIdList = pqDevList.stream().flatMap(x -> x.getMonitorList().stream())
|
||||||
.map(PreDetection.MonitorListDTO::getLineId)
|
.map(PreDetection.MonitorListDTO::getLineId)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
devNameMap = pqDevList.stream().collect(Collectors.toMap(PreDetection::getDevIP, PreDetection::getDevName));
|
devNameMap = pqDevList.stream().collect(Collectors.toMap(PreDetection::getDevIP, PreDetection::getDevName));
|
||||||
// moniterIdList.add("192.168.1.186_1");
|
// moniterIdList.add("192.168.1.186_1");
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -188,9 +239,9 @@ public class SocketDevResponseService {
|
|||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
success.add(devData.getId());
|
success.add(devData.getId());
|
||||||
if (success.size() == moniterIdList.size()) {
|
if (success.size() == moniterIdList.size()) {
|
||||||
PqScriptIssueParam sourceParam=new PqScriptIssueParam();
|
PqScriptIssueParam sourceParam = new PqScriptIssueParam();
|
||||||
List<SourceIssue> sourceIssues = scriptDtlsService.listSourceIssue(sourceParam);
|
List<SourceIssue> sourceIssues = scriptDtlsService.listSourceIssue(sourceParam);
|
||||||
if(CollUtil.isNotEmpty(sourceIssues)){
|
if (CollUtil.isNotEmpty(sourceIssues)) {
|
||||||
List<SourceCompareDev> info = new ArrayList<>();
|
List<SourceCompareDev> info = new ArrayList<>();
|
||||||
for (DevData dev : devInfo) {
|
for (DevData dev : devInfo) {
|
||||||
info.addAll(devIsSource(dev, sourceIssues.get(0)));
|
info.addAll(devIsSource(dev, sourceIssues.get(0)));
|
||||||
@@ -235,7 +286,7 @@ public class SocketDevResponseService {
|
|||||||
// list.add(socketDataMsg);
|
// list.add(socketDataMsg);
|
||||||
list.add(socketDataMsgb);
|
list.add(socketDataMsgb);
|
||||||
|
|
||||||
String is="\n" +
|
String is = "\n" +
|
||||||
" {\n" +
|
" {\n" +
|
||||||
" \"sourceId\": \"1111\",\n" +
|
" \"sourceId\": \"1111\",\n" +
|
||||||
" \"type\": \"Freq\",\n" +
|
" \"type\": \"Freq\",\n" +
|
||||||
@@ -428,8 +479,8 @@ public class SocketDevResponseService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<SourceCompareDev> devIsSource(DevData dev, SourceIssue issue) {
|
private List<SourceCompareDev> devIsSource(DevData dev, SourceIssue issue) {
|
||||||
List<SourceCompareDev> info=new ArrayList<>();
|
List<SourceCompareDev> info = new ArrayList<>();
|
||||||
String[] split = dev.getId().split("_");
|
String[] split = dev.getId().split("_");
|
||||||
List<SourceIssue.ChannelListDTO> channelList = issue.getChannelList();
|
List<SourceIssue.ChannelListDTO> channelList = issue.getChannelList();
|
||||||
|
|
||||||
@@ -437,11 +488,11 @@ public class SocketDevResponseService {
|
|||||||
List<DevData.SqlDataDTO> dataV = sqlData.stream().filter(x -> "电压有效值".equals(x.getDesc())).collect(Collectors.toList());
|
List<DevData.SqlDataDTO> dataV = sqlData.stream().filter(x -> "电压有效值".equals(x.getDesc())).collect(Collectors.toList());
|
||||||
List<DevData.SqlDataDTO> dataI = sqlData.stream().filter(x -> "电流有效值".equals(x.getDesc())).collect(Collectors.toList());
|
List<DevData.SqlDataDTO> dataI = sqlData.stream().filter(x -> "电流有效值".equals(x.getDesc())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(dataV)) {
|
if (CollUtil.isNotEmpty(dataV)) {
|
||||||
SourceCompareDev compareDev = getSourceCompareDev(split, dataV,"电压有效值","U", channelList);
|
SourceCompareDev compareDev = getSourceCompareDev(split, dataV, "电压有效值", "U", channelList);
|
||||||
info.add(compareDev);
|
info.add(compareDev);
|
||||||
}
|
}
|
||||||
if (CollUtil.isNotEmpty(dataI)) {
|
if (CollUtil.isNotEmpty(dataI)) {
|
||||||
SourceCompareDev compareDev = getSourceCompareDev(split, dataI,"电流有效值","I", channelList);
|
SourceCompareDev compareDev = getSourceCompareDev(split, dataI, "电流有效值", "I", channelList);
|
||||||
info.add(compareDev);
|
info.add(compareDev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -450,10 +501,11 @@ public class SocketDevResponseService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算是否合格
|
* 计算是否合格
|
||||||
|
*
|
||||||
* @param split
|
* @param split
|
||||||
* @param data
|
* @param data
|
||||||
* @param name 指标名称
|
* @param name 指标名称
|
||||||
* @param type U,I
|
* @param type U,I
|
||||||
* @param channelList
|
* @param channelList
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -469,33 +521,33 @@ public class SocketDevResponseService {
|
|||||||
compareDev.setDesc(name);
|
compareDev.setDesc(name);
|
||||||
//装置数据
|
//装置数据
|
||||||
DevData.SqlDataDTO.ListDTO devData = data.get(0).getList();
|
DevData.SqlDataDTO.ListDTO devData = data.get(0).getList();
|
||||||
List<SourceIssue.ChannelListDTO> sourceList = channelList.stream().filter(x -> (type+"a").equals(x.getChannelType()) ||
|
List<SourceIssue.ChannelListDTO> sourceList = channelList.stream().filter(x -> (type + "a").equals(x.getChannelType()) ||
|
||||||
(type+"b").equals(x.getChannelType()) ||
|
(type + "b").equals(x.getChannelType()) ||
|
||||||
(type+"c").equals(x.getChannelType())
|
(type + "c").equals(x.getChannelType())
|
||||||
).collect(Collectors.toList());
|
).collect(Collectors.toList());
|
||||||
Map<String, Float> sourceMap = sourceList.stream()
|
Map<String, Float> sourceMap = sourceList.stream()
|
||||||
.collect(Collectors.toMap(x -> x.getChannelType().toUpperCase().replace(type, "")
|
.collect(Collectors.toMap(x -> x.getChannelType().toUpperCase().replace(type, "")
|
||||||
, SourceIssue.ChannelListDTO::getFAmp));
|
, SourceIssue.ChannelListDTO::getFAmp));
|
||||||
Map<String,Float> devMap =new HashMap<>(3);
|
Map<String, Float> devMap = new HashMap<>(3);
|
||||||
devMap.put("A",devData.getA());
|
devMap.put("A", devData.getA());
|
||||||
devMap.put("B",devData.getB());
|
devMap.put("B", devData.getB());
|
||||||
devMap.put("C",devData.getC());
|
devMap.put("C", devData.getC());
|
||||||
Boolean is = true;
|
Boolean is = true;
|
||||||
for (SourceIssue.ChannelListDTO channelListDTO : sourceList) {
|
for (SourceIssue.ChannelListDTO channelListDTO : sourceList) {
|
||||||
if (!is) {
|
if (!is) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (channelListDTO.getChannelType().equals((type+"a"))) {
|
if (channelListDTO.getChannelType().equals((type + "a"))) {
|
||||||
is = NumberUtil.isIn(BigDecimal.valueOf(devData.getA()),
|
is = NumberUtil.isIn(BigDecimal.valueOf(devData.getA()),
|
||||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
||||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 1.05));
|
BigDecimal.valueOf(channelListDTO.getFAmp() * 1.05));
|
||||||
}
|
}
|
||||||
if (channelListDTO.getChannelType().equals((type+"b"))) {
|
if (channelListDTO.getChannelType().equals((type + "b"))) {
|
||||||
is = NumberUtil.isIn(BigDecimal.valueOf(devData.getB()),
|
is = NumberUtil.isIn(BigDecimal.valueOf(devData.getB()),
|
||||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
||||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 1.05));
|
BigDecimal.valueOf(channelListDTO.getFAmp() * 1.05));
|
||||||
}
|
}
|
||||||
if (channelListDTO.getChannelType().equals((type+"c"))) {
|
if (channelListDTO.getChannelType().equals((type + "c"))) {
|
||||||
is = NumberUtil.isIn(BigDecimal.valueOf(devData.getC()),
|
is = NumberUtil.isIn(BigDecimal.valueOf(devData.getC()),
|
||||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
||||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 1.05));
|
BigDecimal.valueOf(channelListDTO.getFAmp() * 1.05));
|
||||||
@@ -509,4 +561,25 @@ public class SocketDevResponseService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化集合
|
||||||
|
*/
|
||||||
|
public void initList(PreDetectionParam param) {
|
||||||
|
this.moniterIdListComm = new ArrayList<>();
|
||||||
|
this.successComm = new ArrayList<>();
|
||||||
|
this.devNameMapComm = new HashMap<>();
|
||||||
|
|
||||||
|
this.moniterIdListXieyi = new ArrayList<>();
|
||||||
|
this.successXieyi = new ArrayList<>();
|
||||||
|
this.devNameMapXieyi = new HashMap<>();
|
||||||
|
|
||||||
|
List<PreDetection> pqDevList = iPqDevService.getDevInfo(param.getDevIds());
|
||||||
|
this.moniterIdListComm = pqDevList.stream().flatMap(x -> x.getMonitorList().stream())
|
||||||
|
.map(PreDetection.MonitorListDTO::getLineId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ package com.njcn.gather.detection.service.impl;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.njcn.gather.detection.handler.SocketDevResponseService;
|
||||||
import com.njcn.gather.detection.handler.SocketSourceResponseService;
|
import com.njcn.gather.detection.handler.SocketSourceResponseService;
|
||||||
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
|
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
|
||||||
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
||||||
@@ -45,6 +46,8 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
|||||||
private final IPqSourceService pqSourceService;
|
private final IPqSourceService pqSourceService;
|
||||||
private final IPqScriptDtlsService pqScriptDtlsService;
|
private final IPqScriptDtlsService pqScriptDtlsService;
|
||||||
|
|
||||||
|
private final SocketDevResponseService socketDevResponseService;
|
||||||
|
|
||||||
|
|
||||||
@Value("${socket.source.ip}")
|
@Value("${socket.source.ip}")
|
||||||
private String ip;
|
private String ip;
|
||||||
@@ -124,6 +127,10 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
|||||||
@Override
|
@Override
|
||||||
public boolean startTest(PreDetectionParam param) {
|
public boolean startTest(PreDetectionParam param) {
|
||||||
|
|
||||||
|
socketDevResponseService.initList(param);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Runnable runnable = new Runnable() {
|
Runnable runnable = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|||||||
Reference in New Issue
Block a user