From 309760166d9b1859276f8e2b9fe5504f976e878b Mon Sep 17 00:00:00 2001 From: huangfeng Date: Mon, 28 Oct 2024 09:56:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0icdTransform=E7=9A=84?= =?UTF-8?q?=E5=AE=9E=E6=97=B6=E8=B7=AF=E5=BE=84=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xydl/cac/controller/IecServerController.java | 9 +++++++++ src/main/java/com/xydl/cac/entity/IcdTransform.java | 5 +++++ src/main/java/com/xydl/cac/iec/IecServer.java | 5 +++++ .../xydl/cac/service/impl/IcdTransformServiceImpl.java | 6 +++++- 4 files changed, 24 insertions(+), 1 deletion(-) 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;