feat: 增加icdTransform的实时路径数据

dev
huangfeng 8 months ago
parent 372790169d
commit 309760166d

@ -9,6 +9,7 @@ import com.xydl.cac.iec.IecServerService;
import com.xydl.cac.model.Response;
import com.xydl.cac.service.IcdFileConfigService;
import com.xydl.cac.service.IcdTransformService;
import com.xydl.cac.service.impl.IcdTransformServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -115,6 +116,14 @@ public class IecServerController extends BasicController {
@ApiOperation("listTransform")
public Response<List<IcdTransform>> listTransform() throws Exception {
List<IcdTransform> result = transformService.listTransform();
for (IcdTransform item : result) {
if (IcdTransformServiceImpl.rptFromActiveMap.containsKey(item.getRptFrom())) {
item.setFromActive(true);
}
if (IcdTransformServiceImpl.rptToActiveMap.containsKey(item.getRptTo())) {
item.setToActive(true);
}
}
return Response.success(result);
}

@ -32,4 +32,9 @@ public class IcdTransform {
@ApiModelProperty(name = "rpt_to")
@Column(name = "rpt_to")
private String rptTo;
@Transient
private boolean fromActive;
@Transient
private boolean toActive;
}

@ -3,6 +3,7 @@ package com.xydl.cac.iec;
import com.beanit.iec61850bean.*;
import com.xydl.cac.entity.IcdTransform;
import com.xydl.cac.service.IcdTransformService;
import com.xydl.cac.service.impl.IcdTransformServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.springframework.util.CollectionUtils;
@ -49,10 +50,13 @@ public class IecServer implements ServerEventListener {
public void updateBda(BasicDataAttribute bda) {
String ref = bda.getReference().toString();
List<IcdTransform> list = _transformService.listTransform();
String rptTo = "";
if (!CollectionUtils.isEmpty(list)) {
for (IcdTransform item : list) {
if (ref.startsWith(item.getRptFrom())) {
ref = ref.replace(item.getRptFrom(), item.getRptTo());
rptTo = item.getRptTo();
IcdTransformServiceImpl.rptFromActiveMap.put(item.getRptFrom(), "1");
break;
}
}
@ -62,6 +66,7 @@ public class IecServer implements ServerEventListener {
node.setValueFrom(bda);
List<BasicDataAttribute> bdas = new ArrayList<>();
bdas.add(node);
IcdTransformServiceImpl.rptToActiveMap.put(rptTo, "1");
serverSap.setValues(bdas);
}
}

@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Optional;
@ -23,6 +24,9 @@ public class IcdTransformServiceImpl implements IcdTransformService {
@Resource
IcdTransformRepository transformRepository;
public static HashMap<String, String> rptFromActiveMap = new HashMap<>();
public static HashMap<String, String> rptToActiveMap = new HashMap<>();
@Override
@CacheEvict(cacheNames = {"listTransform"}, allEntries = true)
public IcdTransform addTransform(IcdTransform icdTransform) throws Exception {

Loading…
Cancel
Save