装置通讯检测
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);
|
||||
SourceOperateCodeEnum sourceOperateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getRequestId());
|
||||
|
||||
switch (sourceOperateCodeEnum) {
|
||||
case YJC_SBTXJY:
|
||||
devComm(socketDataMsg,param,msg);
|
||||
devComm(socketDataMsg, param, msg);
|
||||
break;
|
||||
case QUITE:
|
||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||
String userKey = param.getUserPageId()+handlerStr;
|
||||
switch (dictDataEnumByCode){
|
||||
String userKey = param.getUserPageId() + handlerStr;
|
||||
switch (dictDataEnumByCode) {
|
||||
case SUCCESS:
|
||||
//通讯校验成功
|
||||
webSocketHandler.sendMsgToUser(userKey, msg);
|
||||
Channel channel = SocketManager.getChannelByUserId(userKey);
|
||||
channel.close();
|
||||
SocketManager.removeUser(userKey);
|
||||
|
||||
break;
|
||||
case UNPROCESSED_BUSINESS:
|
||||
break;
|
||||
@@ -84,39 +110,45 @@ public class SocketDevResponseService {
|
||||
}
|
||||
break;
|
||||
case YJC_XYJY:
|
||||
devXieyi(socketDataMsg,param,msg);
|
||||
devXieyi(socketDataMsg, param, msg);
|
||||
break;
|
||||
case YJC_XUJY:
|
||||
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());
|
||||
String s = param.getUserPageId() + handlerStr;
|
||||
SocketMsg socketMsg=new SocketMsg();
|
||||
switch (dictDataEnumByCode){
|
||||
SocketMsg socketMsg = new SocketMsg();
|
||||
switch (dictDataEnumByCode) {
|
||||
case SUCCESS:
|
||||
//通讯校验成功
|
||||
webSocketHandler.sendMsgToUser(param.getUserPageId(), msg);
|
||||
String mId = JSON.parseObject(msg).get("data").toString();
|
||||
successComm.add(mId);
|
||||
|
||||
System.out.println(successComm.size()+"====="+moniterIdListComm.size());
|
||||
if (successComm.size() == moniterIdListComm.size()) {
|
||||
//开始进行协议校验
|
||||
/* List<PreDetection> devList = iPqDevService.getDevInfo(param.getDevIds());
|
||||
List<PreDetection> devList = iPqDevService.getDevInfo(param.getDevIds());
|
||||
Map<String, List<PreDetection>> map = new HashMap(1);
|
||||
map.put("deviceList", devList);
|
||||
String jsonString = JSON.toJSONString(map);
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
|
||||
socketMsg.setData(jsonString);
|
||||
String json = JSON.toJSONString(socketMsg);*/
|
||||
//
|
||||
String json = JSON.toJSONString(socketMsg);
|
||||
|
||||
System.out.println("开始协议校验++++++++++");
|
||||
//SocketManager.sendMsg(s,json);
|
||||
SocketManager.sendMsg(s, json);
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
case UNPROCESSED_BUSINESS:
|
||||
@@ -134,8 +166,11 @@ public class SocketDevResponseService {
|
||||
//发起关闭操作
|
||||
socketMsg.setRequestId("quit");
|
||||
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;
|
||||
default:
|
||||
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());
|
||||
switch (dictDataEnumByCode){
|
||||
case SUCCESS:
|
||||
webSocketHandler.sendMsgToUser(param.getUserPageId(), msg);
|
||||
SocketMsg socketMsg = new SocketMsg();
|
||||
String s = param.getUserPageId() + handlerStr;
|
||||
|
||||
switch (dictDataEnumByCode) {
|
||||
case SUCCESS:
|
||||
webSocketHandler.sendMsgToUser(param.getUserPageId(), msg);
|
||||
System.out.println(successXieyi.size()+"====="+moniterIdListXieyi.size());
|
||||
String mId = JSON.parseObject(msg).get("data").toString();
|
||||
successXieyi.add(mId);
|
||||
if (successXieyi.size() == moniterIdListXieyi.size()) {
|
||||
//开始相序校验
|
||||
|
||||
}
|
||||
break;
|
||||
case UNPROCESSED_BUSINESS:
|
||||
break;
|
||||
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;
|
||||
default:
|
||||
WebSocketVO webSocketVO = new WebSocketVO();
|
||||
@@ -188,9 +239,9 @@ public class SocketDevResponseService {
|
||||
case SUCCESS:
|
||||
success.add(devData.getId());
|
||||
if (success.size() == moniterIdList.size()) {
|
||||
PqScriptIssueParam sourceParam=new PqScriptIssueParam();
|
||||
PqScriptIssueParam sourceParam = new PqScriptIssueParam();
|
||||
List<SourceIssue> sourceIssues = scriptDtlsService.listSourceIssue(sourceParam);
|
||||
if(CollUtil.isNotEmpty(sourceIssues)){
|
||||
if (CollUtil.isNotEmpty(sourceIssues)) {
|
||||
List<SourceCompareDev> info = new ArrayList<>();
|
||||
for (DevData dev : devInfo) {
|
||||
info.addAll(devIsSource(dev, sourceIssues.get(0)));
|
||||
@@ -235,7 +286,7 @@ public class SocketDevResponseService {
|
||||
// list.add(socketDataMsg);
|
||||
list.add(socketDataMsgb);
|
||||
|
||||
String is="\n" +
|
||||
String is = "\n" +
|
||||
" {\n" +
|
||||
" \"sourceId\": \"1111\",\n" +
|
||||
" \"type\": \"Freq\",\n" +
|
||||
@@ -429,7 +480,7 @@ public class SocketDevResponseService {
|
||||
|
||||
|
||||
private List<SourceCompareDev> devIsSource(DevData dev, SourceIssue issue) {
|
||||
List<SourceCompareDev> info=new ArrayList<>();
|
||||
List<SourceCompareDev> info = new ArrayList<>();
|
||||
String[] split = dev.getId().split("_");
|
||||
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> dataI = sqlData.stream().filter(x -> "电流有效值".equals(x.getDesc())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(dataV)) {
|
||||
SourceCompareDev compareDev = getSourceCompareDev(split, dataV,"电压有效值","U", channelList);
|
||||
SourceCompareDev compareDev = getSourceCompareDev(split, dataV, "电压有效值", "U", channelList);
|
||||
info.add(compareDev);
|
||||
}
|
||||
if (CollUtil.isNotEmpty(dataI)) {
|
||||
SourceCompareDev compareDev = getSourceCompareDev(split, dataI,"电流有效值","I", channelList);
|
||||
SourceCompareDev compareDev = getSourceCompareDev(split, dataI, "电流有效值", "I", channelList);
|
||||
info.add(compareDev);
|
||||
}
|
||||
|
||||
@@ -450,6 +501,7 @@ public class SocketDevResponseService {
|
||||
|
||||
/**
|
||||
* 计算是否合格
|
||||
*
|
||||
* @param split
|
||||
* @param data
|
||||
* @param name 指标名称
|
||||
@@ -469,33 +521,33 @@ public class SocketDevResponseService {
|
||||
compareDev.setDesc(name);
|
||||
//装置数据
|
||||
DevData.SqlDataDTO.ListDTO devData = data.get(0).getList();
|
||||
List<SourceIssue.ChannelListDTO> sourceList = channelList.stream().filter(x -> (type+"a").equals(x.getChannelType()) ||
|
||||
(type+"b").equals(x.getChannelType()) ||
|
||||
(type+"c").equals(x.getChannelType())
|
||||
List<SourceIssue.ChannelListDTO> sourceList = channelList.stream().filter(x -> (type + "a").equals(x.getChannelType()) ||
|
||||
(type + "b").equals(x.getChannelType()) ||
|
||||
(type + "c").equals(x.getChannelType())
|
||||
).collect(Collectors.toList());
|
||||
Map<String, Float> sourceMap = sourceList.stream()
|
||||
.collect(Collectors.toMap(x -> x.getChannelType().toUpperCase().replace(type, "")
|
||||
, SourceIssue.ChannelListDTO::getFAmp));
|
||||
Map<String,Float> devMap =new HashMap<>(3);
|
||||
devMap.put("A",devData.getA());
|
||||
devMap.put("B",devData.getB());
|
||||
devMap.put("C",devData.getC());
|
||||
Map<String, Float> devMap = new HashMap<>(3);
|
||||
devMap.put("A", devData.getA());
|
||||
devMap.put("B", devData.getB());
|
||||
devMap.put("C", devData.getC());
|
||||
Boolean is = true;
|
||||
for (SourceIssue.ChannelListDTO channelListDTO : sourceList) {
|
||||
if (!is) {
|
||||
break;
|
||||
}
|
||||
if (channelListDTO.getChannelType().equals((type+"a"))) {
|
||||
if (channelListDTO.getChannelType().equals((type + "a"))) {
|
||||
is = NumberUtil.isIn(BigDecimal.valueOf(devData.getA()),
|
||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
||||
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()),
|
||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
||||
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()),
|
||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
||||
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 com.alibaba.fastjson.JSON;
|
||||
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.pojo.enums.SourceOperateCodeEnum;
|
||||
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
||||
@@ -45,6 +46,8 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
||||
private final IPqSourceService pqSourceService;
|
||||
private final IPqScriptDtlsService pqScriptDtlsService;
|
||||
|
||||
private final SocketDevResponseService socketDevResponseService;
|
||||
|
||||
|
||||
@Value("${socket.source.ip}")
|
||||
private String ip;
|
||||
@@ -124,6 +127,10 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
||||
@Override
|
||||
public boolean startTest(PreDetectionParam param) {
|
||||
|
||||
socketDevResponseService.initList(param);
|
||||
|
||||
|
||||
|
||||
Runnable runnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
Reference in New Issue
Block a user