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 e5002bb..56e98e3 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 @@ -64,8 +64,8 @@ public class EXAController { @GetMapping("/historys") @Operation(summary = "获取点号历史-支持多点(点号之间用逗号分割)") @PreAuthorize("@ss.hasPermission('alert:exa:query')") - public CommonResult>> getEXAHistorys(EXAHistoryReqVO exaHistoryReqVo) { - List> historyLists=exaService.getEXAHistorys(exaHistoryReqVo); + public CommonResult>>> getEXAHistorys(EXAHistoryReqVO exaHistoryReqVo) { + List>> historyLists=exaService.getEXAHistorys(exaHistoryReqVo); return success(historyLists); } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAHistoryReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAHistoryReqVO.java index 99455fb..d65c2f3 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAHistoryReqVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAHistoryReqVO.java @@ -12,4 +12,6 @@ public class EXAHistoryReqVO { private String startTime; @Schema(description = "结束时间") private String endTime; + @Schema(description = "间隔") + private Integer interval=300; } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/ModelInfo.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/ModelInfo.java index 85d4451..5fe5db5 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/ModelInfo.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/ModelInfo.java @@ -1,8 +1,10 @@ package cn.iocoder.yudao.module.alert.controller.admin.model.model; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.*; +import java.util.Date; import java.util.List; /** @@ -23,7 +25,9 @@ public class ModelInfo { /** * 创建人 */ - private String createName; + private String creator; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; /** * 名称 */ @@ -32,4 +36,8 @@ public class ModelInfo { private List pointInfo; + + private String condition; + + private Integer sampling; } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/Point.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/Point.java index 08fbd22..6b3f175 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/Point.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/Point.java @@ -24,8 +24,7 @@ public class Point { /** * 目标点号 */ - @JsonProperty("target_point") - private String targetPoint; + private String point; /** * 描述 @@ -37,11 +36,6 @@ public class Point { */ private String unit; - /** - * 类型 - */ - private String marktype; - /** * 上限 */ @@ -51,9 +45,4 @@ public class Point { * 下限 */ private BigDecimal lowerlimit; - - /** - * 网格数 - */ - private Integer gridNumber; } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelInfoVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelInfoVO.java index 90f709f..a54c1c9 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelInfoVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelInfoVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.alert.controller.admin.model.vo; +import cn.iocoder.yudao.module.alert.controller.admin.model.model.Point; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.*; @@ -24,7 +25,7 @@ public class ModelInfoVO { /** * 创建人 */ - private String createName; + private String creator; /** * 创建时间 @@ -43,11 +44,13 @@ public class ModelInfoVO { private String modelName; - private List pointInfo; + private List pointInfo; private Integer algorithmId; private Integer systemId; + private Integer sampling; + } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSimpleVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSimpleVO.java index 76a7158..58e820e 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSimpleVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSimpleVO.java @@ -33,7 +33,7 @@ public class ModelSimpleVO { /** * 创建人 */ - private String createName; + private String creator; /** * 模型状态 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 80eb263..6e4f3c3 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 @@ -24,9 +24,9 @@ public interface EXAService { String getEXANow(String itemName) throws URISyntaxException, IOException; - List getEXAHistory(EXAHistoryReqVO exaHistoryReqVo); + List> getEXAHistory(EXAHistoryReqVO exaHistoryReqVo); - List> getEXAHistorys(EXAHistoryReqVO exaHistoryReqVo); + List>> getEXAHistorys(EXAHistoryReqVO exaHistoryReqVo); String createPoint(Point pointVo) throws IOException; 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 88fa652..2cc38ed 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 @@ -69,12 +69,12 @@ public class EXAServiceImpl implements EXAService { } @Override - public List getEXAHistory(EXAHistoryReqVO exaHistoryReqVo) { + public List> getEXAHistory(EXAHistoryReqVO exaHistoryReqVo) { return exaUtils.getHistory(EXA_IP,exaHistoryReqVo); } @Override - public List> getEXAHistorys(EXAHistoryReqVO exaHistoryReqVo) { + public List>> getEXAHistorys(EXAHistoryReqVO exaHistoryReqVo) { return exaUtils.getHistorys(EXA_IP,exaHistoryReqVo); } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java index 5696128..9e2b92a 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java @@ -66,7 +66,7 @@ public class ModelServiceImpl implements ModelService { return list.stream().map(modelCfg -> ModelSimpleVO.builder() .id(modelCfg.getId()) .name(modelCfg.getModelName().trim()) - .createName(modelCfg.getCreator()) + .creator(modelCfg.getCreator()) .createTime(modelCfg.getCreateTime()) .status(modelCfg.getStatus()) .algorithm(Algorithm.of(modelCfg.getAlgorithmId()).toString()) @@ -76,6 +76,10 @@ public class ModelServiceImpl implements ModelService { @Override public ModelInfoVO getModelInfo(Integer id) { + ModelCfg modelCfg = modelCfgService.getById(id); + if (Objects.nonNull(modelCfg)) { + return JsonUtils.parseObject(modelCfg.getModelInfo(), ModelInfoVO.class); + } return null; } @@ -97,6 +101,8 @@ public class ModelServiceImpl implements ModelService { modelCfgService.save(modelCfg); Integer modelId = modelCfg.getId(); info.setId(modelId); + info.setCreator(modelCfg.getCreator()); + info.setCreateTime(modelCfg.getCreateTime()); modelCfg.setModelInfo(JsonUtils.toJsonString(info)); modelCfgService.updateById(modelCfg); return modelId; 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 485d524..27387d9 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 @@ -1,8 +1,14 @@ package cn.iocoder.yudao.module.alert.utils; -import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.*; +import cn.hutool.http.HttpUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.EXAHistoryReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.EXAHttp; +import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.EXAPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.Point; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.fasterxml.jackson.core.type.TypeReference; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; @@ -11,39 +17,33 @@ import org.apache.http.client.fluent.Request; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URIBuilder; import org.apache.http.entity.ContentType; -import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; -import org.springframework.beans.factory.annotation.Value; import java.io.IOException; import java.lang.reflect.Type; import java.net.URISyntaxException; import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; public class EXAUtils { - /** * 根据分页条件和测点名称测点描述模糊查询 * * @param reqVO 传入对象,页数、页数量、查询条件 * @return exa列表 */ - public List getPointInfo(String EXA_IP,EXAPageReqVO reqVO) throws URISyntaxException, IOException { + public List getPointInfo(String EXA_IP, EXAPageReqVO reqVO) throws URISyntaxException, IOException { // PageResult result = new PageResult<>(); List exaListAll = new ArrayList(); try { // 目标 RPC 服务的 URL - String url = "http://"+EXA_IP+":9000/exawebapi/exaitem/getitems"; + String url = "http://" + EXA_IP + ":9000/exawebapi/exaitem/getitems"; //创建HttpClient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); /* @@ -104,11 +104,11 @@ public class EXAUtils { * @return exa列表 */ - public List getNowData(String EXA_IP,String itemNames) throws URISyntaxException, IOException { + public List getNowData(String EXA_IP, String itemNames) throws URISyntaxException, IOException { List result = new ArrayList<>(); try { // 目标 RPC 服务的 URL - String url = "http://"+EXA_IP+":9000/exawebapi/exanow/getfloatvaluebatch"; + String url = "http://" + EXA_IP + ":9000/exawebapi/exanow/getfloatvaluebatch"; //创建HttpClient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); /* @@ -154,65 +154,43 @@ public class EXAUtils { * @param exaHistoryReqVo 传入对象,点号、开始时间、结束时间 * @return exa列表 */ - public List getHistory(String EXA_IP,EXAHistoryReqVO exaHistoryReqVo) { - List result = new ArrayList<>(); + public List> getHistory(String EXA_IP, EXAHistoryReqVO exaHistoryReqVo) { + List> result = new ArrayList<>(); try { // 目标 RPC 服务的 URL - String url = "http://"+EXA_IP+":9000/exawebapi/exatime/GetRawValueArrayFloat"; - //创建HttpClient对象 - CloseableHttpClient httpClient = HttpClients.createDefault(); - /* - * 由于GET请求的参数都是拼装在URL地址后方,所以我们要构建一个URL,带参数 - */ - URIBuilder uriBuilder = new URIBuilder(url); + String url = "http://" + EXA_IP + ":9000/exawebapi/exatime/GetSamplingValueArrayFloat"; - /** 添加参数 */ - uriBuilder.addParameter("ItemName", exaHistoryReqVo.getItemName()); - uriBuilder.addParameter("StartingTime", exaHistoryReqVo.getStartTime()); - uriBuilder.addParameter("TerminalTime", exaHistoryReqVo.getEndTime()); + Map params=new HashMap<>(); + params.put("ItemName", exaHistoryReqVo.getItemName()); + params.put("StartingTime", exaHistoryReqVo.getStartTime()); + params.put("TerminalTime", exaHistoryReqVo.getEndTime()); + params.put("SamplingPeriod", exaHistoryReqVo.getInterval() * 1000); + String body = HttpUtil.createGet(url).form(params) + .header("Content-Type", "application/json") + .execute().body(); - //创建请求对象 - HttpGet httpGet = new HttpGet(uriBuilder.build()); - - // 传输的类型 - httpGet.addHeader("Content-Type", "application/json"); - //发送请求,请求响应结果 - CloseableHttpResponse response = httpClient.execute(httpGet); - //获取服务器返回的状态码 - int statusCode = response.getStatusLine().getStatusCode(); - System.out.println("服务端返回成功的状态码为:" + statusCode); - HttpEntity entity = response.getEntity(); - String body = EntityUtils.toString(entity).replaceAll("\\\\", ""); - System.out.println("服务端返回的数据为:" + body); if (body.startsWith("\"") && body.endsWith("\"")) { // 步骤3:去掉双引号 body = body.substring(1, body.length() - 1); // 去掉首尾的双引号 } - Gson gson = new GsonBuilder().serializeNulls().setPrettyPrinting().create(); - Type listType = new TypeToken>>() { - }.getType(); - result = gson.fromJson(body, listType); - - //关闭资源 - response.close(); - httpClient.close(); + result = JsonUtils.parseObject(body, new TypeReference>>(){}); } catch (Exception e) { } return result; } - public List> getHistorys(String EXA_IP,EXAHistoryReqVO exaHistoryReqVo) { - List> results = new ArrayList<>(); + public List>> getHistorys(String EXA_IP, EXAHistoryReqVO exaHistoryReqVo) { + List>> results = new ArrayList<>(); try { String itemNames = exaHistoryReqVo.getItemName(); List pointName = Arrays.asList(itemNames.split(",")); pointName.forEach(entity -> { - List result = new ArrayList<>(); + List> result = new ArrayList<>(); exaHistoryReqVo.setItemName(entity); - result = getHistory(EXA_IP,exaHistoryReqVo); + result = getHistory(EXA_IP, exaHistoryReqVo); results.add(result); }); } catch (Exception e) { @@ -222,8 +200,8 @@ public class EXAUtils { } //写入点号 - public String setPoint(String EXA_IP,Point point) throws IOException { - String requestPathAddItem = "http://"+EXA_IP+":9000/exawebapi/exaitem/AddItem"; + public String setPoint(String EXA_IP, Point point) throws IOException { + String requestPathAddItem = "http://" + EXA_IP + ":9000/exawebapi/exaitem/AddItem"; String param = JSON.toJSONString(point); String result = Request.Post(requestPathAddItem) .addHeader("Content-type", "application/json") @@ -240,7 +218,7 @@ public class EXAUtils { List result = new ArrayList<>(); try { // 目标 RPC 服务的 URL - String url = "http://"+EXA_IP+":9000/exawebapi/exagroup/getgroups"; + String url = "http://" + EXA_IP + ":9000/exawebapi/exagroup/getgroups"; //创建HttpClient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); /* @@ -283,8 +261,8 @@ public class EXAUtils { return result; } - public String deletePoint(String EXA_IP,String ItemName){ - String requestPathDeleteItem ="http://"+EXA_IP+":9000/exawebapi/exaitem/DeleteItem?ItemName="+ItemName; + public String deletePoint(String EXA_IP, String ItemName) { + String requestPathDeleteItem = "http://" + EXA_IP + ":9000/exawebapi/exaitem/DeleteItem?ItemName=" + ItemName; // 创建HttpClient try (CloseableHttpClient httpClient = HttpClients.createDefault()) { // 创建HttpDelete请求