云前置改造

This commit is contained in:
xy
2025-09-23 16:34:24 +08:00
parent ee07f7a5e2
commit 9d2b4b97f9
15 changed files with 303 additions and 37 deletions

View File

@@ -1,6 +1,7 @@
package com.njcn.csharmonic.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -377,6 +378,11 @@ public class CsEventUserPOServiceImpl extends ServiceImpl<CsEventUserPOMapper, C
if(!CollectionUtils.isEmpty(governmentDevTree)){
governmentDevTree = governmentDevTree.get(0).getChildren();
}
List<CsLedgerVO> cldDevTree = data.stream().filter(temp -> Objects.equals(temp.getName(), DataParam.cldDev)).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(cldDevTree)){
cldDevTree = cldDevTree.get(0).getChildren();
}
//便携式就1层下边就是设备
List<String> portableDevIds = portableDevTree.stream().filter(
temp -> StringUtils.isEmpty(csEventUserQueryPage.getDeviceId()) ||
@@ -394,8 +400,23 @@ public class CsEventUserPOServiceImpl extends ServiceImpl<CsEventUserPOMapper, C
).
map(CsLedgerVO::getId).
collect(Collectors.toList());
List<String> cldDevIds = cldDevTree.stream().filter(temp->StringUtils.isEmpty(csEventUserQueryPage.getEngineeringid())||
Objects.equals(temp.getId(), csEventUserQueryPage.getEngineeringid()))
.map(CsLedgerVO::getChildren).flatMap(Collection::stream).filter(
temp->StringUtils.isEmpty(csEventUserQueryPage.getProjectId())||
Objects.equals(temp.getId(), csEventUserQueryPage.getProjectId())
).
map(CsLedgerVO::getChildren).flatMap(Collection::stream).filter(
temp->StringUtils.isEmpty(csEventUserQueryPage.getDeviceId())||
Objects.equals(temp.getId(), csEventUserQueryPage.getDeviceId())
).
map(CsLedgerVO::getId).
collect(Collectors.toList());
devIds.addAll(portableDevIds);
devIds.addAll(governmentDevIds);
devIds.addAll(cldDevIds);
if (CollectionUtils.isEmpty(devIds)){
return returnpage;
}
@@ -408,10 +429,17 @@ public class CsEventUserPOServiceImpl extends ServiceImpl<CsEventUserPOMapper, C
temp.setEngineeringid(devDetail.getEngineeringid());
temp.setEngineeringName(devDetail.getEngineeringName());
EleEpdPqd ele = epdFeignClient.findByName(temp.getTag()).getData();
temp.setShowName(ele.getShowName());
temp.setCode(ele.getDefaultValue());
if (temp.getLineId().endsWith("0")) {
temp.setModuleNo("模块" + temp.getClDid());
if (Objects.isNull(ele)) {
temp.setShowName(temp.getTag());
temp.setCode(temp.getCode());
} else {
temp.setShowName(ele.getShowName());
temp.setCode(ele.getDefaultValue());
}
if (ObjectUtil.isNotNull(temp.getLineId())) {
if (temp.getLineId().endsWith("0")) {
temp.setModuleNo("模块" + temp.getClDid());
}
}
if(Objects.equals(csEventUserQueryPage.getType(),"0")){
List<EleEvtParm> data1 = eleEvtFeignClient.queryByPid(ele.getId()).getData();

View File

@@ -8,17 +8,22 @@ import com.njcn.csdevice.api.CsLineFeignClient;
import com.njcn.csdevice.api.DataSetFeignClient;
import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO;
import com.njcn.csharmonic.service.RealDataService;
import com.njcn.redis.utils.RedisUtil;
import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.Collection;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -35,23 +40,37 @@ public class RealDataServiceImpl implements RealDataService {
private final EquipmentFeignClient equipmentFeignClient;
private final RedisUtil redisUtil;
private final MqttUtil mqttUtil;
private final DictTreeFeignClient dictTreeFeignClient;
@Override
public boolean getBaseRealData(String lineId) {
boolean result = true;
try {
String nDid = lineId.substring(0, lineId.length() - 1);
String clientName = "NJCN-" + nDid.substring(nDid.length() - 6);
boolean mqttClient = mqttUtil.judgeClientOnline(clientName);
if (!mqttClient) {
throw new BusinessException("装置离线");
}
//判断设备类型 治理无线设备需要判断mqtt、云前置设备直接判断设备运行状态
CsEquipmentDeliveryPO dev = equipmentFeignClient.getDevByLineId(lineId).getData();
String devModelCode = dictTreeFeignClient.queryById(dev.getDevType()).getData().getCode();
// if (Objects.equals(DicDataEnum.DEV_CLD.getCode(),devModelCode)) {
// if (dev.getRunStatus() == 1) {
// throw new BusinessException("装置离线");
// }
// } else {
// String clientName = "NJCN-" + nDid.substring(nDid.length() - 6);
// boolean mqttClient = mqttUtil.judgeClientOnline(clientName);
// if (!mqttClient) {
// throw new BusinessException("装置离线");
// }
// }
Integer clDid = Integer.parseInt(lineId.substring(lineId.length() - 1));
//获取装置所用模板
CsLinePO po = csLineFeignClient.getById(lineId).getData();
String modelId = po.getDataModelId();
CsDataSet csDataSet = dataSetFeignClient.getBaseDataSet(modelId,clDid).getData();
askDeviceDataFeignClient.askRealData(nDid,csDataSet.getIdx(),clDid);
if (Objects.equals(DicDataEnum.DEV_CLD.getCode(),devModelCode)) {
askDeviceDataFeignClient.askCldRealData(dev.getId(),lineId,dev.getNodeId());
} else {
askDeviceDataFeignClient.askRealData(nDid,csDataSet.getIdx(),clDid);
}
//等待装置响应,获取询问结果
Thread.sleep(2000);
Object object = redisUtil.getObjectByKey("devResponse");