From fc69528ba590d6bc2d8f7029e4cc6504754f1b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E6=99=8B=E9=A3=9E?= <378266566@qq.com> Date: Tue, 28 Oct 2025 01:43:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0exa=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E8=AF=BB=E7=82=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/exa/EXAController.java | 9 +++++++ .../admin/exa/vo/EXANowListReqVO.java | 9 +++++++ .../controller/admin/exa/vo/EXAResult.java | 2 ++ .../module/alert/service/exa/EXAService.java | 4 ++++ .../alert/service/exa/EXAServiceImpl.java | 5 +++- .../yudao/module/alert/utils/EXAUtils.java | 24 +++++++++++++++++++ 6 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXANowListReqVO.java diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/EXAController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/EXAController.java index e91b1d0..dd82886 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/EXAController.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/EXAController.java @@ -52,6 +52,15 @@ public class EXAController { return success(nowList); } + @PostMapping("/nowListReal") + @Operation(summary = "获取带实时值的列表") + @PreAuthorize("@ss.hasPermission('alert:exa:query')") + public CommonResult getNowList(@RequestBody EXANowListReqVO list) throws IOException, URISyntaxException { + EXAResult nowList=exaService.getEXAListNowReal(list); + return success(nowList); + } + + @GetMapping("/now") @Operation(summary = "根据点号获取测点实时值-单点或多点") @PreAuthorize("@ss.hasPermission('alert:exa:query')") diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXANowListReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXANowListReqVO.java new file mode 100644 index 0000000..32ac74b --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXANowListReqVO.java @@ -0,0 +1,9 @@ +package cn.iocoder.yudao.module.alert.controller.admin.exa.vo; + +import lombok.Data; + +@Data +public class EXANowListReqVO { + + private String[] ItemNameArray; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAResult.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAResult.java index 679f2e8..4f05aac 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAResult.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAResult.java @@ -5,4 +5,6 @@ import com.alibaba.fastjson.annotation.JSONField; public class EXAResult { @JSONField(name="ReturnValue") public Long ReturnValue; + @JSONField(name="ValueArray") + public double[] ValueArray; } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/exa/EXAService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/exa/EXAService.java index 02c465b..8cb9a76 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/exa/EXAService.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/exa/EXAService.java @@ -22,6 +22,10 @@ public interface EXAService { List getEXAListNow(List list) throws URISyntaxException, IOException; + + + EXAResult getEXAListNowReal(EXANowListReqVO list) throws URISyntaxException, IOException; + String getEXANow(String itemName) throws URISyntaxException, IOException; List> getEXAHistory(EXAHistoryReqVO exaHistoryReqVo); diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/exa/EXAServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/exa/EXAServiceImpl.java index 2cc38ed..22920b0 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/exa/EXAServiceImpl.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/exa/EXAServiceImpl.java @@ -62,7 +62,10 @@ public class EXAServiceImpl implements EXAService { return list; } - + @Override + public EXAResult getEXAListNowReal(EXANowListReqVO list) throws URISyntaxException, IOException { + return exaUtils.getNowDataList(EXA_IP,list); + } @Override public String getEXANow(String itemName) throws URISyntaxException, IOException { return exaUtils.getNowData(EXA_IP,itemName).get(0); diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/utils/EXAUtils.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/utils/EXAUtils.java index 39940c3..665361b 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/utils/EXAUtils.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/utils/EXAUtils.java @@ -104,6 +104,7 @@ public class EXAUtils { * @return exa列表 */ + public List getNowData(String EXA_IP,String itemNames) throws URISyntaxException, IOException { List result = new ArrayList<>(); try { @@ -148,6 +149,29 @@ public class EXAUtils { return result; } + + public EXAResult getNowDataList(String EXA_IP,EXANowListReqVO exaNowListReqVO) throws URISyntaxException, IOException { + EXAResult result = new EXAResult(); + try { + // 目标 RPC 服务的 URL + String url = "http://"+EXA_IP+":9000/exawebapi/exanow/GetFloatValueBatch"; + String param = JSON.toJSONString(exaNowListReqVO); + String resultStr = Request.Post(url) + .addHeader("Content-type", "application/json") + .bodyString(param, ContentType.APPLICATION_JSON) + .execute().returnContent().asString(Charset.forName("utf-8")); + Gson gson=new Gson(); + + result= gson.fromJson(resultStr, EXAResult.class); + } catch (Exception e) { + + } + return result; + } + + + + /** * 根据分页条件和测点名称测点描述模糊查询 *