diff --git a/src/main/java/com/xydl/cac/controller/IecServerController.java b/src/main/java/com/xydl/cac/controller/IecServerController.java index 2c7a00f..1661edb 100644 --- a/src/main/java/com/xydl/cac/controller/IecServerController.java +++ b/src/main/java/com/xydl/cac/controller/IecServerController.java @@ -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> listTransform() throws Exception { List 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); } diff --git a/src/main/java/com/xydl/cac/entity/IcdTransform.java b/src/main/java/com/xydl/cac/entity/IcdTransform.java index fdd44a3..eb4d084 100644 --- a/src/main/java/com/xydl/cac/entity/IcdTransform.java +++ b/src/main/java/com/xydl/cac/entity/IcdTransform.java @@ -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; } diff --git a/src/main/java/com/xydl/cac/iec/IecServer.java b/src/main/java/com/xydl/cac/iec/IecServer.java index 64a046c..acb53a9 100644 --- a/src/main/java/com/xydl/cac/iec/IecServer.java +++ b/src/main/java/com/xydl/cac/iec/IecServer.java @@ -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 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 bdas = new ArrayList<>(); bdas.add(node); + IcdTransformServiceImpl.rptToActiveMap.put(rptTo, "1"); serverSap.setValues(bdas); } } diff --git a/src/main/java/com/xydl/cac/service/impl/IcdTransformServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/IcdTransformServiceImpl.java index 82a5b0e..f4eadc1 100644 --- a/src/main/java/com/xydl/cac/service/impl/IcdTransformServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/IcdTransformServiceImpl.java @@ -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 rptFromActiveMap = new HashMap<>(); + public static HashMap rptToActiveMap = new HashMap<>(); + @Override @CacheEvict(cacheNames = {"listTransform"}, allEntries = true) public IcdTransform addTransform(IcdTransform icdTransform) throws Exception { @@ -33,7 +37,7 @@ public class IcdTransformServiceImpl implements IcdTransformService { } List byRptTo = transformRepository.findByRptTo(icdTransform.getRptTo()); if (!byRptTo.isEmpty()) { - throw new BusinessException("To "+ icdTransform.getRptTo() +" 已经存在!"); + throw new BusinessException("To " + icdTransform.getRptTo() + " 已经存在!"); } IcdTransform save = transformRepository.save(icdTransform); return save;