测试项数据入库代码

This commit is contained in:
2024-12-25 20:28:24 +08:00
parent 705372f918
commit 270b89ef2a
12 changed files with 386 additions and 218 deletions

View File

@@ -21,6 +21,7 @@ import com.njcn.gather.device.device.service.IPqDevService;
import com.njcn.gather.device.script.pojo.param.PqScriptIssueParam;
import com.njcn.gather.device.script.pojo.po.SourceIssue;
import com.njcn.gather.device.script.service.IPqScriptDtlsService;
import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -48,7 +49,7 @@ public class SocketDevResponseService {
*/
List<DevData> devInfo = new ArrayList<>();
Map<String,DevData> devDataMap = new HashMap<>();
Map<String, DevData> devDataMap = new HashMap<>();
/**
* 成功结束的装置
*/
@@ -76,22 +77,30 @@ public class SocketDevResponseService {
List<String> successXieyi3 = new ArrayList<>();
List<AdNonHarmonicResult> adNonHarmonicResultList = new ArrayList<>();
public void deal(PreDetectionParam param, String msg) {
SocketDataMsg socketDataMsg = MsgUtil.socketDataMsg(msg);
SourceOperateCodeEnum sourceOperateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getRequestId());
String userKey = param.getUserPageId() + handlerStr;
switch (sourceOperateCodeEnum) {
//设备通讯校验
case YJC_SBTXJY:
devComm(socketDataMsg, param, msg);
break;
//协议校验
case YJC_XYJY:
devXieyi(socketDataMsg, param, msg);
break;
//相序校验
case YJC_XUJY:
devXu(param, socketDataMsg);
break;
//获取实时数据
case FORMAL_REAL:
realDeal(param, socketDataMsg);
break;
//退出关闭
case QUITE:
quitDeal(socketDataMsg, param, msg);
break;
@@ -100,8 +109,6 @@ public class SocketDevResponseService {
}
private Map<String, Map<String, Integer>> reloverMap = new HashMap<>();
/**
* 装置通讯检测
@@ -110,10 +117,10 @@ public class SocketDevResponseService {
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
String s = param.getUserPageId() + handlerStr;
SocketMsg socketMsg = new SocketMsg();
switch (dictDataEnumByCode) {
switch (Objects.requireNonNull(dictDataEnumByCode)) {
case SUCCESS:
//通讯校验成功
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg,devNameMapComm,1));
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, devNameMapComm, 1));
String mId = JSON.parseObject(msg).get("data").toString();
successComm.add(mId);
@@ -124,12 +131,12 @@ public class SocketDevResponseService {
temMsg.setCode(SourceResponseCodeEnum.DEV_COMM_ALL_SUCCESS.getCode());
temMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_01.getValue());
temMsg.setRequestId(SourceOperateCodeEnum.YJC_SBTXJY.getValue());
webSocketHandler.sendMsgToUser(param.getUserPageId(),JSON.toJSONString(temMsg) );
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(temMsg));
//开始进行协议校验
List<PreDetection> devList = iPqDevService.getDevInfo(param.getDevIds());
Map<String, List<PreDetection>> map = new HashMap(1);
Map<String, List<PreDetection>> map = new HashMap<>(1);
map.put("deviceList", devList);
String jsonString = JSON.toJSONString(map);
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
@@ -148,12 +155,14 @@ public class SocketDevResponseService {
break;
case DEV_ERROR:
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, devNameMapComm, 2));
quitSend(param, socketMsg);
quitSendSource(param, socketMsg);
break;
case DEV_TARGET:
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, devNameMapComm, 2));
quitSend(param, socketMsg);
quitSendSource(param, socketMsg);
break;
case RE_OPERATE:
//出现已经初始化情况,发送用户用户确认是否继续检测
@@ -180,17 +189,16 @@ public class SocketDevResponseService {
SocketMsg socketMsg = new SocketMsg();
String s = param.getUserPageId() + handlerStr;
switch (dictDataEnumByCode) {
switch (Objects.requireNonNull(dictDataEnumByCode)) {
case SUCCESS:
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg,devNameMapComm,2));
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, devNameMapComm, 2));
if (socketDataMsg.getOperateCode().equals(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue())) {
successXieyi.add(socketDataMsg.getData());
if (successXieyi.size() == monitorIdListComm.size()) {
for(String string :successXieyi){
for (String string : successXieyi) {
//模拟统计协议校验,通讯校验已经校验过,模拟直接推送
@@ -199,7 +207,7 @@ public class SocketDevResponseService {
webSend.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
webSend.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
webSend.setData(string);
webSocketHandler.sendMsgToUser(param.getUserPageId(),MsgUtil.msgToWebData(webSend,devNameMapComm,1));
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(webSend, devNameMapComm, 1));
}
//协议3校验
@@ -224,15 +232,11 @@ public class SocketDevResponseService {
if (successXieyi3.size() == monitorIdListComm.size()) {
SocketDataMsg temMsg = new SocketDataMsg();
temMsg.setCode(SourceResponseCodeEnum.DEV_COMM_ALL_SUCCESS.getCode());
temMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_03.getValue());
temMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
webSocketHandler.sendMsgToUser(param.getUserPageId(),JSON.toJSONString(temMsg) );
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(temMsg));
System.out.println("开始相序校验++++++++++");
@@ -243,12 +247,20 @@ public class SocketDevResponseService {
issueParam.setIsPhaseSequence(true);
issueParam.setDevIds(param.getDevIds());
List<SourceIssue> sourceIssues = pqScriptDtlsService.listSourceIssue(issueParam);
if (CollUtil.isNotEmpty(sourceIssues)) {
SocketMsg xuMsg = new SocketMsg();
xuMsg.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
xuMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
xuMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
SocketManager.sendMsg(param.getUserPageId() +handlerSourceStr, MsgUtil.toJsonWithNewLinePlain(xuMsg));
if (SourceOperateCodeEnum.FORMAL_TEST.getValue().equals(param.getOperateType())) {
//正式检测
xuMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue());
} else if (SourceOperateCodeEnum.PRE_TEST.getValue().equals(param.getOperateType())) {
//预检测
xuMsg.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
}
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, MsgUtil.toJsonWithNewLinePlain(xuMsg));
}
}
}
@@ -256,9 +268,18 @@ public class SocketDevResponseService {
break;
case UNPROCESSED_BUSINESS:
webSocketHandler.sendMsgToUser(param.getUserPageId(),JSON.toJSONString(socketDataMsg));
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
case DEV_ERROR:
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, devNameMapComm, 2));
quitSend(param, socketMsg);
quitSendSource(param, socketMsg);
break;
case DEV_TARGET:
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, devNameMapComm, 2));
quitSend(param, socketMsg);
quitSendSource(param, socketMsg);
break;
case RE_OPERATE:
//出现已经初始化情况,发送用户用户确认是否继续检测
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
@@ -273,7 +294,9 @@ public class SocketDevResponseService {
}
/**
* 相序校验
*/
public void devXu(PreDetectionParam param, SocketDataMsg socketDataMsg) {
String data = socketDataMsg.getData();
DevData devData = JSON.parseObject(data, DevData.class);
@@ -298,38 +321,45 @@ public class SocketDevResponseService {
info.addAll(devIsSource(dev, sourceIssues.get(0)));
}
}
if(CollUtil.isNotEmpty(info)){
if (CollUtil.isNotEmpty(info)) {
SocketDataMsg dataMsg = new SocketDataMsg();
dataMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
dataMsg.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
dataMsg.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
for(SourceCompareDev sourceCompareDev : info){
dataMsg.setData(sourceCompareDev.getDevName()+"_"+sourceCompareDev.getLineNum()+sourceCompareDev.getDesc()+"校验结果:"+(sourceCompareDev.getIsQualified()?"合格":"不合格"));
webSocketHandler.sendMsgToUser(param.getUserPageId(),JSON.toJSONString(dataMsg) );
for (SourceCompareDev sourceCompareDev : info) {
dataMsg.setData(sourceCompareDev.getDevName() + "_" + sourceCompareDev.getLineNum() + sourceCompareDev.getDesc() + "校验结果:" + (sourceCompareDev.getIsQualified() ? "合格" : "不合格"));
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(dataMsg));
}
}
String userSource = param.getUserPageId() + handlerSourceStr;
SocketMsg msg = new SocketMsg();
msg.setRequestId(SourceOperateCodeEnum.YJC_YTXJY.getValue());
msg.setRequestId(SourceOperateCodeEnum.QUITE_SOURCE.getValue());
msg.setOperateCode(SourceOperateCodeEnum.CLOSE_GATHER.getValue());
Map<String, String> map = new HashMap<>(1);
map.put("sourceId", sourceIssues.get(0).getSourceId());
msg.setData(JSON.toJSONString(map));
SocketManager.sendMsg(userSource, MsgUtil.toJsonWithNewLinePlain(msg));
SocketManager.removeUser(userSource);
SocketManager.removeUser(param.getUserPageId() + handlerStr);
//同时关闭设备三个步骤
SocketMsg quitDevMsg = new SocketMsg();
quitSend(param, quitDevMsg);
//向前端推送消息
// webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
SocketDataMsg temMsg = new SocketDataMsg();
temMsg.setCode(SourceResponseCodeEnum.DEV_COMM_ALL_SUCCESS.getCode());
temMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
temMsg.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
webSocketHandler.sendMsgToUser(param.getUserPageId(),JSON.toJSONString(temMsg) );
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(temMsg));
//如果是正式校验需要继续校验
if (SourceOperateCodeEnum.FORMAL_TEST.getValue().equals(param.getOperateType())) {
}
}
break;
case UNPROCESSED_BUSINESS:
@@ -338,6 +368,16 @@ public class SocketDevResponseService {
case NORMAL_RESPONSE:
devInfo.add(devData);
break;
case DEV_ERROR:
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, devNameMapComm, 2));
quitSend(param, socketMsg);
quitSendSource(param, socketMsg);
break;
case DEV_TARGET:
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, devNameMapComm, 2));
quitSend(param, socketMsg);
quitSendSource(param, socketMsg);
break;
case RE_OPERATE:
break;
default:
@@ -352,11 +392,53 @@ public class SocketDevResponseService {
}
/**
* 实时数据
*/
public void realDeal(PreDetectionParam param, SocketDataMsg socketDataMsg) {
String data = socketDataMsg.getData();
DevData devData = JSON.parseObject(data, DevData.class);
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
SocketMsg socketMsg = new SocketMsg();
switch (dictDataEnumByCode) {
case SUCCESS:
List<DevData.SqlDataDTO> sqlDataDTOList = devData.getSqlData();
for (DevData.SqlDataDTO item : sqlDataDTOList) {
}
AdNonHarmonicResult adNonHarmonicResult = new AdNonHarmonicResult();
break;
case UNPROCESSED_BUSINESS:
break;
case NORMAL_RESPONSE:
break;
case DEV_ERROR:
break;
case DEV_TARGET:
break;
case RE_OPERATE:
break;
default:
socketMsg.setRequestId(socketDataMsg.getRequestId());
socketMsg.setOperateCode(socketDataMsg.getOperateCode());
socketMsg.setData(dictDataEnumByCode.getMessage());
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketMsg));
break;
}
}
}
/**
* 退出检测
* 退出检测返回
*/
private void quitDeal(SocketDataMsg socketDataMsg,PreDetectionParam param, String msg) {
private void quitDeal(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) {
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
SourceOperateCodeEnum operateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getOperateCode());
SocketMsg socketMsg = new SocketMsg();
@@ -415,9 +497,16 @@ public class SocketDevResponseService {
socketMsg.setRequestId(SourceOperateCodeEnum.QUITE.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.QUIT_INIT_03.getValue());
SocketManager.sendMsg(param.getUserPageId() + handlerStr, JSON.toJSONString(socketMsg));
}
/**
* 关闭源连接
*/
private void quitSendSource(PreDetectionParam param, SocketMsg socketMsg) {
socketMsg.setRequestId(SourceOperateCodeEnum.QUITE_SOURCE.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.CLOSE_GATHER.getValue());
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg));
}
private List<SourceCompareDev> devIsSource(DevData dev, SourceIssue issue) {
@@ -523,6 +612,8 @@ public class SocketDevResponseService {
this.success = new ArrayList<>();
this.devDataMap = new HashMap<>();
adNonHarmonicResultList.clear();
List<PreDetection> pqDevList = iPqDevService.getDevInfo(param.getDevIds());
this.monitorIdListComm = pqDevList.stream().flatMap(x -> x.getMonitorList().stream())

View File

@@ -51,15 +51,21 @@ public class SocketSourceResponseService {
SourceOperateCodeEnum enumByCode = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getRequestId());
if (ObjectUtil.isNotNull(enumByCode)) {
switch (enumByCode) {
//源初始化
case YJC_YTXJY:
detectionDev(param, socketDataMsg);
break;
//相序检测
case YJC_XUJY:
phaseSequenceDev(param, socketDataMsg);
break;
//正式检测
case FORMAL_REAL:
openSource(param, socketDataMsg);
break;
case QUITE_SOURCE:
// System.out.println("关闭源回调:"+msg);
SocketManager.removeUser(param.getUserPageId()+source);
// System.out.println("关闭源回调:"+msg);
SocketManager.removeUser(param.getUserPageId() + source);
break;
}
@@ -85,7 +91,7 @@ public class SocketSourceResponseService {
case SUCCESS:
//todo 前端推送收到的消息暂未处理好
webSocketHandler.sendMsgToUser(param.getUserPageId(),JSON.toJSONString(socketDataMsg) );
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
String s = param.getUserPageId() + "_Dev";
//开始设备通讯检测(发送设备初始化)
List<PreDetection> devList = iPqDevService.getDevInfo(param.getDevIds());
@@ -96,11 +102,11 @@ public class SocketSourceResponseService {
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_01.getValue());
socketMsg.setData(jsonString);
String json = JSON.toJSONString(socketMsg);
// SocketManager.sendMsg(s,json);
// SocketManager.sendMsg(s,json);
NettyClient.socketClient(ip, port, param.getUserPageId(), json, new NettyDevClientHandler(param, socketDevResponseService));
break;
case UNPROCESSED_BUSINESS:
webSocketHandler.sendMsgToUser(param.getUserPageId(),JSON.toJSONString(socketDataMsg) );
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
break;
default:
socketMsg = new SocketMsg();
@@ -156,4 +162,49 @@ public class SocketSourceResponseService {
}
}
/**
* 正式检测源输出
*
* @param param
* @param socketDataMsg
*/
private void openSource(PreDetectionParam param, SocketDataMsg socketDataMsg) {
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
SocketMsg socketMsg = new SocketMsg();
switch (dictDataEnumByCode) {
case SUCCESS:
//向前端推送信息
// webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
String s = param.getUserPageId() + DEV;
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
List<PreDetection> pqDevList = iPqDevService.getDevInfo(param.getDevIds());
List<String> moniterIdList = pqDevList.stream().flatMap(x -> x.getMonitorList().stream())
.map(PreDetection.MonitorListDTO::getLineId)
.collect(Collectors.toList());
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
phaseSequenceParam.setMoniterIdList(moniterIdList);
phaseSequenceParam.setDataType(Arrays.asList("实时数据/电压有效值", "实时数据/电流有效值"));
phaseSequenceParam.setReadCount(20);
phaseSequenceParam.setIgnoreCount(10);
socketMsg.setData(JSON.toJSONString(phaseSequenceParam));
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
break;
case UNPROCESSED_BUSINESS:
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
break;
default:
socketMsg.setRequestId(socketDataMsg.getRequestId());
socketMsg.setOperateCode(socketDataMsg.getOperateCode());
socketMsg.setData(dictDataEnumByCode.getMessage());
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketMsg));
break;
}
}
}
}

View File

@@ -43,8 +43,19 @@ public enum SourceOperateCodeEnum {
YJC_XYJY("yjc_xyjy", "预检测_协议校验"),
YJC_XUJY("YJC_xujy", "预检测_相序校验"),
FORMAL_REAL("formal_real","正式检测_获取实时数据"),
FORMAL_STATISTIC("formal_statistic","正式检测_获取统计数据"),
FORMAL_EVENT("formal_event","正式检测_获取暂态数据"),
QUITE("quit","预监测_关闭设备通讯初始化"),
QUITE_SOURCE("close_source","预监测_关闭源通讯")
QUITE_SOURCE("close_source","预监测_关闭源通讯"),
PRE_TEST("0","预检测"),
FORMAL_TEST("1","正式检测"),
TIME_TEST("2","守时检测")
;

View File

@@ -12,6 +12,12 @@ import java.util.List;
@Data
public class PreDetectionParam {
/**
* 操作类型 0.预检测 1.正式检测
*/
private String operateType = "0";
/**
* 检测计划id
*/

View File

@@ -20,6 +20,7 @@ import com.njcn.gather.detection.util.socket.cilent.NettyClient;
import com.njcn.gather.detection.util.socket.cilent.NettySourceClientHandler;
import com.njcn.gather.device.device.service.IPqDevService;
import com.njcn.gather.device.script.service.IPqScriptDtlsService;
import com.njcn.gather.device.source.pojo.po.PqSource;
import com.njcn.gather.device.source.pojo.po.SourceInitialize;
import com.njcn.gather.device.source.service.IPqSourceService;
import com.njcn.gather.plan.pojo.po.AdPlan;
@@ -104,6 +105,7 @@ public class PreDetectionServiceImpl implements PreDetectionService {
查询计划什么模式的(除了对比式,其他都是一个计划对应一个源)
*/
AdPlan plan = iAdPlanService.getById(param.getPlanId());
PqSource pqSource = pqSourceService.getById(plan.getDatasourceId());
if (ObjectUtil.isNotNull(plan)) {
String code = dictDataService.getDictDataById(plan.getPattern()).getCode();
DictDataEnum dictDataEnumByCode = DictDataEnum.getDictDataEnumByCode(code);