From c7e484af915e2339fe20e36d03e3941f8d5a6a14 Mon Sep 17 00:00:00 2001 From: CJL6015 <1253368419@qq.com> Date: Sun, 18 May 2025 21:09:23 +0800 Subject: [PATCH 1/9] =?UTF-8?q?feat(module-alert):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增模型配置表(ModelCfg)和相关 mapper、service- 实现模型列表、模型信息、创建模型、更新模型等功能- 添加模型数据查询和计算接口 - 定义模型相关 VO 类 --- .../controller/model/ModelController.java | 55 ++++++++++++++ .../controller/model/ModelDataController.java | 32 ++++++++ .../controller/model/vo/CreateModelInfo.java | 14 ++++ .../controller/model/vo/ModelDataQuery.java | 26 +++++++ .../controller/model/vo/ModelDataVO.java | 35 +++++++++ .../controller/model/vo/ModelInfoVO.java | 66 ++++++++++++++++ .../controller/model/vo/ModelSelectQuery.java | 47 ++++++++++++ .../controller/model/vo/ModelSimpleVO.java | 47 ++++++++++++ .../alert/controller/model/vo/PointVO.java | 59 +++++++++++++++ .../alert/controller/model/vo/TimeRange.java | 16 ++++ .../module/alert/dao/domain/ModelCfg.java | 75 +++++++++++++++++++ .../alert/dao/mapper/ModelCfgMapper.java | 18 +++++ .../alert/dao/service/ModelCfgService.java | 13 ++++ .../dao/service/impl/ModelCfgServiceImpl.java | 22 ++++++ .../alert/service/model/ModelDataService.java | 26 +++++++ .../alert/service/model/ModelService.java | 48 ++++++++++++ .../model/impl/ModelDataServiceImpl.java | 33 ++++++++ .../service/model/impl/ModelServiceImpl.java | 62 +++++++++++++++ .../alert/dao/mapper/ModelCfgMapper.xml | 49 ++++++++++++ 19 files changed, 743 insertions(+) create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelController.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelDataController.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/CreateModelInfo.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataQuery.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelInfoVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSelectQuery.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSimpleVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/PointVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/TimeRange.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/ModelCfg.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/ModelCfgService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/ModelCfgServiceImpl.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelDataService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelDataServiceImpl.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/resources/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.xml diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelController.java new file mode 100644 index 0000000..ba843df --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelController.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.alert.controller.model; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.alert.controller.model.vo.CreateModelInfo; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelInfoVO; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSelectQuery; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSimpleVO; +import cn.iocoder.yudao.module.alert.service.model.ModelService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 13:07 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/model") +public class ModelController { + private final ModelService modelService; + + + @GetMapping("/card/list") + public CommonResult> getModelList(ModelSelectQuery query) { + List modelList = modelService.getModelList(query); + return CommonResult.success(modelList); + } + + @GetMapping("info/{id}") + public CommonResult getModelInfo(@PathVariable Integer id) { + ModelInfoVO modelInfo = modelService.getModelInfo(id); + return CommonResult.success(modelInfo); + } + + @PostMapping("/") + public CommonResult saveModel(@RequestBody CreateModelInfo model) { + Integer id = modelService.createModel(model); + if (Objects.nonNull(id) && id > 0) { + return CommonResult.success(id); + } + return CommonResult.error(INTERNAL_SERVER_ERROR.getCode(), "新建模型异常"); + } + + @PatchMapping("/info") + public CommonResult updateModelInfo(@RequestBody ModelInfoVO vo) { + Boolean b = modelService.updateModelInfo(vo); + return CommonResult.success(b); + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelDataController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelDataController.java new file mode 100644 index 0000000..b6931bb --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelDataController.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.alert.controller.model; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelDataQuery; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelDataVO; +import cn.iocoder.yudao.module.alert.controller.model.vo.TimeRange; +import cn.iocoder.yudao.module.alert.service.model.ModelDataService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-09-05 22:08 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/model/data") +public class ModelDataController { + private final ModelDataService modelDataService; + + + @GetMapping("/{id}") + public CommonResult getModelData(@PathVariable Integer id, ModelDataQuery query) { + return CommonResult.success(null); + } + + @PostMapping("/calculate/{id}") + public CommonResult calculate(@PathVariable Integer id, @RequestBody TimeRange timeRange) { + return CommonResult.success(null); + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/CreateModelInfo.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/CreateModelInfo.java new file mode 100644 index 0000000..2a6f6e2 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/CreateModelInfo.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.alert.controller.model.vo; + +import lombok.Data; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-20 22:57 + */ +@Data +public class CreateModelInfo { + private Integer systemId; + private ModelInfoVO modelInfo; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataQuery.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataQuery.java new file mode 100644 index 0000000..b6f9e2f --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataQuery.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.alert.controller.model.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-09-15 22:52 + */ +@Data +public class ModelDataQuery { + private String type; + @NotBlank + private String index; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date st; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date et; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataVO.java new file mode 100644 index 0000000..58c560a --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.alert.controller.model.vo; + +import lombok.*; + +import java.util.List; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-09-05 22:50 + */ +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class ModelDataVO { + /** + * 目标数值 + */ + private List targetValue; + /** + * 参数个数 + */ + private int[] sampleValue; + /** + * 边界数据 + */ + private List> dataList; + + /** + * 热力图数据 + */ + private List heatData; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelInfoVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelInfoVO.java new file mode 100644 index 0000000..247ef5e --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelInfoVO.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.module.alert.controller.model.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.*; + +import java.util.Date; +import java.util.List; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 22:41 + */ +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class ModelInfoVO { + /** + * id + */ + private Integer id; + /** + * 创建人 + */ + private String createName; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + /** + * 运行条件 + */ + private String condition; + + /** + * 名称 + */ + private String modelName; + + private List steadyPoint; + /** + * 滑动窗参数 + */ + private MovingWindows movingWindows; + + private PointVO targetParameter; + + private List relationParameter; + + private List boundaryParameter; + + + @Data + public static class MovingWindows { + private Integer windowLength; + + private Integer samplingInterval; + + private Integer movingSpeed; + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSelectQuery.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSelectQuery.java new file mode 100644 index 0000000..8b31107 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSelectQuery.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.alert.controller.model.vo; + +import lombok.Data; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 13:25 + */ +@Data +public class ModelSelectQuery { + /** + * 机组id + */ + private Integer unitId; + /** + * 系统id + */ + private Integer typeId; + /** + * 子系统id + */ + private Integer systemId; + + /** + * 名称 + */ + private String name; + + /** + * @see seu.powersis.alert.common.enums.ModelStatus + * 模型状态 + */ + private Integer status; + + /** + * @see seu.powersis.alert.common.enums.ModelTrash + * 可见状态 + */ + private Integer visible; + + /** + * @see seu.powersis.alert.common.enums.ModelTrash + * 删除状态 + */ + private Integer trash; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSimpleVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSimpleVO.java new file mode 100644 index 0000000..f512743 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSimpleVO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.alert.controller.model.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.ToString; + +import java.util.Date; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 13:08 + */ +@Data +@Builder +@ToString +@AllArgsConstructor +public class ModelSimpleVO { + /** + * 模型id + */ + private Integer id; + /** + * 模型名称 + */ + private String name; + /** + * 算法名称 + */ + private String algorithm; + /** + * 创建人 + */ + private String creatName; + + /** + * 模型状态 + */ + private Integer status; + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date creatTime; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/PointVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/PointVO.java new file mode 100644 index 0000000..fd0a66a --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/PointVO.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.alert.controller.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.ToString; + +import java.math.BigDecimal; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 22:48 + */ +@Data +@Builder +@ToString +@AllArgsConstructor +public class PointVO { + /** + * 系统名称 + */ + private String systemName; + + /** + * 目标点号 + */ + private String targetPoint; + + /** + * 描述 + */ + private String description; + + /** + * 单位 + */ + private String unit; + + /** + * 类型 + */ + private String marktype; + + /** + * 上限 + */ + private BigDecimal upperlimit; + + /** + * 下限 + */ + 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/model/vo/TimeRange.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/TimeRange.java new file mode 100644 index 0000000..cbc6477 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/TimeRange.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.alert.controller.model.vo; + +import lombok.Data; + +import java.util.Date; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-09-15 22:33 + */ +@Data +public class TimeRange { + private Date st; + private Date et; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/ModelCfg.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/ModelCfg.java new file mode 100644 index 0000000..c24fee0 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/ModelCfg.java @@ -0,0 +1,75 @@ +package cn.iocoder.yudao.module.alert.dao.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @TableName model_cfg + */ +@TableName(value ="model_cfg") +@Data +public class ModelCfg { + private Integer id; + + private Integer systemId; + + private Integer algorithmId; + + private String modelName; + + private Date creatTime; + + private String creatName; + + private String modelInfo; + + private Integer status; + + private Integer visible; + + private String conditionInfo; + + private Integer trash; + + private String assessRes; + + private Integer needToAssess; + + private Double score; + + private String clearOrNot; + + private Integer effNumber; + + private Integer needToClean; + + private String origAssessRes; + + private Double loadCover; + + private String coverOutput; + + private String curVersion; + + private String modelVersion; + + private String versionInfo; + + private String conditionName; + + private Integer isOnline; + + private Integer trainStatus; + + private String creator; + + private Date createTime; + + private String updater; + + private Date updateTime; + + private Boolean deleted; +} \ No newline at end of file diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.java new file mode 100644 index 0000000..6043a34 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.alert.dao.mapper; + +import cn.iocoder.yudao.module.alert.dao.domain.ModelCfg; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author cjl60 +* @description 针对表【model_cfg】的数据库操作Mapper +* @createDate 2025-05-18 10:52:08 +* @Entity cn.iocoder.yudao.module.alert.dao.domain.ModelCfg +*/ +public interface ModelCfgMapper extends BaseMapper { + +} + + + + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/ModelCfgService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/ModelCfgService.java new file mode 100644 index 0000000..df918fc --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/ModelCfgService.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.alert.dao.service; + +import cn.iocoder.yudao.module.alert.dao.domain.ModelCfg; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author cjl60 +* @description 针对表【model_cfg】的数据库操作Service +* @createDate 2025-05-18 10:52:08 +*/ +public interface ModelCfgService extends IService { + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/ModelCfgServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/ModelCfgServiceImpl.java new file mode 100644 index 0000000..9721c90 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/ModelCfgServiceImpl.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.alert.dao.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.iocoder.yudao.module.alert.dao.domain.ModelCfg; +import cn.iocoder.yudao.module.alert.dao.service.ModelCfgService; +import cn.iocoder.yudao.module.alert.dao.mapper.ModelCfgMapper; +import org.springframework.stereotype.Service; + +/** +* @author cjl60 +* @description 针对表【model_cfg】的数据库操作Service实现 +* @createDate 2025-05-18 10:52:08 +*/ +@Service +public class ModelCfgServiceImpl extends ServiceImpl + implements ModelCfgService{ + +} + + + + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelDataService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelDataService.java new file mode 100644 index 0000000..a8d4f06 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelDataService.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.alert.service.model; + + +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelDataVO; + +import java.util.Date; +import java.util.List; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-09-05 22:10 + */ +public interface ModelDataService { + /** + * 获取模型数据 + * + * @param modelId 模型id + * @param type 类型 + * @param indexList 边界参数索引 + * @param st 开始时间 + * @param et 结束时间 + * @return 模型数据 + */ + ModelDataVO getModelData(Integer modelId, String type, List indexList, Date st, Date et); +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java new file mode 100644 index 0000000..8311db6 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.alert.service.model; + + +import cn.iocoder.yudao.module.alert.controller.model.vo.CreateModelInfo; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelInfoVO; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSelectQuery; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSimpleVO; + +import java.util.List; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 13:22 + */ +public interface ModelService { + /** + * 获取模型列表 + * + * @param query 请求参数 + * @return model 列表 + */ + List getModelList(ModelSelectQuery query); + + /** + * 获取模型信息 + * + * @param id 模型id + * @return 模型信息 + */ + ModelInfoVO getModelInfo(Integer id); + + /** + * 新建模型 + * + * @param model 模型参数 + * @return 模型id + */ + Integer createModel(CreateModelInfo model); + + /** + * 更新model info + * + * @param info 模型info + * @return 是否成功 + */ + Boolean updateModelInfo(ModelInfoVO info); +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelDataServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelDataServiceImpl.java new file mode 100644 index 0000000..7df28ea --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelDataServiceImpl.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.alert.service.model.impl; + +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelDataVO; +import cn.iocoder.yudao.module.alert.service.model.ModelDataService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-09-05 22:11 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class ModelDataServiceImpl implements ModelDataService { + + + @Override + public ModelDataVO getModelData(Integer modelId, String type, List indexList, Date st, Date et) { + + + return null; + } +} 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 new file mode 100644 index 0000000..e907ce8 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.alert.service.model.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.iocoder.yudao.module.alert.controller.model.vo.CreateModelInfo; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelInfoVO; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSelectQuery; +import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSimpleVO; +import cn.iocoder.yudao.module.alert.dao.domain.ModelCfg; +import cn.iocoder.yudao.module.alert.dao.service.ModelCfgService; +import cn.iocoder.yudao.module.alert.service.model.ModelService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.asm.AsmManager; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.Date; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 13:22 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class ModelServiceImpl implements ModelService { + private final ModelCfgService modelCfgService; + + @Override + public List getModelList(ModelSelectQuery query) { + return null; + } + + @Override + public ModelInfoVO getModelInfo(Integer id) { + return null; + } + + @Override + public Integer createModel(CreateModelInfo model) { + try { + } catch (Exception e) { + log.error("新建模型异常,model:{}", model); + } + + return -1; + } + + @Override + public Boolean updateModelInfo(ModelInfoVO modelInfo) { + return false; + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/resources/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.xml b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.xml new file mode 100644 index 0000000..752dad8 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,system_id,algorithm_id,model_name,creat_time,creat_name, + model_info,status,visible,condition_info,trash, + assess_res,need_to_assess,score,clear_or_not,eff_number, + need_to_clean,orig_assess_res,load_cover,cover_output,cur_version, + model_version,version_info,condition_name,is_online,train_status, + creator,create_time,updater,update_time,deleted + + From 2b38459508ed4776137a14f6c8837d2d8ab094aa Mon Sep 17 00:00:00 2001 From: Jiale Date: Fri, 23 May 2025 17:14:27 +0800 Subject: [PATCH 2/9] =?UTF-8?q?feat(module-alert):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81=E5=B9=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 Algorithm、ModelStatus、ModelTrash 和 ModelVisible 枚举类- 重构了模型相关的数据结构和接口 - 新增模型列表查询和创建模型的功能 -优化了代码结构,提高了可维护性和可扩展性 --- .../module/alert/common/enums/Algorithm.java | 32 +++++++ .../alert/common/enums/ModelStatus.java | 22 +++++ .../module/alert/common/enums/ModelTrash.java | 21 +++++ .../alert/common/enums/ModelVisible.java | 19 ++++ .../controller/admin/exa/vo/EXAPageReqVO.java | 8 ++ .../controller/admin/exa/vo/ExaPoint.java | 67 ++++++++++++++ .../{ => admin}/model/ModelController.java | 14 +-- .../model/ModelDataController.java | 10 +-- .../admin/model/model/ModelInfo.java | 35 ++++++++ .../controller/admin/model/model/Point.java | 59 +++++++++++++ .../{ => admin}/model/vo/CreateModelInfo.java | 2 +- .../{ => admin}/model/vo/ModelDataQuery.java | 2 +- .../{ => admin}/model/vo/ModelDataVO.java | 2 +- .../{ => admin}/model/vo/ModelInfoVO.java | 21 +---- .../model/vo/ModelSelectQuery.java | 2 +- .../{ => admin}/model/vo/ModelSimpleVO.java | 6 +- .../{ => admin}/model/vo/PointVO.java | 2 +- .../{ => admin}/model/vo/TimeRange.java | 2 +- .../admin/system/SelectController.java | 56 ++++++++++++ .../admin/system/vo/OptionItemVO.java | 26 ++++++ .../admin/system/vo/PointOptionItemVO.java | 21 +++++ .../admin/system/vo/SelectAllOptionVO.java | 32 +++++++ .../admin/system/vo/SelectQuery.java | 18 ++++ .../module/alert/dao/domain/ModelCfg.java | 42 +++------ .../module/alert/dao/domain/SystemCfg.java | 34 +++++++ .../alert/dao/domain/SystemTypeCfg.java | 23 +++++ .../module/alert/dao/domain/UnitCfg.java | 41 +++++++++ .../alert/dao/mapper/ModelCfgMapper.java | 4 +- .../alert/dao/mapper/SystemCfgMapper.java | 18 ++++ .../alert/dao/mapper/SystemTypeCfgMapper.java | 18 ++++ .../alert/dao/mapper/UnitCfgMapper.java | 18 ++++ .../alert/dao/service/ModelCfgService.java | 4 +- .../alert/dao/service/SystemCfgService.java | 13 +++ .../dao/service/SystemTypeCfgService.java | 13 +++ .../alert/dao/service/UnitCfgService.java | 13 +++ .../dao/service/impl/ModelCfgServiceImpl.java | 4 +- .../service/impl/SystemCfgServiceImpl.java | 22 +++++ .../impl/SystemTypeCfgServiceImpl.java | 22 +++++ .../dao/service/impl/UnitCfgServiceImpl.java | 22 +++++ .../module/alert/service/exa/EXAService.java | 14 +-- .../alert/service/exa/EXAServiceImpl.java | 41 +++++---- .../alert/service/model/ModelDataService.java | 2 +- .../alert/service/model/ModelService.java | 10 +-- .../model/impl/ModelDataServiceImpl.java | 6 +- .../service/model/impl/ModelServiceImpl.java | 74 +++++++++++++--- .../alert/service/system/SelectService.java | 30 +++++++ .../system/impl/SelectServiceImpl.java | 88 +++++++++++++++++++ .../alert/dao/mapper/ModelCfgMapper.xml | 49 ----------- .../main/resources/mapper/ModelCfgMapper.xml | 54 ++++++++++++ .../main/resources/mapper/SystemCfgMapper.xml | 23 +++++ .../resources/mapper/SystemTypeCfgMapper.xml | 16 ++++ .../main/resources/mapper/UnitCfgMapper.xml | 28 ++++++ .../yudao/server/YudaoServerApplication.java | 4 +- 53 files changed, 1060 insertions(+), 169 deletions(-) create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/Algorithm.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelStatus.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelTrash.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelVisible.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/ExaPoint.java rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/{ => admin}/model/ModelController.java (75%) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/{ => admin}/model/ModelDataController.java (70%) create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/ModelInfo.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/Point.java rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/{ => admin}/model/vo/CreateModelInfo.java (75%) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/{ => admin}/model/vo/ModelDataQuery.java (91%) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/{ => admin}/model/vo/ModelDataVO.java (88%) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/{ => admin}/model/vo/ModelInfoVO.java (58%) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/{ => admin}/model/vo/ModelSelectQuery.java (91%) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/{ => admin}/model/vo/ModelSimpleVO.java (85%) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/{ => admin}/model/vo/PointVO.java (92%) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/{ => admin}/model/vo/TimeRange.java (74%) create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/SelectController.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/OptionItemVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/PointOptionItemVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/SelectAllOptionVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/SelectQuery.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/SystemCfg.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/SystemTypeCfg.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/UnitCfg.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/SystemCfgMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/SystemTypeCfgMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/UnitCfgMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/SystemCfgService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/SystemTypeCfgService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/UnitCfgService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/SystemCfgServiceImpl.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/SystemTypeCfgServiceImpl.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/UnitCfgServiceImpl.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/system/SelectService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/system/impl/SelectServiceImpl.java delete mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/resources/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.xml create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/ModelCfgMapper.xml create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/SystemCfgMapper.xml create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/SystemTypeCfgMapper.xml create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/UnitCfgMapper.xml diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/Algorithm.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/Algorithm.java new file mode 100644 index 0000000..1834ab8 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/Algorithm.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.alert.common.enums; + +import lombok.AllArgsConstructor; + +import java.util.Objects; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 14:07 + */ +@AllArgsConstructor +public enum Algorithm { + /** + * 模型算法枚举 + */ + ERROR(-1), + PCA(0), + ANN(1); + + public final Integer code; + + + public static Algorithm of(Integer code) { + for (Algorithm algorithm : values()) { + if (Objects.equals(algorithm.code, code)) { + return algorithm; + } + } + return ERROR; + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelStatus.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelStatus.java new file mode 100644 index 0000000..53c829c --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelStatus.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.alert.common.enums; + +import lombok.AllArgsConstructor; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 13:48 + */ +@AllArgsConstructor +public enum ModelStatus { + /** + * 模型状态 + */ + TRAINING(0, "训练中"), + FINISH(1, "已下装"); + + + public final Integer code; + + public final String desc; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelTrash.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelTrash.java new file mode 100644 index 0000000..82247c9 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelTrash.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.alert.common.enums; + +import lombok.AllArgsConstructor; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 13:53 + */ +@AllArgsConstructor +public enum ModelTrash { + /** + * 删除状态 + */ + NORMAL(0, "正常"), + TRASH(1, "已删除"), + ; + public final Integer code; + + public final String desc; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelVisible.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelVisible.java new file mode 100644 index 0000000..d919d6c --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/ModelVisible.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.alert.common.enums; + +import lombok.AllArgsConstructor; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 14:00 + */ +@AllArgsConstructor +public enum ModelVisible { + /** + * 模型可见状态 + */ + VISIBLE(1), + INVISIBLE(0), + ; + public final Integer code; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAPageReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAPageReqVO.java index 02a7fb9..38a62c6 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAPageReqVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/EXAPageReqVO.java @@ -4,11 +4,19 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; @Schema(description = "预警诊断系统 - EXA测点分页 Request VO") @Data @EqualsAndHashCode(callSuper = true) +@NoArgsConstructor public class EXAPageReqVO extends PageParam { @Schema(description = "测点名称或描述,模糊匹配", example = "芋道") private String condition; + + public EXAPageReqVO(String condition) { + this.condition = condition; + } + + } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/ExaPoint.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/ExaPoint.java new file mode 100644 index 0000000..6b970a2 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/ExaPoint.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.module.alert.controller.admin.exa.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-20 20:45 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ExaPoint { + /** + * 点号 + */ + @JsonProperty("ItemName") + private String itemName; + /** + * + */ + @JsonProperty("SerialNumber") + private int serialNumber; + /** + * 组名 + */ + @JsonProperty("GroupName") + private String groupName; + /** + * 类型 + */ + @JsonProperty("ItemType") + private int itemType; + /** + * 描述 + */ + @JsonProperty("Descriptor") + private String descriptor; + /** + * 单位 + */ + @JsonProperty("EngUnits") + private String engUnits; + /** + * 上限 + */ + @JsonProperty("UpperLimit") + private Double upperLimit; + /** + * 下限 + */ + @JsonProperty("LowerLimit") + private Double lowerLimit; + /** + * 上边界 + */ + @JsonProperty("LowerBound") + private Double lowerBound; + /** + * 下变价 + */ + @JsonProperty("UpperBound") + private Double upperBound; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java similarity index 75% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelController.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java index ba843df..fb825dc 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelController.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java @@ -1,10 +1,10 @@ -package cn.iocoder.yudao.module.alert.controller.model; +package cn.iocoder.yudao.module.alert.controller.admin.model; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.alert.controller.model.vo.CreateModelInfo; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelInfoVO; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSelectQuery; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSimpleVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.CreateModelInfo; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelInfoVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelSelectQuery; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelSimpleVO; import cn.iocoder.yudao.module.alert.service.model.ModelService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -21,7 +21,7 @@ import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeC */ @RestController @RequiredArgsConstructor -@RequestMapping("/api/model") +@RequestMapping("/alert/model") public class ModelController { private final ModelService modelService; @@ -39,7 +39,7 @@ public class ModelController { } @PostMapping("/") - public CommonResult saveModel(@RequestBody CreateModelInfo model) { + public CommonResult saveModel(@RequestBody ModelInfoVO model) { Integer id = modelService.createModel(model); if (Objects.nonNull(id) && id > 0) { return CommonResult.success(id); diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelDataController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelDataController.java similarity index 70% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelDataController.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelDataController.java index b6931bb..cf57c48 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/ModelDataController.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelDataController.java @@ -1,9 +1,9 @@ -package cn.iocoder.yudao.module.alert.controller.model; +package cn.iocoder.yudao.module.alert.controller.admin.model; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelDataQuery; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelDataVO; -import cn.iocoder.yudao.module.alert.controller.model.vo.TimeRange; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelDataQuery; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelDataVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.TimeRange; import cn.iocoder.yudao.module.alert.service.model.ModelDataService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*; */ @RestController @RequiredArgsConstructor -@RequestMapping("/api/model/data") +@RequestMapping("/alert/model/data") public class ModelDataController { private final ModelDataService modelDataService; 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 new file mode 100644 index 0000000..85d4451 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/ModelInfo.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.alert.controller.admin.model.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.*; + +import java.util.List; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 23:02 + */ +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class ModelInfo { + /** + * id + */ + private Integer id; + /** + * 创建人 + */ + private String createName; + /** + * 名称 + */ + private String modelName; + + + + private List pointInfo; +} 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 new file mode 100644 index 0000000..08fbd22 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/model/Point.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.alert.controller.admin.model.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.*; + +import java.math.BigDecimal; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-19 22:48 + */ +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class Point { + /** + * 系统名称 + */ + private String systemName; + + /** + * 目标点号 + */ + @JsonProperty("target_point") + private String targetPoint; + + /** + * 描述 + */ + private String description; + + /** + * 单位 + */ + private String unit; + + /** + * 类型 + */ + private String marktype; + + /** + * 上限 + */ + private BigDecimal upperlimit; + + /** + * 下限 + */ + 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/model/vo/CreateModelInfo.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/CreateModelInfo.java similarity index 75% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/CreateModelInfo.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/CreateModelInfo.java index 2a6f6e2..64670d5 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/CreateModelInfo.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/CreateModelInfo.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.alert.controller.model.vo; +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; import lombok.Data; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataQuery.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelDataQuery.java similarity index 91% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataQuery.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelDataQuery.java index b6f9e2f..63ab0d1 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataQuery.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelDataQuery.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.alert.controller.model.vo; +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; import com.fasterxml.jackson.annotation.JsonFormat; import jakarta.validation.constraints.NotBlank; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelDataVO.java similarity index 88% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataVO.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelDataVO.java index 58c560a..2226564 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelDataVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelDataVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.alert.controller.model.vo; +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; import lombok.*; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/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 similarity index 58% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelInfoVO.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelInfoVO.java index 247ef5e..90f709f 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/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,4 +1,4 @@ -package cn.iocoder.yudao.module.alert.controller.model.vo; +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.*; @@ -42,25 +42,12 @@ public class ModelInfoVO { */ private String modelName; - private List steadyPoint; - /** - * 滑动窗参数 - */ - private MovingWindows movingWindows; - - private PointVO targetParameter; - - private List relationParameter; - private List boundaryParameter; + private List pointInfo; + private Integer algorithmId; - @Data - public static class MovingWindows { - private Integer windowLength; + private Integer systemId; - private Integer samplingInterval; - private Integer movingSpeed; - } } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSelectQuery.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSelectQuery.java similarity index 91% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSelectQuery.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSelectQuery.java index 8b31107..d15c65b 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSelectQuery.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSelectQuery.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.alert.controller.model.vo; +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; import lombok.Data; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/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 similarity index 85% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/ModelSimpleVO.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSimpleVO.java index f512743..76a7158 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/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 @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.alert.controller.model.vo; +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; @@ -33,7 +33,7 @@ public class ModelSimpleVO { /** * 创建人 */ - private String creatName; + private String createName; /** * 模型状态 @@ -43,5 +43,5 @@ public class ModelSimpleVO { * 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date creatTime; + private Date createTime; } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/PointVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/PointVO.java similarity index 92% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/PointVO.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/PointVO.java index fd0a66a..f108e3a 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/PointVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/PointVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.alert.controller.model.vo; +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/TimeRange.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/TimeRange.java similarity index 74% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/TimeRange.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/TimeRange.java index cbc6477..bdbd413 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/model/vo/TimeRange.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/TimeRange.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.alert.controller.model.vo; +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; import lombok.Data; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/SelectController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/SelectController.java new file mode 100644 index 0000000..ddc5aeb --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/SelectController.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.alert.controller.admin.system; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.OptionItemVO; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.SelectQuery; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.PointOptionItemVO; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.SelectAllOptionVO; +import cn.iocoder.yudao.module.alert.service.exa.EXAService; +import cn.iocoder.yudao.module.alert.service.system.SelectService; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; +import java.util.List; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-16 22:37 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/alert/select") +public class SelectController { + /** + * 查询条件不能含有这个,否则exa会挂掉 + */ + private static final String EXA_NOT_SUPPORT_STR = "'"; + private final SelectService selectService; + + private final EXAService exaService; + + @GetMapping("list") + public CommonResult getAllOptions() { + SelectAllOptionVO allOptions = selectService.getAllOptions(); + return CommonResult.success(allOptions); + } + + @GetMapping("/system/options") + public CommonResult> getTypeOptions(@Valid SelectQuery query) { + List systemOptions = selectService.getSystemOptions(query); + return CommonResult.success(systemOptions); + } + + @GetMapping("/point/options") + public CommonResult> getPointOptions(String keyword) { + List pointOptionList = new ArrayList<>(); + if (StringUtils.hasText(keyword) && !keyword.contains(EXA_NOT_SUPPORT_STR)) { + pointOptionList = exaService.getPointOptionList(keyword); + } + return CommonResult.success(pointOptionList); + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/OptionItemVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/OptionItemVO.java new file mode 100644 index 0000000..877d5ec --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/OptionItemVO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.alert.controller.admin.system.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.ToString; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-16 22:39 + */ +@Data +@Builder +@ToString +@AllArgsConstructor +public class OptionItemVO { + /** + * id + */ + private Integer id; + /** + * 名称 + */ + private String name; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/PointOptionItemVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/PointOptionItemVO.java new file mode 100644 index 0000000..c06e6d0 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/PointOptionItemVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.alert.controller.admin.system.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.ToString; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-20 20:55 + */ +@Data +@Builder +@ToString +@AllArgsConstructor +public class PointOptionItemVO { + private String id; + + private String name; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/SelectAllOptionVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/SelectAllOptionVO.java new file mode 100644 index 0000000..8c5e970 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/SelectAllOptionVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.alert.controller.admin.system.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.ToString; + +import java.util.List; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-16 22:38 + */ +@Data +@Builder +@ToString +@AllArgsConstructor +public class SelectAllOptionVO { + /** + * 机组选项 + */ + private List units; + /** + * 系统选项 + */ + private List types; + /** + * 子系统选项 + */ + private List systems; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/SelectQuery.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/SelectQuery.java new file mode 100644 index 0000000..aa284b1 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/system/vo/SelectQuery.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.alert.controller.admin.system.vo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-17 23:48 + */ +@Data +public class SelectQuery { + @NotNull + private Integer unitId; + @NotNull + private Integer typeId; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/ModelCfg.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/ModelCfg.java index c24fee0..3361ffa 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/ModelCfg.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/ModelCfg.java @@ -1,75 +1,53 @@ package cn.iocoder.yudao.module.alert.dao.domain; import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import java.io.Serializable; import java.util.Date; /** * @TableName model_cfg */ -@TableName(value ="model_cfg") +@TableName(value = "model_cfg") @Data -public class ModelCfg { +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ModelCfg implements Serializable { + private static final long serialVersionUID = 1L; private Integer id; - private Integer systemId; - private Integer algorithmId; - private String modelName; - private Date creatTime; - private String creatName; - private String modelInfo; - private Integer status; - private Integer visible; - private String conditionInfo; - private Integer trash; - private String assessRes; - private Integer needToAssess; - private Double score; - private String clearOrNot; - private Integer effNumber; - private Integer needToClean; - private String origAssessRes; - private Double loadCover; - private String coverOutput; - private String curVersion; - private String modelVersion; - private String versionInfo; - private String conditionName; - private Integer isOnline; - private Integer trainStatus; - private String creator; - private Date createTime; - private String updater; - private Date updateTime; - private Boolean deleted; } \ No newline at end of file diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/SystemCfg.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/SystemCfg.java new file mode 100644 index 0000000..0c10221 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/SystemCfg.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.alert.dao.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * @TableName system_cfg + */ +@TableName(value ="system_cfg") +@Data +public class SystemCfg implements Serializable { + private Integer systemId; + + private Integer systemTypeId; + + private String systemName; + + private String systemShortname; + + private Integer unitId; + + private String resetpoint; + + private Date resettime; + + private String resetlist; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/SystemTypeCfg.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/SystemTypeCfg.java new file mode 100644 index 0000000..fa8fcdd --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/SystemTypeCfg.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.alert.dao.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; + +/** + * @TableName system_type_cfg + */ +@TableName(value ="system_type_cfg") +@Data +public class SystemTypeCfg implements Serializable { + private Integer systemTypeId; + + private String systemTypeName; + + private String systemTypeShortname; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/UnitCfg.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/UnitCfg.java new file mode 100644 index 0000000..630d044 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/domain/UnitCfg.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.alert.dao.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; + +/** + * @TableName unit_cfg + */ +@TableName(value ="unit_cfg") +@Data +public class UnitCfg implements Serializable { + private Integer unitId; + + private Integer plantId; + + private String unitName; + + private String unitShortname; + + private String alertBasicSample; + + private String loadpoint; + + private String temppoint; + + private Integer capacity; + + private String zqylqx; + + private String zqylMeasured; + + private String zqylTarget; + + private String datas; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.java index 6043a34..b91fd37 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.java @@ -4,9 +4,9 @@ import cn.iocoder.yudao.module.alert.dao.domain.ModelCfg; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** -* @author cjl60 +* @author 陈小黑 * @description 针对表【model_cfg】的数据库操作Mapper -* @createDate 2025-05-18 10:52:08 +* @createDate 2025-05-22 15:45:38 * @Entity cn.iocoder.yudao.module.alert.dao.domain.ModelCfg */ public interface ModelCfgMapper extends BaseMapper { diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/SystemCfgMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/SystemCfgMapper.java new file mode 100644 index 0000000..72ad7f6 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/SystemCfgMapper.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.alert.dao.mapper; + +import cn.iocoder.yudao.module.alert.dao.domain.SystemCfg; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 陈小黑 +* @description 针对表【system_cfg】的数据库操作Mapper +* @createDate 2025-05-21 16:10:38 +* @Entity cn.iocoder.yudao.module.alert.dao.domain.SystemCfg +*/ +public interface SystemCfgMapper extends BaseMapper { + +} + + + + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/SystemTypeCfgMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/SystemTypeCfgMapper.java new file mode 100644 index 0000000..0b0ecee --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/SystemTypeCfgMapper.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.alert.dao.mapper; + +import cn.iocoder.yudao.module.alert.dao.domain.SystemTypeCfg; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 陈小黑 +* @description 针对表【system_type_cfg】的数据库操作Mapper +* @createDate 2025-05-21 16:10:57 +* @Entity cn.iocoder.yudao.module.alert.dao.domain.SystemTypeCfg +*/ +public interface SystemTypeCfgMapper extends BaseMapper { + +} + + + + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/UnitCfgMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/UnitCfgMapper.java new file mode 100644 index 0000000..7a68ff7 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/mapper/UnitCfgMapper.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.alert.dao.mapper; + +import cn.iocoder.yudao.module.alert.dao.domain.UnitCfg; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 陈小黑 +* @description 针对表【unit_cfg】的数据库操作Mapper +* @createDate 2025-05-21 16:07:43 +* @Entity cn.iocoder.yudao.module.alert.dao.domain.UnitCfg +*/ +public interface UnitCfgMapper extends BaseMapper { + +} + + + + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/ModelCfgService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/ModelCfgService.java index df918fc..a0ac0c7 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/ModelCfgService.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/ModelCfgService.java @@ -4,9 +4,9 @@ import cn.iocoder.yudao.module.alert.dao.domain.ModelCfg; import com.baomidou.mybatisplus.extension.service.IService; /** -* @author cjl60 +* @author 陈小黑 * @description 针对表【model_cfg】的数据库操作Service -* @createDate 2025-05-18 10:52:08 +* @createDate 2025-05-22 15:45:38 */ public interface ModelCfgService extends IService { diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/SystemCfgService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/SystemCfgService.java new file mode 100644 index 0000000..e8d11b1 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/SystemCfgService.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.alert.dao.service; + +import cn.iocoder.yudao.module.alert.dao.domain.SystemCfg; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 陈小黑 +* @description 针对表【system_cfg】的数据库操作Service +* @createDate 2025-05-21 16:10:38 +*/ +public interface SystemCfgService extends IService { + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/SystemTypeCfgService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/SystemTypeCfgService.java new file mode 100644 index 0000000..4ba6eb1 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/SystemTypeCfgService.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.alert.dao.service; + +import cn.iocoder.yudao.module.alert.dao.domain.SystemTypeCfg; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 陈小黑 +* @description 针对表【system_type_cfg】的数据库操作Service +* @createDate 2025-05-21 16:10:57 +*/ +public interface SystemTypeCfgService extends IService { + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/UnitCfgService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/UnitCfgService.java new file mode 100644 index 0000000..38b9859 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/UnitCfgService.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.alert.dao.service; + +import cn.iocoder.yudao.module.alert.dao.domain.UnitCfg; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 陈小黑 +* @description 针对表【unit_cfg】的数据库操作Service +* @createDate 2025-05-21 16:07:43 +*/ +public interface UnitCfgService extends IService { + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/ModelCfgServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/ModelCfgServiceImpl.java index 9721c90..66c2a2d 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/ModelCfgServiceImpl.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/ModelCfgServiceImpl.java @@ -7,9 +7,9 @@ import cn.iocoder.yudao.module.alert.dao.mapper.ModelCfgMapper; import org.springframework.stereotype.Service; /** -* @author cjl60 +* @author 陈小黑 * @description 针对表【model_cfg】的数据库操作Service实现 -* @createDate 2025-05-18 10:52:08 +* @createDate 2025-05-22 15:45:38 */ @Service public class ModelCfgServiceImpl extends ServiceImpl diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/SystemCfgServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/SystemCfgServiceImpl.java new file mode 100644 index 0000000..5ac1ca0 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/SystemCfgServiceImpl.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.alert.dao.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.iocoder.yudao.module.alert.dao.domain.SystemCfg; +import cn.iocoder.yudao.module.alert.dao.service.SystemCfgService; +import cn.iocoder.yudao.module.alert.dao.mapper.SystemCfgMapper; +import org.springframework.stereotype.Service; + +/** +* @author 陈小黑 +* @description 针对表【system_cfg】的数据库操作Service实现 +* @createDate 2025-05-21 16:10:38 +*/ +@Service +public class SystemCfgServiceImpl extends ServiceImpl + implements SystemCfgService{ + +} + + + + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/SystemTypeCfgServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/SystemTypeCfgServiceImpl.java new file mode 100644 index 0000000..c61ea5e --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/SystemTypeCfgServiceImpl.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.alert.dao.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.iocoder.yudao.module.alert.dao.domain.SystemTypeCfg; +import cn.iocoder.yudao.module.alert.dao.service.SystemTypeCfgService; +import cn.iocoder.yudao.module.alert.dao.mapper.SystemTypeCfgMapper; +import org.springframework.stereotype.Service; + +/** +* @author 陈小黑 +* @description 针对表【system_type_cfg】的数据库操作Service实现 +* @createDate 2025-05-21 16:10:57 +*/ +@Service +public class SystemTypeCfgServiceImpl extends ServiceImpl + implements SystemTypeCfgService{ + +} + + + + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/UnitCfgServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/UnitCfgServiceImpl.java new file mode 100644 index 0000000..e7056d2 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dao/service/impl/UnitCfgServiceImpl.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.alert.dao.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.iocoder.yudao.module.alert.dao.domain.UnitCfg; +import cn.iocoder.yudao.module.alert.dao.service.UnitCfgService; +import cn.iocoder.yudao.module.alert.dao.mapper.UnitCfgMapper; +import org.springframework.stereotype.Service; + +/** +* @author 陈小黑 +* @description 针对表【unit_cfg】的数据库操作Service实现 +* @createDate 2025-05-21 16:07:43 +*/ +@Service +public class UnitCfgServiceImpl extends ServiceImpl + implements UnitCfgService{ + +} + + + + 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 7f01df9..80eb263 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 @@ -1,12 +1,12 @@ package cn.iocoder.yudao.module.alert.service.exa; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.*; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.PointOptionItemVO; import java.io.IOException; import java.net.URISyntaxException; -import java.util.*; +import java.util.List; public interface EXAService { /** @@ -21,16 +21,20 @@ public interface EXAService { List getEXAListNow(List list) throws URISyntaxException, IOException; + String getEXANow(String itemName) throws URISyntaxException, IOException; - List getEXAHistory(EXAHistoryReqVO exaHistoryReqVo); + List getEXAHistory(EXAHistoryReqVO exaHistoryReqVo); List> getEXAHistorys(EXAHistoryReqVO exaHistoryReqVo); String createPoint(Point pointVo) throws IOException; - public List getEXAGroupInfo() throws URISyntaxException, IOException; + List getEXAGroupInfo() throws URISyntaxException, IOException; + + String deletePoint(String ItemName); - public String deletePoint(String ItemName); EXAPointImportRespVO importPointList(List importPoints, boolean isUpdateSupport); + + List getPointOptionList(String search); } 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 9995b11..88fa652 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 @@ -1,36 +1,22 @@ package cn.iocoder.yudao.module.alert.service.exa; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; -import cn.iocoder.yudao.framework.common.exception.ServiceException; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.*; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.PointOptionItemVO; import cn.iocoder.yudao.module.alert.utils.EXAUtils; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; -import jakarta.validation.ConstraintViolationException; import lombok.extern.slf4j.Slf4j; -import org.apache.http.HttpEntity; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.utils.URIBuilder; -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 org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.io.IOException; -import java.lang.reflect.Type; import java.net.URISyntaxException; import java.util.*; +import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.alert.utils.PageUtils.getPartList; @@ -40,6 +26,11 @@ import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; @Validated @Slf4j public class EXAServiceImpl implements EXAService { + private static final String EXA_SEARCH_FORMATTER = "ItemName like'%%%s%%' or Descriptor like '%%%s%%'"; + + private static final String EXA_SEARCH_KEY = "WhereClause"; + + private static final String ID_SPLIT = "|"; EXAUtils exaUtils = new EXAUtils(); @@ -126,4 +117,22 @@ public class EXAServiceImpl implements EXAService { return respVO; } + @Override + public List getPointOptionList(String search) { + try { + List points = exaUtils.getPointInfo(EXA_IP, new EXAPageReqVO(search)); + return points.stream().map(p -> PointOptionItemVO.builder() + .id(p.getDescriptor() + ID_SPLIT + + p.getItemName() + ID_SPLIT + + p.getEngUnits() + ID_SPLIT + + p.getUpperLimit() + ID_SPLIT + + p.getLowerLimit()) + .name(p.getDescriptor() + " (" + p.getItemName() + ")") + .build()) + .collect(Collectors.toList()); + } catch (Exception e) { + log.error("获取exa异常:{}", search, e); + } + return new ArrayList<>(); + } } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelDataService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelDataService.java index a8d4f06..983c8d6 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelDataService.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelDataService.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.module.alert.service.model; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelDataVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelDataVO; import java.util.Date; import java.util.List; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java index 8311db6..8dcb076 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java @@ -1,10 +1,10 @@ package cn.iocoder.yudao.module.alert.service.model; -import cn.iocoder.yudao.module.alert.controller.model.vo.CreateModelInfo; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelInfoVO; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSelectQuery; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSimpleVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.CreateModelInfo; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelInfoVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelSelectQuery; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelSimpleVO; import java.util.List; @@ -36,7 +36,7 @@ public interface ModelService { * @param model 模型参数 * @return 模型id */ - Integer createModel(CreateModelInfo model); + Integer createModel(ModelInfoVO model); /** * 更新model info diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelDataServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelDataServiceImpl.java index 7df28ea..449c84e 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelDataServiceImpl.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelDataServiceImpl.java @@ -1,15 +1,11 @@ package cn.iocoder.yudao.module.alert.service.model.impl; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelDataVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelDataVO; import cn.iocoder.yudao.module.alert.service.model.ModelDataService; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; -import java.text.DecimalFormat; -import java.util.ArrayList; import java.util.Date; import java.util.List; 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 e907ce8..5696128 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 @@ -1,21 +1,25 @@ package cn.iocoder.yudao.module.alert.service.model.impl; import cn.hutool.core.bean.BeanUtil; -import cn.iocoder.yudao.module.alert.controller.model.vo.CreateModelInfo; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelInfoVO; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSelectQuery; -import cn.iocoder.yudao.module.alert.controller.model.vo.ModelSimpleVO; +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.alert.common.enums.Algorithm; +import cn.iocoder.yudao.module.alert.common.enums.ModelStatus; +import cn.iocoder.yudao.module.alert.common.enums.ModelTrash; +import cn.iocoder.yudao.module.alert.common.enums.ModelVisible; +import cn.iocoder.yudao.module.alert.controller.admin.model.model.ModelInfo; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelInfoVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelSelectQuery; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelSimpleVO; import cn.iocoder.yudao.module.alert.dao.domain.ModelCfg; +import cn.iocoder.yudao.module.alert.dao.domain.SystemCfg; import cn.iocoder.yudao.module.alert.dao.service.ModelCfgService; +import cn.iocoder.yudao.module.alert.dao.service.SystemCfgService; import cn.iocoder.yudao.module.alert.service.model.ModelService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.aspectj.asm.AsmManager; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @@ -35,9 +39,39 @@ import java.util.stream.Collectors; public class ModelServiceImpl implements ModelService { private final ModelCfgService modelCfgService; + private final SystemCfgService systemCfgService; + @Override public List getModelList(ModelSelectQuery query) { - return null; + Integer systemId = query.getSystemId(); + String modelName = query.getName(); + Integer status = query.getStatus(); + Integer trash = query.getTrash(); + Integer typeId = query.getTypeId(); + List systems = null; + if (Objects.nonNull(typeId)) { + LambdaQueryWrapper systemQuery = new LambdaQueryWrapper<>(); + systemQuery.eq(SystemCfg::getSystemTypeId, typeId); + List list = systemCfgService.list(systemQuery); + systems = list.stream().map(SystemCfg::getSystemId).collect(Collectors.toList()); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Objects.nonNull(systemId), ModelCfg::getSystemId, systemId) + .eq(Objects.nonNull(status), ModelCfg::getStatus, status) + .eq(Objects.nonNull(trash), ModelCfg::getTrash, trash) + .eq(ModelCfg::getVisible, ModelVisible.VISIBLE.code) + .in(CollUtil.isNotEmpty(systems), ModelCfg::getSystemId, systems) + .like(StringUtils.hasLength(modelName), ModelCfg::getModelName, modelName); + List list = modelCfgService.list(queryWrapper); + return list.stream().map(modelCfg -> ModelSimpleVO.builder() + .id(modelCfg.getId()) + .name(modelCfg.getModelName().trim()) + .createName(modelCfg.getCreator()) + .createTime(modelCfg.getCreateTime()) + .status(modelCfg.getStatus()) + .algorithm(Algorithm.of(modelCfg.getAlgorithmId()).toString()) + .build()) + .collect(Collectors.toList()); } @Override @@ -46,8 +80,26 @@ public class ModelServiceImpl implements ModelService { } @Override - public Integer createModel(CreateModelInfo model) { + public Integer createModel(ModelInfoVO model) { try { + ModelInfo info = new ModelInfo(); + BeanUtil.copyProperties(model, info); + ModelCfg modelCfg = ModelCfg.builder() + .systemId(model.getSystemId()) + .algorithmId(model.getAlgorithmId()) + .modelName(model.getModelName()) + .createTime(new Date()) + .trash(ModelTrash.NORMAL.code) + .visible(ModelVisible.VISIBLE.code) + .status(ModelStatus.TRAINING.code) + .creator(SecurityFrameworkUtils.getLoginUserNickname()) + .build(); + modelCfgService.save(modelCfg); + Integer modelId = modelCfg.getId(); + info.setId(modelId); + modelCfg.setModelInfo(JsonUtils.toJsonString(info)); + modelCfgService.updateById(modelCfg); + return modelId; } catch (Exception e) { log.error("新建模型异常,model:{}", model); } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/system/SelectService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/system/SelectService.java new file mode 100644 index 0000000..eca2571 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/system/SelectService.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.alert.service.system; + + +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.OptionItemVO; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.SelectAllOptionVO; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.SelectQuery; + +import java.util.List; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-16 22:44 + */ +public interface SelectService { + /** + * 获取所有的下拉框选项 + * + * @return 下拉框选项 + */ + SelectAllOptionVO getAllOptions(); + + /** + * 根据unit id和type id获取系统选项 + * + * @param query 查询参数 + * @return 系统选项 + */ + List getSystemOptions(SelectQuery query); +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/system/impl/SelectServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/system/impl/SelectServiceImpl.java new file mode 100644 index 0000000..1c90f17 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/system/impl/SelectServiceImpl.java @@ -0,0 +1,88 @@ +package cn.iocoder.yudao.module.alert.service.system.impl; + +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.OptionItemVO; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.SelectAllOptionVO; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.SelectQuery; +import cn.iocoder.yudao.module.alert.dao.domain.SystemCfg; +import cn.iocoder.yudao.module.alert.dao.domain.SystemTypeCfg; +import cn.iocoder.yudao.module.alert.dao.domain.UnitCfg; +import cn.iocoder.yudao.module.alert.dao.service.SystemCfgService; +import cn.iocoder.yudao.module.alert.dao.service.SystemTypeCfgService; +import cn.iocoder.yudao.module.alert.dao.service.UnitCfgService; +import cn.iocoder.yudao.module.alert.service.system.SelectService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author chenjiale + * @version 1.0 + * @date 2023-08-16 22:45 + */ +@Service +@RequiredArgsConstructor +public class SelectServiceImpl implements SelectService { + private final UnitCfgService unitCfgService; + + private final SystemTypeCfgService systemTypeCfgService; + + private final SystemCfgService systemCfgService; + + @Override + public SelectAllOptionVO getAllOptions() { + List unitCfgList = unitCfgService.list(); + + LambdaQueryWrapper typeQuery = new LambdaQueryWrapper<>(); + typeQuery.orderByAsc(SystemTypeCfg::getSystemTypeId); + List typeCfgList = systemTypeCfgService.list(typeQuery); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SystemCfg::getSystemTypeId, typeCfgList.get(0).getSystemTypeId()) + .eq(SystemCfg::getUnitId, unitCfgList.get(0).getUnitId()) + .orderByAsc(SystemCfg::getSystemId); + List systemCfgList = systemCfgService.list(queryWrapper); + + + List units = unitCfgList.stream().map(o -> OptionItemVO.builder() + .id(o.getUnitId()) + .name(o.getUnitName().trim()) + .build()).collect(Collectors.toList()); + List types = typeCfgList.stream().map(o -> OptionItemVO.builder() + .id(o.getSystemTypeId()) + .name(o.getSystemTypeShortname().trim()) + .build()).collect(Collectors.toList()); + + List systems = systemCfgList.stream().map(o -> OptionItemVO.builder() + .id(o.getSystemId()) + .name(o.getSystemName().trim()) + .build()).collect(Collectors.toList()); + systems.add(0, OptionItemVO.builder().id(null).name("全部").build()); + return SelectAllOptionVO.builder() + .units(units) + .types(types) + .systems(systems) + .build(); + } + + @Override + public List getSystemOptions(@Valid SelectQuery query) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Integer unitId = query.getUnitId(); + Integer typeId = query.getTypeId(); + queryWrapper.eq(SystemCfg::getSystemTypeId, typeId) + .eq(SystemCfg::getUnitId, unitId) + .orderByAsc(SystemCfg::getSystemId); + List systemCfgList = systemCfgService.list(queryWrapper); + List systems = systemCfgList.stream().map(o -> OptionItemVO.builder() + .id(o.getSystemId()) + .name(o.getSystemName().trim()) + .build()) + .collect(Collectors.toList()); + systems.add(0, OptionItemVO.builder().id(null).name("全部").build()); + return systems; + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/resources/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.xml b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.xml deleted file mode 100644 index 752dad8..0000000 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/resources/cn/iocoder/yudao/module/alert/dao/mapper/ModelCfgMapper.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - id,system_id,algorithm_id,model_name,creat_time,creat_name, - model_info,status,visible,condition_info,trash, - assess_res,need_to_assess,score,clear_or_not,eff_number, - need_to_clean,orig_assess_res,load_cover,cover_output,cur_version, - model_version,version_info,condition_name,is_online,train_status, - creator,create_time,updater,update_time,deleted - - diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/ModelCfgMapper.xml b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/ModelCfgMapper.xml new file mode 100644 index 0000000..ac7179d --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/ModelCfgMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,system_id,algorithm_id, + model_name,creat_time,creat_name, + model_info,status,visible, + condition_info,trash,assess_res, + need_to_assess,score,clear_or_not, + eff_number,need_to_clean,orig_assess_res, + load_cover,cover_output,cur_version, + model_version,version_info,condition_name, + is_online,train_status,creator, + create_time,updater,update_time, + deleted + + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/SystemCfgMapper.xml b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/SystemCfgMapper.xml new file mode 100644 index 0000000..74426d4 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/SystemCfgMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + system_id,system_type_id,system_name, + system_shortname,unit_id,resetpoint, + resettime,resetlist + + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/SystemTypeCfgMapper.xml b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/SystemTypeCfgMapper.xml new file mode 100644 index 0000000..26b627f --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/SystemTypeCfgMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + system_type_id,system_type_name,system_type_shortname + + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/UnitCfgMapper.xml b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/UnitCfgMapper.xml new file mode 100644 index 0000000..8251109 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/resources/mapper/UnitCfgMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + unit_id,plant_id,unit_name, + unit_shortname,alert_basic_sample,loadpoint, + temppoint,capacity,zqylqx, + zqyl_measured,zqyl_target,datas + + diff --git a/yudao-server/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.java b/yudao-server/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.java index b4bb105..5ad5370 100644 --- a/yudao-server/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.java +++ b/yudao-server/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.server; import com.github.fppt.jedismock.RedisServer; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -8,7 +9,7 @@ import java.io.IOException; /** * 项目的启动类 - * + *

* 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章 * 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章 * 如果你碰到启动的问题,请认真阅读 https://doc.iocoder.cn/quick-start/ 文章 @@ -17,6 +18,7 @@ import java.io.IOException; */ @SuppressWarnings("SpringComponentScan") // 忽略 IDEA 无法识别 ${yudao.info.base-package} @SpringBootApplication(scanBasePackages = {"${yudao.info.base-package}.server", "${yudao.info.base-package}.module"}) +@MapperScan("cn.iocoder.yudao.module.alert.dao.mapper") public class YudaoServerApplication { public static void main(String[] args) { From 9558c3ea4e4fe1557714500652cea518391d106b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E6=99=8B=E9=A3=9E?= <378266566@qq.com> Date: Fri, 23 May 2025 18:42:26 +0800 Subject: [PATCH 3/9] =?UTF-8?q?feat:=E8=BF=90=E8=A1=8C=E4=B8=AD=E5=BF=83-?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=AE=9E=E4=BE=8BV1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 + .../yudao-module-alert-biz/pom.xml | 6 + .../admin/calcgroup/CalcGroupController.java | 44 +++ .../calcgroup/vo/CalcGroupPageReqVO.java | 16 + .../admin/calcgroup/vo/CalcGroupRespVO.java | 22 ++ .../controller/admin/exa/EXAController.java | 4 +- .../admin/exa/vo/EXAHistoryReqVO.java | 3 + .../admin/instant/InstantController.java | 106 +++++ .../admin/instant/vo/InstantChartReqVO.java | 14 + .../admin/instant/vo/InstantChartRespVO.java | 21 + .../admin/instant/vo/InstantCountReqVO.java | 20 + .../admin/instant/vo/InstantCountRespVO.java | 25 ++ .../admin/instant/vo/InstantInfoVO.java | 21 + .../admin/instant/vo/InstantPageReqVO.java | 30 ++ .../admin/instant/vo/InstantPointRespVO.java | 45 +++ .../admin/instant/vo/InstantRespVO.java | 135 +++++++ .../admin/instant/vo/InstantSaveReqVO.java | 80 ++++ .../admin/instant/vo/pointInfo.java | 24 ++ .../admin/model/ModelController.java | 55 +++ .../admin/model/vo/ModelInfoVO.java | 134 +++++++ .../admin/model/vo/ModelPageReqVO.java | 18 + .../admin/model/vo/ModelRespVO.java | 47 +++ .../admin/model/vo/ModelVersionPageReqVO.java | 16 + .../admin/model/vo/ModelVersionRespVO.java | 22 ++ .../dal/dataobject/calcgroup/CalcGroupDO.java | 24 ++ .../dal/dataobject/instant/InstantDO.java | 83 ++++ .../dataobject/instant/InstantTableDO.java | 58 +++ .../alert/dal/dataobject/model/ModelDO.java | 50 +++ .../dal/dataobject/model/ModelVersionDO.java | 21 + .../dal/mysql/calcgroup/CalcGroupMapper.java | 22 ++ .../dal/mysql/instant/InstantMapper.java | 33 ++ .../dal/mysql/instant/InstantTableMapper.java | 10 + .../alert/dal/mysql/model/ModelMapper.java | 20 + .../dal/mysql/model/ModelVersionMapper.java | 23 ++ .../service/calcgroup/CalcGroupService.java | 21 + .../calcgroup/CalcGroupServiceImpl.java | 31 ++ .../module/alert/service/exa/EXAService.java | 4 +- .../alert/service/exa/EXAServiceImpl.java | 4 +- .../alert/service/instant/InstantService.java | 57 +++ .../service/instant/InstantServiceImpl.java | 373 ++++++++++++++++++ .../alert/service/model/ModelService.java | 30 ++ .../alert/service/model/ModelServiceImpl.java | 34 ++ .../yudao/module/alert/utils/EXAUtils.java | 17 +- .../system/enums/ErrorCodeConstants.java | 6 + .../system/enums/LogRecordConstants.java | 13 + .../system/dal/redis/RedisKeyConstants.java | 8 + .../src/main/resources/application-local.yaml | 4 +- 47 files changed, 1849 insertions(+), 13 deletions(-) create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/CalcGroupController.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupPageReqVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupRespVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/InstantController.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantChartReqVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantChartRespVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantCountReqVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantCountRespVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantInfoVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPageReqVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPointRespVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantRespVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantSaveReqVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/pointInfo.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelInfoVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelPageReqVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelRespVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionPageReqVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionRespVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/calcgroup/CalcGroupDO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantDO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantTableDO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/model/ModelDO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/model/ModelVersionDO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/calcgroup/CalcGroupMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/instant/InstantMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/instant/InstantTableMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/ModelMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/ModelVersionMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/calcgroup/CalcGroupService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/calcgroup/CalcGroupServiceImpl.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantServiceImpl.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelServiceImpl.java diff --git a/pom.xml b/pom.xml index 057222b..779e8dd 100644 --- a/pom.xml +++ b/pom.xml @@ -63,6 +63,14 @@ + + com.example + maven-resources-production + 1.0.0 + + -Xmx2g + + diff --git a/yudao-module-alert/yudao-module-alert-biz/pom.xml b/yudao-module-alert/yudao-module-alert-biz/pom.xml index 6eac1ef..f225cdc 100644 --- a/yudao-module-alert/yudao-module-alert-biz/pom.xml +++ b/yudao-module-alert/yudao-module-alert-biz/pom.xml @@ -62,6 +62,12 @@ cn.iocoder.boot yudao-spring-boot-starter-excel + + cn.iocoder.boot + yudao-module-system-biz + 2.4.2-SNAPSHOT + compile + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/CalcGroupController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/CalcGroupController.java new file mode 100644 index 0000000..89e967e --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/CalcGroupController.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.alert.controller.admin.calcgroup; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.alert.controller.admin.calcgroup.vo.CalcGroupPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.calcgroup.vo.CalcGroupRespVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionRespVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.calcgroup.CalcGroupDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; +import cn.iocoder.yudao.module.alert.service.calcgroup.CalcGroupService; +import cn.iocoder.yudao.module.alert.service.model.ModelService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Comparator; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "运行中心 - 计算组") +@RestController +@RequestMapping("/alert/calcgroup") +@Validated +public class CalcGroupController { + + @Resource + private CalcGroupService calcGroupService; + + @GetMapping("/list") + @Operation(summary = "获取计算组列表", description = "用于前端的下拉选项") + public CommonResult> getCalcGroupList(CalcGroupPageReqVO ReqVO) { + ReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = calcGroupService.getCalcGroupPage(ReqVO).getList(); + list.sort(Comparator.comparing(CalcGroupDO::getId)); + return success(BeanUtils.toBean(list, CalcGroupRespVO.class)); + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupPageReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupPageReqVO.java new file mode 100644 index 0000000..1f687ad --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupPageReqVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.alert.controller.admin.calcgroup.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "运行中心 - 模型版本 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class CalcGroupPageReqVO extends PageParam { + @Schema(description = "机组id", example = "1") + private String unitId; + + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupRespVO.java new file mode 100644 index 0000000..2dc2fb6 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupRespVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.alert.controller.admin.calcgroup.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "运行中心 - 模型分页 Request VO") +@Data +@ExcelIgnoreUnannotated +public class CalcGroupRespVO { + @Schema(description = "版本id", example = "id") + private String id; + + @Schema(description = "机组id", example = "id") + + private String unitId; + + @Schema(description = "计算组名称", example = "yudao") + private String groupName; + + +} 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..87b8568 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,7 @@ public class EXAHistoryReqVO { private String startTime; @Schema(description = "结束时间") private String endTime; + @Schema(description = "间隔时间-以秒为单位传入,会自动转为毫秒") + private Long interval; + } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/InstantController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/InstantController.java new file mode 100644 index 0000000..6ebbf00 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/InstantController.java @@ -0,0 +1,106 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.EXAHistoryReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.*; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; +import cn.iocoder.yudao.module.alert.service.instant.InstantService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; + + +@Tag(name = "运行中心 - 模型实例") +@RestController +@RequestMapping("/alert/instant") +@Validated +public class InstantController { + + @Resource + private InstantService instantService; + + @GetMapping("/page") + @Operation(summary = "获得模型实例分页列表") + @PreAuthorize("@ss.hasPermission('run:instant:query')") + public CommonResult> getInstantPage(@Valid InstantPageReqVO pageReqVO) { + PageResult pageResult = instantService.getInstantPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, InstantRespVO.class)); + } + + + @GetMapping("/get") + @Operation(summary = "获得实例信息") + @PreAuthorize("@ss.hasPermission('run:instant:query')") + public CommonResult getInstant(@RequestParam("id") Long id) { + InstantDO instant = instantService.getInstant(id); + return success(BeanUtils.toBean(instant, InstantRespVO.class)); + } + + + @GetMapping("/getPoint") + @Operation(summary = "获得某实例的测点列表") + @PreAuthorize("@ss.hasPermission('run:instant:query')") + public CommonResult> getInstantPoint(@RequestParam("id") Long id) { + List instantPointList= instantService.getInstantPoint(id); + return success(instantPointList); + } + + + @PostMapping("/getChart") + @Operation(summary = "获得某实例的曲线数据--默认-读历史") + @PreAuthorize("@ss.hasPermission('run:instant:query')") + public CommonResult> getInstantChart( @Valid @RequestBody InstantChartReqVO instantChartReqVO) { + List instantChartList= instantService.getInstantChart(instantChartReqVO); + return success(instantChartList); + } + + +// @GetMapping("/getChartCalc") +// @Operation(summary = "获得某实例的曲线数据--复盘") +// @PreAuthorize("@ss.hasPermission('run:instant:query')") +// public CommonResult> getInstantChartCalc(@RequestParam("id") Long id,@Valid EXAHistoryReqVO exaHistoryReqVo) { +// List result= instantService.getInstantChart(id,exaHistoryReqVo); +// return success(result); +// } + + + @PutMapping("/update") + @Operation(summary = "修改模型实例") + @PreAuthorize("@ss.hasPermission('run:instant:update')") + public CommonResult updateInstant(@Valid @RequestBody InstantSaveReqVO updateReqVO) { + instantService.updateInstant(updateReqVO); + return success(true); + } + + @GetMapping("/count") + @Operation(summary = "获得各状态数量列表") + @PreAuthorize("@ss.hasPermission('run:instant:query')") + public CommonResult getInstantPage() { + InstantCountRespVO instantCountRespVO= instantService.getInstantCount(); + return success(BeanUtils.toBean(instantCountRespVO, InstantCountRespVO.class)); + + } + + + @PostMapping("/create") + @Operation(summary = "创建模型实例") + @PreAuthorize("@ss.hasPermission('run:instant:create')") + public CommonResult> createInstant(@RequestBody InstantSaveReqVO createReqVO) throws IOException { + return success(instantService.createInstant(createReqVO, null)); + } + + + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantChartReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantChartReqVO.java new file mode 100644 index 0000000..bd0f73b --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantChartReqVO.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; + +import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.EXAHistoryReqVO; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class InstantChartReqVO extends EXAHistoryReqVO { + + @JsonProperty(value="id") + @Schema(description = "实例id", example = "id") + private Long id; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantChartRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantChartRespVO.java new file mode 100644 index 0000000..0f68c69 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantChartRespVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = false) +public class InstantChartRespVO { + + + + private String title; + + + private List name; + + + private List>> seriesData; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantCountReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantCountReqVO.java new file mode 100644 index 0000000..c15a2ce --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantCountReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; + +import io.swagger.v3.oas.annotations.media.Schema; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "运行中心 - 模型实例分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = false) +public class InstantCountReqVO { + @Schema(description = "运行状态", example = "yudao") + private Long running; + + @Schema(description = "运行日志", example = "yudao") + private String runningLog; + + @Schema(description = "更新状态", example = "yudao") + private Long isUpdate; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantCountRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantCountRespVO.java new file mode 100644 index 0000000..e54992a --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantCountRespVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "运行中心 - 模型实例分页 Request VO") +@Data +@ExcelIgnoreUnannotated +public class InstantCountRespVO { + @Schema(description = "正常运行数量", example = "id") + private Long normal; + + @Schema(description = "模式外运行数量", example = "yudao") + private Long outside; + + @Schema(description = "运行失败数量", example = "yudao") + private Long failure; + + @Schema(description = "版本更新数量", example = "yudao") + private Long update; + + @Schema(description = "模型停运数量", example = "yudao") + private Long stop; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantInfoVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantInfoVO.java new file mode 100644 index 0000000..a000ea3 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantInfoVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class InstantInfoVO { + + + private List inputInfo; + private List inputName; + private List unit; + //重构值 + private List outPointInfo; + private List timePointInfo; + private List biasPointInfo; + private List faultVariablePointInfo; + private String model_state; + private String model_status; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPageReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPageReqVO.java new file mode 100644 index 0000000..146d30c --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPageReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "运行中心 - 模型实例分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class InstantPageReqVO extends PageParam { + + @Schema(description = "机组id", example = "id") + private Integer unitId; + + @Schema(description = "系统id", example = "yudao") + private Integer MODEL_ID; + + @Schema(description = "模型名称", example = "yudao") + private String mpName; + + @Schema(description = "运行状态", example = "yudao") + private String running; + + @Schema(description = "运行日志", example = "yudao") + private String runningLog; + + @Schema(description = "更新状态", example = "yudao") + private String isUpdate; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPointRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPointRespVO.java new file mode 100644 index 0000000..f45b4f1 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPointRespVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; + +import com.mzt.logapi.starter.annotation.DiffLogField; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Schema(description = "运行中心 - 模型实例所用测点 Req VO") +@Data +public class InstantPointRespVO { + @Schema(description = "实例编号,后端手动生成--直接用", example = "1") + private Long id; + + + @Schema(description = "输入点号", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @NotNull(message = "输入点号不能为空") + @DiffLogField(name = "输入点号") + private String inputInfo; + + @Schema(description = "输入点号名称", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @NotNull(message = "输入点号名称不能为空") + @DiffLogField(name = "输入点号名称") + private String inputName; + + @Schema(description = "单位名称", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @NotNull(message = "单位名称不能为空") + @DiffLogField(name = "单位名称") + private String unit; + + + @Schema(description = "重构值点号", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @NotNull(message = "重构值点号不能为空") + @DiffLogField(name = "重构值点号") + private String outPointInfo; + + @Schema(description = "偏差值点号", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @NotNull(message = "偏差值点号不能为空") + @DiffLogField(name = "偏差值点号") + private String biasPointInfo; + + @Schema(description = "错误状态点号", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @NotNull(message = "错误状态点号不能为空") + @DiffLogField(name = "错误状态点号") + private String faultVariablePointInfo; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantRespVO.java new file mode 100644 index 0000000..ba516c3 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantRespVO.java @@ -0,0 +1,135 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.apache.ibatis.type.JdbcType; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +@Schema(description = "运行中心 - 模型实例分页 Request VO") +@Data +@ExcelIgnoreUnannotated +public class InstantRespVO { + @Schema(description = "实例id", example = "id") + private String id; + + @Schema(description = "模型id", example = "yudao") + private String modelId; + + @Schema(description = "实例名称", example = "yudao") + private String mpName; + + @Schema(description = "实例信息", example = "yudao") + private String instantInfo; + + @Schema(description = "时间间隔", example = "1") + private Integer intervalTime; + + @Schema(description = "是否存历史", example = "1") + private Integer hisSto; + + @Schema(description = "是否可见", example = "1") + private Integer visible; + + @Schema(description = "状态", example = "1") + private Integer status; + + @Schema(description = "创建时间", example = "2022-07-01 00:00:00") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime setupTime; + + @Schema(description = "更新时间", example = "2022-07-01 00:00:00") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime newestUpdateTime; + + @Schema(description = "运行", example = "1024") + private Long running; + + @Schema(description = "运行日志", example = "1024") + private String runningLog; + + @Schema(description = "计算组", example = "1024") + private Long calcGroup; + + @Schema(description = "版本号", example = "1024") + private String modelVersionId; + + private Integer isUpdate; + + //视图额外增加的字段 + private String conditionInfo; + private String groupName; + @Schema(description = "实例所属模型名称", example = "1024") + private String modelName; + + @Schema(description = "实例所属模型信息", example = "1024") + private String modelInfo; + + + @Schema(description = "算法id", example = "1024") + + private Integer algorithmId; + @Schema(description = "算法名称-缩写", example = "1024") + private String algorithmShortname; + @Schema(description = "算法名称", example = "1024") + private String algorithmName; + private String areaId; + private String plantShortname; + private String plantName; + private String areaShortname; + private String areaName; + private String unitShortname; + private String unitName; + private Integer plantId; + private String systemTypeShortname; + private String systemTypeName; + private Integer unitId; + private Integer systemTypeId; + + private String systemName; + private Integer systemId; + private String systemShortname; + + @Schema(description = "模式", example = "1024") + private String conditionName; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + /** + * 最后更新时间 + */ + private LocalDateTime updateTime; + /** + * 创建者,目前使用 SysUser 的 id 编号 + * + * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 + */ + + private String creator; + /** + * 更新者,目前使用 SysUser 的 id 编号 + * + * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 + */ + + private String updater; + /** + * 创建者-名称 + * + * + */ + + private String createName; + /** + * 更新者-名称 + * + * + */ + + private String updateName; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantSaveReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantSaveReqVO.java new file mode 100644 index 0000000..7ebc7c2 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantSaveReqVO.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.mzt.logapi.starter.annotation.DiffLogField; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; +import org.apache.poi.ss.formula.functions.T; + +import java.util.List; + +@Schema(description = "运行中心 - 模型实例创建/更新 Request VO") +@Data +public class InstantSaveReqVO extends InstantInfoVO { + @Schema(description = "实例编号", example = "1") + private Long id; + + + @Schema(description = "模型编号", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @NotNull(message = "模型编号不能为空") + @DiffLogField(name = "模型编号") + private Long modelId; + + @Schema(description = "模型实例信息", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @NotNull(message = "模型实例信息不能为空") + @DiffLogField(name = "模型实例信息") + @JsonIgnore + private String instantInfo; + + @Schema(description = "输入点号信息-原始数据", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @NotNull(message = "输入点号信息不能为空") + @DiffLogField(name = "输入点号信息") + private List pointInfo; + + @Schema(description = "实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotBlank(message = "实例名称不能为空") + @Size(max = 30, message = "实例名称长度不能超过 30 个字符") + @DiffLogField(name = "实例名称") + private String mpName; + + @Schema(description = "时间间隔", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "时间间隔不能为空") + @DiffLogField(name = "时间间隔") + private Long intervalTime; + + + @Schema(description = "是否可见", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @DiffLogField(name = "是否可见") + private Long visible; + + @Schema(description = "状态可见", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @DiffLogField(name = "状态") + private Long status; + + + @Schema(description = "是否存历史-是(存),否(不存)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "是否存历史不能为空") + @DiffLogField(name = "是否存历史") + private Long hisSto; + + + + @Schema(description = "计算组编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "计算组") + @DiffLogField(name = "计算组") + private Long calcGroup; + + + @Schema(description = "版本编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "版本编号") + @DiffLogField(name = "版本编号") + private Long modelVersionId; + + + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/pointInfo.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/pointInfo.java new file mode 100644 index 0000000..a4b39d4 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/pointInfo.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class pointInfo { + @JsonProperty(value="PointId") + @Schema(description = "点号", example = "id") + private String PointId; + + @JsonProperty(value="Description") + @Schema(description = "描述", example = "yudao") + private String Description; + + @JsonProperty(value="Unit") + @Schema(description = "单位", example = "yudao") + private String Unit; + + @JsonProperty(value="Type") + @Schema(description = "类型(输入-false;输出-true;ANN-空)", example = "yudao") + private Object Type; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java new file mode 100644 index 0000000..4172898 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.alert.controller.admin.model; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelRespVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionRespVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; +import cn.iocoder.yudao.module.alert.service.model.ModelService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Comparator; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "运行中心 - 模型") +@RestController +@RequestMapping("/alert/model") +@Validated +public class ModelController { + @Resource + private ModelService modelService; + + @GetMapping("/page") + @Operation(summary = "获得模型分页列表") + @PreAuthorize("@ss.hasPermission('run:model:query')") + public CommonResult> getModelPage(@Valid ModelPageReqVO pageReqVO) { + PageResult pageResult = modelService.getModelPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ModelRespVO.class)); + } + + @GetMapping("/version/list") + @Operation(summary = "获取模型版本列表", description = "用于前端的下拉选项") + public CommonResult> getModelVersionList(ModelVersionPageReqVO versionReqVO) { + versionReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = modelService.getModelVersionPage(versionReqVO).getList(); + list.sort(Comparator.comparing(ModelVersionDO::getVersion)); + return success(BeanUtils.toBean(list, ModelVersionRespVO.class)); + } + + +} 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 new file mode 100644 index 0000000..abe32b5 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelInfoVO.java @@ -0,0 +1,134 @@ +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +public class ModelInfoVO { + + public Para_ch_instant para; + + @JsonProperty(value="alarmmodelset") + public alarmmodelset alarmmodelset; + @Data + @NoArgsConstructor + public static class alarmmodelset + { + @JsonProperty(value="alarmname") + public String alarmname; + @JsonProperty(value="alarmcondition") + public String alarmcondition; + + } + @Data + @NoArgsConstructor + public static class Para_ch_instant + { + ///

+ /// + /// + @JsonProperty(value="Model_info") + + public Model_info_ch_instant Model_info; + + @JsonProperty(value="limit") + public double limit; + } + @Data + @NoArgsConstructor + public static class Model_info_ch_instant + { + /// + /// + /// + @JsonProperty(value="QCUL_95") + + public Double QCUL_95; + /// + /// + /// + @JsonProperty(value="QCUL_99") + + public Double QCUL_99 ; + /// + /// + /// + @JsonProperty(value="QCUL_95_line") + + public List QCUL_95_line; + /// + /// + /// + @JsonProperty(value="QCUL_99_line") + public List QCUL_99_line ; + /// + /// + /// + @JsonProperty(value="T2CUL_95") + public Double T2CUL_95 ; + /// + /// + /// + @JsonProperty(value="T2CUL_99") + + public Double T2CUL_99; + /// + /// + /// + @JsonProperty(value="T2CUL_95_line") + + public List T2CUL_95_line; + /// + /// + /// + @JsonProperty(value="T2CUL_99_line") + + public List T2CUL_99_line; + /// + /// + /// + @JsonProperty(value="Kesi_95") + + public Double Kesi_95; + /// + /// + /// + @JsonProperty(value="Kesi_99") + + public Double Kesi_99 ; + /// + /// + /// + @JsonProperty(value="Kesi_95_line") + + public List Kesi_95_line ; + /// + /// + /// + @JsonProperty(value="Kesi_99_line") + + public List Kesi_99_line; + /// + /// + /// + @JsonProperty(value="COV") + + public List> COV ; + /// + /// + /// + @JsonProperty(value="K") + + public int K ; + /// + /// + /// + @JsonProperty(value="R") + + public Double R ; + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelPageReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelPageReqVO.java new file mode 100644 index 0000000..d2aac03 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelPageReqVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "运行中心 - 模型实例分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class ModelPageReqVO extends PageParam { + + + @Schema(description = "模型名称", example = "yudao") + private String modelName; + + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelRespVO.java new file mode 100644 index 0000000..1f659bb --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelRespVO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "运行中心 - 模型分页 Request VO") +@Data +@ExcelIgnoreUnannotated +public class ModelRespVO { + @Schema(description = "模型id", example = "id") + private String id; + + + @Schema(description = "模型名称", example = "yudao") + private String modelName; + /** + * 机组名称 + */ + @Schema(description = "机组id", example = "1") + + private String unitId; + /** + * 机组名称 + */ + @Schema(description = "机组名称", example = "yudao") + + private String unitName; + + /** + * 算法名称 + */ + @Schema(description = "算法名称-简写", example = "yudao") + + private String algorithmName; + /** + * 模型信息 + */ + @Schema(description = "模型信息-长字符串", example = "yudao") + + private String modelInfo; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionPageReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionPageReqVO.java new file mode 100644 index 0000000..7ee3f1d --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionPageReqVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "运行中心 - 模型版本 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class ModelVersionPageReqVO extends PageParam { + @Schema(description = "模型id", example = "modelId") + private String modelId; + + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionRespVO.java new file mode 100644 index 0000000..0fd7076 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionRespVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.alert.controller.admin.model.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "运行中心 - 模型分页 Request VO") +@Data +@ExcelIgnoreUnannotated +public class ModelVersionRespVO { + @Schema(description = "版本id", example = "id") + private String id; + + @Schema(description = "所属模型id", example = "id") + + private String modelId; + + @Schema(description = "模型版本名称", example = "yudao") + private String version; + + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/calcgroup/CalcGroupDO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/calcgroup/CalcGroupDO.java new file mode 100644 index 0000000..d95bfff --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/calcgroup/CalcGroupDO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.alert.dal.dataobject.calcgroup; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@TableName(value = "group_view", autoResultMap = true) +@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class CalcGroupDO extends BaseDO { + private String id; + + /** + * 计算组名称 + */ + private String groupName; + /** + * 机组id + */ + private String unitId; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantDO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantDO.java new file mode 100644 index 0000000..e14e159 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantDO.java @@ -0,0 +1,83 @@ +package cn.iocoder.yudao.module.alert.dal.dataobject.instant; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.InstantInfoVO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; +import java.util.List; + +@TableName(value = "instant_view", autoResultMap = true) +@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class InstantDO extends BaseDO { + + private Long id; + + private String modelId; + + private String mpName; + + + private String instantInfo; + + + private Long intervalTime; + + + private Long hisSto; + + + private Long visible; + + private Long status; + + + private LocalDateTime setupTime; + + + private LocalDateTime newestUpdateTime; + + + private Long running; + + private String runningLog; + + private Long calcGroup; + + private String modelVersionId; + + private Long isUpdate; + + //所用模型的信息-json字符串 + private String modelInfo; + //视图额外增加的字段 + private String conditionInfo; + private String groupName; + private String modelName; + private String algorithmShortname; + private String algorithmName; + private String areaId; + private String plantShortname; + private String plantName; + private String areaShortname; + private String areaName; + private String unitShortname; + private String unitName; + private Long plantId; + private String systemTypeShortname; + private String systemTypeName; + private Long unitId; + private Long systemTypeId; + private String systemShortname; + private String systemName; + private Long algorithmId; + private Long systemId; + private String conditionName; + private String createName; + private String updateName; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantTableDO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantTableDO.java new file mode 100644 index 0000000..4283ad5 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantTableDO.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.alert.dal.dataobject.instant; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +@TableName(value = "instant_cfg", autoResultMap = true) +@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class InstantTableDO extends BaseDO { + private Long id; + + private String modelId; + + private String mpName; + + + private String instantInfo; + + + private Long intervalTime; + + + private Long hisSto; + + + private Long visible; + + private Long status; + + + private LocalDateTime setupTime; + + + private LocalDateTime newestUpdateTime; + + + private Long running; + + private String runningLog; + + private Long calcGroup; + + private String modelVersionId; + + private Long isUpdate; + + //所用模型的信息-json字符串 + private String modelInfo; + + private String createName; + private String updateName; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/model/ModelDO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/model/ModelDO.java new file mode 100644 index 0000000..c4fbe45 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/model/ModelDO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.alert.dal.dataobject.model; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +@TableName(value = "model_view", autoResultMap = true) +@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class ModelDO extends BaseDO { + private String id; + + /** + * 专业名称 + */ + private String systemId; + + + private String algorithmId; + + /** + * 模型名称 + */ + private String modelName; + /** + * 机组id + */ + private String unitId; + /** + * 机组名称 + */ + private String unitName; + + /** + * 算法名称 + */ + private String algorithmName; + /** + * 模型信息 + */ + private String modelInfo; + + + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/model/ModelVersionDO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/model/ModelVersionDO.java new file mode 100644 index 0000000..ddfbb4d --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/model/ModelVersionDO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.alert.dal.dataobject.model; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@TableName(value = "model_version", autoResultMap = true) +@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class ModelVersionDO extends BaseDO { + private String id; + + private String modelId; + + private String version; + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/calcgroup/CalcGroupMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/calcgroup/CalcGroupMapper.java new file mode 100644 index 0000000..6d74cf4 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/calcgroup/CalcGroupMapper.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.alert.dal.mysql.calcgroup; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.alert.controller.admin.calcgroup.vo.CalcGroupPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.calcgroup.CalcGroupDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CalcGroupMapper extends BaseMapperX { + + default PageResult selectPage(CalcGroupPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(CalcGroupDO::getUnitId, reqVO.getUnitId()) + + .orderByAsc(CalcGroupDO::getId)); + } + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/instant/InstantMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/instant/InstantMapper.java new file mode 100644 index 0000000..49d83d1 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/instant/InstantMapper.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.alert.dal.mysql.instant; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.InstantPageReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface InstantMapper extends BaseMapperX { + + + default PageResult selectPage(InstantPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(InstantDO::getMpName, reqVO.getMpName()) + .eqIfPresent(InstantDO::getIsUpdate,reqVO.getIsUpdate()) + .eqIfPresent(InstantDO::getRunning,reqVO.getRunning()) + .eqIfPresent(InstantDO::getRunningLog,reqVO.getRunningLog()) + .orderByAsc(InstantDO::getId)); + } + +default Long selectCountByRunningLog(String runningLog){ + return selectCount(InstantDO::getRunningLog,runningLog); +} + default Long selectCountByRunning(Long running){ + return selectCount(InstantDO::getRunning,running); + } + default Long selectCountByIsUpdate(Long isUpdate){ + return selectCount(InstantDO::getIsUpdate,isUpdate); + } + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/instant/InstantTableMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/instant/InstantTableMapper.java new file mode 100644 index 0000000..0601191 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/instant/InstantTableMapper.java @@ -0,0 +1,10 @@ +package cn.iocoder.yudao.module.alert.dal.mysql.instant; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantTableDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface InstantTableMapper extends BaseMapperX { +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/ModelMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/ModelMapper.java new file mode 100644 index 0000000..8a7e99d --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/ModelMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.alert.dal.mysql.model; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelPageReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ModelMapper extends BaseMapperX { + + default PageResult selectPage(ModelPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(ModelDO::getModelName, reqVO.getModelName()) + + .orderByAsc(ModelDO::getId)); + } + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/ModelVersionMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/ModelVersionMapper.java new file mode 100644 index 0000000..5cb6958 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/ModelVersionMapper.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.alert.dal.mysql.model; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionRespVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ModelVersionMapper extends BaseMapperX { + + default PageResult selectPage(ModelVersionPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ModelVersionDO::getModelId, reqVO.getModelId()) + + .orderByAsc(ModelVersionDO::getId)); + } + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/calcgroup/CalcGroupService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/calcgroup/CalcGroupService.java new file mode 100644 index 0000000..81f9d8f --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/calcgroup/CalcGroupService.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.alert.service.calcgroup; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.alert.controller.admin.calcgroup.vo.CalcGroupPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.calcgroup.CalcGroupDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; + +public interface CalcGroupService { + + /** + * 获得计算组不分页-主要用于下拉框 + * + * @param ReqVO 计算组查询 + * @return 计算组查询结果 + */ + PageResult getCalcGroupPage(CalcGroupPageReqVO ReqVO); +} + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/calcgroup/CalcGroupServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/calcgroup/CalcGroupServiceImpl.java new file mode 100644 index 0000000..43a16b5 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/calcgroup/CalcGroupServiceImpl.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.alert.service.calcgroup; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.alert.controller.admin.calcgroup.vo.CalcGroupPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.calcgroup.CalcGroupDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; +import cn.iocoder.yudao.module.alert.dal.mysql.calcgroup.CalcGroupMapper; +import cn.iocoder.yudao.module.alert.dal.mysql.model.ModelMapper; +import cn.iocoder.yudao.module.alert.dal.mysql.model.ModelVersionMapper; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class CalcGroupServiceImpl implements CalcGroupService { + @Resource + private CalcGroupMapper calcGroupMapper; + + @Override + public PageResult getCalcGroupPage (CalcGroupPageReqVO reqVO) { + return calcGroupMapper.selectPage(reqVO); + } + + + + +} 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 7f01df9..3b971d5 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 @@ -23,9 +23,9 @@ public interface EXAService { List getEXAListNow(List list) throws URISyntaxException, IOException; 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 9995b11..d1a73e8 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 @@ -78,12 +78,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/instant/InstantService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantService.java new file mode 100644 index 0000000..ad4665f --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantService.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.alert.service.instant; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.EXAHistoryReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.*; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; +import jakarta.validation.Valid; + +import java.io.IOException; +import java.util.List; + +public interface InstantService { + /** + * 获得模型实例分页 + * + * @param reqVO 模型实例分页查询 + * @return 模型实例分页结果 + */ + PageResult getInstantPage(InstantPageReqVO reqVO); + /** + * 获得模型实例所用测点信息 + * + * @param id 模型实例的id + * @return 模型实例测点列表结果list + */ + List getInstantPoint(Long id); + + List getInstantChart(InstantChartReqVO instantChartReqVO); + + + InstantDO getInstant(Long id); + + /** + * 更新模型实例 + * + * @param updateReqVO 更新模型实例 + */ + void updateInstant(@Valid InstantSaveReqVO updateReqVO); + + /** + * 获取各状态的模型实例数量 + * + * @param + */ + InstantCountRespVO getInstantCount(); + + + /** + * 创建实例 + * + * @param createReqVO 创建实例信息 + * @param type 实例类型--目前用不到 + * @return 实例编号 + */ + List createInstant(@Valid InstantSaveReqVO createReqVO, Integer type) throws IOException; + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantServiceImpl.java new file mode 100644 index 0000000..d91537d --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantServiceImpl.java @@ -0,0 +1,373 @@ +package cn.iocoder.yudao.module.alert.service.instant; + +import cn.hutool.core.util.ObjUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.EXAHistoryReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.Point; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.*; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelInfoVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantTableDO; +import cn.iocoder.yudao.module.alert.dal.mysql.instant.InstantMapper; +import cn.iocoder.yudao.module.alert.dal.mysql.instant.InstantTableMapper; +import cn.iocoder.yudao.module.alert.utils.EXAUtils; +import com.google.common.annotations.VisibleForTesting; +import com.mzt.logapi.context.LogRecordContext; +import com.mzt.logapi.service.impl.DiffParseFunction; +import com.mzt.logapi.starter.annotation.LogRecord; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.stereotype.Service; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import org.springframework.transaction.annotation.Transactional; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.*; + +@Service +@Slf4j +public class InstantServiceImpl implements InstantService { + @Resource + private InstantMapper instantMapper; + @Resource + private InstantTableMapper instantTableMapper; + EXAUtils exaUtils = new EXAUtils(); + @Value("${point.head}") + private String HEAD; + @Value("${EXA.ip}") + private String EXA_IP; + + @Override + @Transactional(rollbackFor = Exception.class) + @LogRecord(type = SYSTEM_INSTANT_TYPE, subType = SYSTEM_INSTANT_CREATE_SUB_TYPE, bizNo = "{{#role.id}}", + success = SYSTEM_INSTANT_CREATE_SUCCESS) + public List createInstant(InstantSaveReqVO createReqVO, Integer type) throws IOException { + // 1. 校验角色 +// validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null); + + //插入除instantInfo外的所有数据,获取到id + // 2. 插入到数据库-status、visible默认值 + InstantTableDO instant = BeanUtils.toBean(createReqVO, InstantTableDO.class) + .setStatus(ObjUtil.defaultIfNull(createReqVO.getStatus(), 1L)) + .setVisible(ObjUtil.defaultIfNull(createReqVO.getVisible(), 1L)); + + instantTableMapper.insert(instant); + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable("instant", instant); + + Long insertId = instant.getId(); + + //处理数据 +// inputInfo 各种转换 + List pointInfoList = createReqVO.getPointInfo(); + System.out.println(pointInfoList); + + List inputInfoList = new ArrayList<>(); + List inputNameList = new ArrayList<>(); + List unitList = new ArrayList<>(); + List outPointInfoList = new ArrayList<>(); + List timePointInfoList = new ArrayList<>(); + List biasPointInfoList = new ArrayList<>(); + List faultVariablePointList = new ArrayList<>(); + + List InstantPointList = new ArrayList<>(); + Point point = new Point(); + String outpoint = ""; + for (Integer i = 0; i < pointInfoList.size(); i++) { + inputInfoList.add(pointInfoList.get(i).getPointId()); + inputNameList.add(pointInfoList.get(i).getDescription()); + unitList.add(pointInfoList.get(i).getUnit()); + if (Objects.isNull(pointInfoList.get(i).getType()) || pointInfoList.get(i).getType().equals("1")) { + //构建重构值对象 + outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "R"; + point = new Point(); + point.setGroupName("warn"); + outPointInfoList.add(outpoint); + point.setItemName(outpoint); + point.setDescriptor(pointInfoList.get(i).getDescription() + "_重构值"); + point.setEngUnits(pointInfoList.get(i).getUnit()); + point.setItemType(5); + InstantPointList.add(point); + + //构建时间值对象 + outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "T"; + point = new Point(); + point.setGroupName("warn"); + timePointInfoList.add(outpoint); + point.setItemName(outpoint); + point.setDescriptor(pointInfoList.get(i).getDescription() + "_时间值"); + point.setEngUnits(pointInfoList.get(i).getUnit()); + point.setItemType(5); + InstantPointList.add(point); + + //构建偏差值对象 + outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "B"; + point = new Point(); + point.setGroupName("warn"); + biasPointInfoList.add(outpoint); + point.setItemName(outpoint); + point.setDescriptor(pointInfoList.get(i).getDescription() + "_偏差值"); + point.setEngUnits(pointInfoList.get(i).getUnit()); + point.setItemType(5); + InstantPointList.add(point); + + //构建状态值对象 + outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "F"; + point = new Point(); + point.setGroupName("warn"); + faultVariablePointList.add(outpoint); + point.setItemName(outpoint); + point.setDescriptor(pointInfoList.get(i).getDescription() + "_状态值"); + point.setEngUnits(pointInfoList.get(i).getUnit()); + point.setItemType(5); + InstantPointList.add(point); + } else { + outpoint = ""; + outPointInfoList.add(outpoint); + timePointInfoList.add(outpoint); + biasPointInfoList.add(outpoint); + faultVariablePointList.add(outpoint); + } + } + + + createReqVO.setId(insertId); + createReqVO.setStatus(instant.getStatus()); + createReqVO.setVisible(instant.getVisible()); + createReqVO.setInputInfo(inputInfoList); + createReqVO.setInputName(inputNameList); + createReqVO.setUnit(unitList); + createReqVO.setOutPointInfo(outPointInfoList); + createReqVO.setTimePointInfo(timePointInfoList); + createReqVO.setBiasPointInfo(biasPointInfoList); + createReqVO.setFaultVariablePointInfo(faultVariablePointList); + + + //构建模型实例ste值-没有unit参数 + outpoint = HEAD + "M" + String.format("%04d", insertId) + "_ste"; + //赋值-createReqVO + createReqVO.setModel_state(outpoint); + point = new Point(); + point.setGroupName("warn"); + point.setItemName(outpoint); + point.setDescriptor(instant.getMpName() + "_残差值"); + point.setItemType(5); + InstantPointList.add(point); + + //构建模型实例状态值-没有unit参数 + outpoint = HEAD + "M" + String.format("%04d", insertId) + "_status"; + //赋值-createReqVO + createReqVO.setModel_status(outpoint); + point = new Point(); + point.setGroupName("warn"); + point.setItemName(outpoint); + point.setDescriptor(instant.getMpName() + "_状态值"); + point.setItemType(5); + InstantPointList.add(point); + + +//更新instantInfo字段 + InstantSaveReqVO updateReqVO = new InstantSaveReqVO(); + updateReqVO.setId(instant.getId()); + updateReqVO.setInstantInfo(JsonUtils.toJsonString(createReqVO)); + + updateInstant(updateReqVO); + List resultList = new ArrayList(); + + resultList.add(instant.getId().toString()); + + + for (Point item : InstantPointList) { + // 每次循环输出list中的元素 + System.out.println(item.toString()); + //循环加点 + String ss = exaUtils.setPoint(EXA_IP, item); + resultList.add(ss); + } + return resultList; + } + + + @Override + public List getInstantPoint(Long id) { + List instantPointList = new ArrayList<>(); + InstantDO instant = instantMapper.selectById(id); + InstantInfoVO instantInfo = JsonUtils.parseObject(instant.getInstantInfo(), InstantInfoVO.class); + for (int i = 0; i < instantInfo.getInputInfo().size(); i++) { + InstantPointRespVO instantPointRespVO = new InstantPointRespVO(); + instantPointRespVO.setId(Long.valueOf(i + 1)); + instantPointRespVO.setInputInfo(instantInfo.getInputInfo().get(i)); + instantPointRespVO.setInputName(instantInfo.getInputName().get(i)); + instantPointRespVO.setUnit(instantInfo.getUnit().get(i)); + instantPointRespVO.setOutPointInfo(instantInfo.getOutPointInfo().get(i)); + instantPointRespVO.setBiasPointInfo(instantInfo.getBiasPointInfo().get(i)); + instantPointRespVO.setFaultVariablePointInfo(instantInfo.getFaultVariablePointInfo().get(i)); + instantPointList.add(instantPointRespVO); + } + + return instantPointList; + + + } + + + @Override + public List getInstantChart(InstantChartReqVO instantChartReqVO) { + + List result = new ArrayList<>(); + InstantDO instant = getInstant(instantChartReqVO.getId()); + + //构造第一个图表数据 + //获取数据库modelInfo字段,从而获取Kesi_99值 + ModelInfoVO modelInfoVO = JsonUtils.parseObject(instant.getModelInfo(), ModelInfoVO.class); + Double Kesi_99 = modelInfoVO.getPara().getModel_info().getKesi_99(); + + //获取数据库instantInfo字段 + InstantInfoVO instantInfoVO = JsonUtils.parseObject(instant.getInstantInfo(), InstantInfoVO.class); + instantChartReqVO.setItemName(instantInfoVO.getModel_state()); + List>> modelStateHistory = exaUtils.getHistorys(EXA_IP, instantChartReqVO); + + //构造Kesi_99常量值 + List> Kesi_99List = new ArrayList<>(); + + InstantChartRespVO instantChartRespVO = new InstantChartRespVO(); + for (int i = 0; i < modelStateHistory.get(0).size(); i++) { + List ke = new ArrayList<>(); + ke.add(modelStateHistory.get(0).get(i).get(0)); + ke.add(Kesi_99); + Kesi_99List.add(ke); + } + modelStateHistory.add(Kesi_99List); + instantChartRespVO.setSeriesData(modelStateHistory); + List legendList = Arrays.asList("SPE", "残差阈值"); + instantChartRespVO.setName(legendList); + instantChartRespVO.setTitle("模型残差"); + result.add(instantChartRespVO); + + //构造后面的图表数据 + for (int i = 0; i < instantInfoVO.getInputInfo().size(); i++) { + instantChartRespVO = new InstantChartRespVO(); + List pointList = new ArrayList<>(); + legendList = Arrays.asList("测量值", "重构值", "偏差值"); + pointList.add(instantInfoVO.getInputInfo().get(i)); + pointList.add(instantInfoVO.getOutPointInfo().get(i)); + pointList.add(instantInfoVO.getBiasPointInfo().get(i)); + + //读历史 + instantChartReqVO.setItemName(String.join(",", pointList)); +// exaHistoryReqVo.setItemName(",10HAG10CL101_3S,10HAG04CT609"); + List>> ss = exaUtils.getHistorys(EXA_IP, instantChartReqVO); + instantChartRespVO.setSeriesData(ss); + instantChartRespVO.setName(legendList); + instantChartRespVO.setTitle(instantInfoVO.getInputName().get(i)); + + result.add(instantChartRespVO); + } + return result; + } + + @Override + public PageResult getInstantPage(InstantPageReqVO reqVO) { + return instantMapper.selectPage(reqVO); + } + + + @Override + public InstantDO getInstant(Long id) { + return instantMapper.selectById(id); + } + + @Override + @CacheEvict(value = RedisKeyConstants.INSTANT, key = "#updateReqVO.id") + @LogRecord(type = SYSTEM_INSTANT_TYPE, subType = SYSTEM_INSTANT_UPDATE_SUB_TYPE, bizNo = "{{#updateReqVO.id}}", + success = SYSTEM_INSTANT_UPDATE_SUCCESS) + public void updateInstant(InstantSaveReqVO updateReqVO) { + //为简单--省去检验步骤,之后根据情况增加 + // 1.1 校验是否可以更新 + InstantDO instant = validateRoleForUpdate(updateReqVO.getId()); + // 1.2 校验角色的唯一字段是否重复 +// validateRoleDuplicate(updateReqVO.getName(), updateReqVO.getCode(), updateReqVO.getId()); + + // 2. 更新到数据库 + InstantTableDO updateObj = BeanUtils.toBean(updateReqVO, InstantTableDO.class); + instantTableMapper.updateById(updateObj); + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable(DiffParseFunction.OLD_OBJECT, BeanUtils.toBean(instant, InstantSaveReqVO.class)); + LogRecordContext.putVariable("instant", instant); + } + + /** + * 校验模型实例是否可以被更新 + * + * @param id 角色编号 + */ + @VisibleForTesting + InstantDO validateRoleForUpdate(Long id) { + InstantDO instant = instantMapper.selectById(id); + if (instant == null) { + throw exception(INSTANT_NOT_EXISTS); + } + + return instant; + } + + @Override + public InstantCountRespVO getInstantCount() { + InstantCountRespVO instantCountRespVO = new InstantCountRespVO(); + instantCountRespVO.setOutside(instantMapper.selectCountByRunningLog("模式外运行")); + instantCountRespVO.setStop(instantMapper.selectCountByRunningLog("模型已停运")); + instantCountRespVO.setNormal(instantMapper.selectCountByRunningLog("运行正常")); + instantCountRespVO.setFailure(instantMapper.selectCountByRunning(0L)); + instantCountRespVO.setUpdate(instantMapper.selectCountByIsUpdate(1L)); + + + return instantCountRespVO; + } + + +// /** +// * 校验角色的唯一字段是否重复 +// * +// * 1. 是否存在相同名字的角色 +// * 2. 是否存在相同编码的角色 +// * +// * @param name 角色名字 +// * @param code 角色额编码 +// * @param id 角色编号 +// */ +// @VisibleForTesting +// void validateRoleDuplicate(String name, String code, Long id) { +// // 0. 超级管理员,不允许创建 +// if (RoleCodeEnum.isSuperAdmin(code)) { +// throw exception(ROLE_ADMIN_CODE_ERROR, code); +// } +// // 1. 该 name 名字被其它角色所使用 +// RoleDO role = roleMapper.selectByName(name); +// if (role != null && !role.getId().equals(id)) { +// throw exception(ROLE_NAME_DUPLICATE, name); +// } +// // 2. 是否存在相同编码的角色 +// if (!StringUtils.hasText(code)) { +// return; +// } +// // 该 code 编码被其它角色所使用 +// role = roleMapper.selectByCode(code); +// if (role != null && !role.getId().equals(id)) { +// throw exception(ROLE_CODE_DUPLICATE, code); +// } +// } + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java new file mode 100644 index 0000000..fd07b47 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.alert.service.model; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionRespVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; + +import java.util.List; + +public interface ModelService { + /** + * 获得模型分页 + * + * @param reqVO 模型分页查询 + * @return 模型分页结果 + */ + PageResult getModelPage(ModelPageReqVO reqVO); + + + /** + * 获得模型版本不分页-主要用于下拉框 + * + * @param versionReqVO 模型版本查询 + * @return 模型版本结果 + */ + PageResult getModelVersionPage(ModelVersionPageReqVO versionReqVO); +} + diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelServiceImpl.java new file mode 100644 index 0000000..dfae61c --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelServiceImpl.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.alert.service.model; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; +import cn.iocoder.yudao.module.alert.dal.mysql.model.ModelMapper; +import cn.iocoder.yudao.module.alert.dal.mysql.model.ModelVersionMapper; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class ModelServiceImpl implements ModelService { + @Resource + private ModelMapper modelMapper; + @Resource + private ModelVersionMapper modelVersionMapper; + @Override + public PageResult getModelPage(ModelPageReqVO reqVO) { + return modelMapper.selectPage(reqVO); + } + + @Override + public PageResult getModelVersionPage (ModelVersionPageReqVO reqVO) { + return modelVersionMapper.selectPage(reqVO); + } + + + + +} 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..39940c3 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 @@ -154,11 +154,14 @@ 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"; +// String url = "http://"+EXA_IP+":9000/exawebapi/exatime/GetRawValueArrayFloat"; + String url = "http://"+EXA_IP+":9000/exawebapi/exatime/GetSamplingValueArrayFloat"; + + //创建HttpClient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); /* @@ -170,6 +173,8 @@ public class EXAUtils { uriBuilder.addParameter("ItemName", exaHistoryReqVo.getItemName()); uriBuilder.addParameter("StartingTime", exaHistoryReqVo.getStartTime()); uriBuilder.addParameter("TerminalTime", exaHistoryReqVo.getEndTime()); + uriBuilder.addParameter("SamplingPeriod", String.valueOf(1000*exaHistoryReqVo.getInterval())); + //创建请求对象 HttpGet httpGet = new HttpGet(uriBuilder.build()); @@ -203,14 +208,14 @@ public class EXAUtils { 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); results.add(result); diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index 268706f..e1e157f 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -169,4 +169,10 @@ public interface ErrorCodeConstants { ErrorCode EXA_POINT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_029_000, "导入EXA测点数据不能为空!"); + + // ========== 模型实例模块 3-001========== + ErrorCode INSTANT_NOT_EXISTS = new ErrorCode(3_001_000, "模型实例不存在"); + + + } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.java index 4ee3840..b537f4d 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.java @@ -30,4 +30,17 @@ public interface LogRecordConstants { String SYSTEM_ROLE_DELETE_SUB_TYPE = "删除角色"; String SYSTEM_ROLE_DELETE_SUCCESS = "删除了角色【{{#role.name}}】"; + + // =======================instant_cfg 模型实例 ======================= + + String SYSTEM_INSTANT_TYPE = "模型实例"; + String SYSTEM_INSTANT_CREATE_SUB_TYPE = "创建模型实例"; + String SYSTEM_INSTANT_CREATE_SUCCESS = "创建了模型实例【{{#instant.mpName}}】"; + String SYSTEM_INSTANT_UPDATE_SUB_TYPE = "更新模型实例"; + String SYSTEM_INSTANT_UPDATE_SUCCESS = "更新了模型实例【{{#instant.mpName}}】: {_DIFF{#updateReqVO}}"; + String SYSTEM_INSTANT_DELETE_SUB_TYPE = "删除模型实例"; + String SYSTEM_INSTANT_DELETE_SUCCESS = "删除了模型实例【{{#instant.mpName}}】"; + + + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java index 1cd5830..b721aac 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java @@ -24,6 +24,13 @@ public interface RedisKeyConstants { * VALUE 数据类型:String 角色信息 */ String ROLE = "role"; + /** + * 模型实例的缓存 + *

+ * KEY 格式:instant:{id} + * VALUE 数据类型:String 模型实例信息 + */ + String INSTANT = "instant"; /** * 用户拥有的角色编号的缓存 @@ -107,4 +114,5 @@ public interface RedisKeyConstants { */ String WXA_SUBSCRIBE_TEMPLATE = "wxa_subscribe_template"; + } diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 05c90a4..7ad2a68 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -271,4 +271,6 @@ pf4j: # pluginsDir: /tmp/ pluginsDir: ../plugins EXA: - ip: 47.98.32.148 \ No newline at end of file + ip: 47.98.32.148 +point: + head: XN. \ No newline at end of file From 4602c84790889d8fa750be955201620ae300393d Mon Sep 17 00:00:00 2001 From: Jiale Date: Tue, 27 May 2025 20:05:26 +0800 Subject: [PATCH 4/9] =?UTF-8?q?refactor(alert):=20=E9=87=8D=E6=9E=84=20EXA?= =?UTF-8?q?=20=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=E5=92=8C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=BB=93=E6=9E=84-=20=E6=9B=B4=E6=96=B0=20EXAControll?= =?UTF-8?q?er=E3=80=81EXAService=20=E5=92=8C=20EXAUtils=20=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95=E7=AD=BE=E5=90=8D=E5=92=8C=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=B1=BB=E5=9E=8B=20-=20=E5=9C=A8=20EXAHistoryReqVO?= =?UTF-8?q?=20=E4=B8=AD=E6=B7=BB=E5=8A=A0=20interval=20=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=20-=20=E4=BF=AE=E6=94=B9=20ModelInfo=20=E5=92=8C=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=20VO=20=E7=B1=BB=E7=9A=84=E5=AD=97=E6=AE=B5=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E5=92=8C=E7=B1=BB=E5=9E=8B=20-=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20ModelServiceImpl=20=E4=B8=AD=E7=9A=84=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/exa/EXAController.java | 4 +- .../admin/exa/vo/EXAHistoryReqVO.java | 2 + .../admin/model/model/ModelInfo.java | 10 ++- .../controller/admin/model/model/Point.java | 13 +-- .../admin/model/vo/ModelInfoVO.java | 7 +- .../admin/model/vo/ModelSimpleVO.java | 2 +- .../module/alert/service/exa/EXAService.java | 4 +- .../alert/service/exa/EXAServiceImpl.java | 4 +- .../service/model/impl/ModelServiceImpl.java | 8 +- .../yudao/module/alert/utils/EXAUtils.java | 88 +++++++------------ 10 files changed, 64 insertions(+), 78 deletions(-) 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请求 From 2e42c6fbf97c5c5d8fa5569837abd30ae8a4e17f Mon Sep 17 00:00:00 2001 From: Jiale Date: Tue, 27 May 2025 20:52:55 +0800 Subject: [PATCH 5/9] =?UTF-8?q?feat(model):=20=E6=B7=BB=E5=8A=A0=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E8=AE=AD=E7=BB=83=E6=97=B6=E9=97=B4=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E6=A8=A1=E5=9E=8B=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ModelInfoVO 中添加 TrainTime 类,用于记录模型训练时间相关信息 - 移除 ModelController 中未使用的 CreateModelInfo 导入 - 实现 ModelServiceImpl 中的 updateModelInfo 方法,使用 ModelCfg 对象更新模型信息 --- .../admin/model/ModelController.java | 1 - .../admin/model/vo/ModelInfoVO.java | 34 +++++++++++++++++++ .../service/model/impl/ModelServiceImpl.java | 7 +++- 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java index fb825dc..f06d08c 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.alert.controller.admin.model; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.alert.controller.admin.model.vo.CreateModelInfo; import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelInfoVO; import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelSelectQuery; import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelSimpleVO; 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 a54c1c9..b1f485c 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 @@ -46,11 +46,45 @@ public class ModelInfoVO { private List pointInfo; + private List trainTime; + private Integer algorithmId; private Integer systemId; private Integer sampling; + @Data + public static class TrainTime { + /** + * 开始时间 + */ + private String st; + + /** + * 结束时间 + */ + private String et; + + /** + * 时长(秒) + */ + private Integer duration; + + /** + * 采样数量 + */ + private Integer number; + + /** + * 清洗样本数 + */ + private Integer filter; + + /** + * 有效样本数 + */ + private Integer mode; + } } 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 9e2b92a..5c6addd 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 @@ -115,6 +115,11 @@ public class ModelServiceImpl implements ModelService { @Override public Boolean updateModelInfo(ModelInfoVO modelInfo) { - return false; + ModelCfg modelCfg = ModelCfg.builder() + .id(modelInfo.getId()) + .modelInfo(JsonUtils.toJsonString(modelInfo)) + .updateTime(new Date()) + .build(); + return modelCfgService.updateById(modelCfg); } } From fbd7a1ec6a224420e9347bbfac43a517b85e31c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E6=99=8B=E9=A3=9E?= <378266566@qq.com> Date: Wed, 28 May 2025 08:46:38 +0800 Subject: [PATCH 6/9] =?UTF-8?q?feat:=E8=BF=90=E8=A1=8C=E4=B8=AD=E5=BF=83-?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=AE=9E=E4=BE=8BV2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/calcgroup/CalcGroupController.java | 4 - .../admin/calcgroup/vo/CalcGroupRespVO.java | 4 +- .../admin/instant/vo/InstantPageReqVO.java | 2 +- .../admin/instant/vo/InstantRespVO.java | 6 +- .../admin/instant/vo/InstantSaveReqVO.java | 10 +-- .../admin/warn/vo/WarnPageReqVO.java | 16 ++++ .../controller/admin/warn/vo/WarnRespVO.java | 89 +++++++++++++++++++ .../admin/warn/vo/WarnSaveReqVO.java | 50 +++++++++++ .../controller/admin/warn/warnController.java | 59 ++++++++++++ .../dal/dataobject/instant/InstantDO.java | 4 +- .../dataobject/instant/InstantTableDO.java | 2 +- .../alert/dal/dataobject/warn/WarnDO.java | 68 ++++++++++++++ .../dal/dataobject/warn/WarnTableDO.java | 60 +++++++++++++ .../alert/dal/mysql/warn/WarnMapper.java | 20 +++++ .../alert/dal/mysql/warn/WarnTableMapper.java | 9 ++ .../alert/service/warn/WarnService.java | 30 +++++++ .../alert/service/warn/WarnServiceImpl.java | 81 +++++++++++++++++ .../system/enums/ErrorCodeConstants.java | 2 + .../system/enums/LogRecordConstants.java | 10 ++- .../system/dal/redis/RedisKeyConstants.java | 7 ++ 20 files changed, 511 insertions(+), 22 deletions(-) create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnPageReqVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnRespVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnSaveReqVO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/warnController.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/warn/WarnDO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/warn/WarnTableDO.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/warn/WarnMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/warn/WarnTableMapper.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/warn/WarnService.java create mode 100644 yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/warn/WarnServiceImpl.java diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/CalcGroupController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/CalcGroupController.java index 89e967e..6e1604f 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/CalcGroupController.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/CalcGroupController.java @@ -5,12 +5,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.alert.controller.admin.calcgroup.vo.CalcGroupPageReqVO; import cn.iocoder.yudao.module.alert.controller.admin.calcgroup.vo.CalcGroupRespVO; -import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageReqVO; -import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionRespVO; import cn.iocoder.yudao.module.alert.dal.dataobject.calcgroup.CalcGroupDO; -import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; import cn.iocoder.yudao.module.alert.service.calcgroup.CalcGroupService; -import cn.iocoder.yudao.module.alert.service.model.ModelService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupRespVO.java index 2dc2fb6..59d2f99 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupRespVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/calcgroup/vo/CalcGroupRespVO.java @@ -9,11 +9,11 @@ import lombok.Data; @ExcelIgnoreUnannotated public class CalcGroupRespVO { @Schema(description = "版本id", example = "id") - private String id; + private Long id; @Schema(description = "机组id", example = "id") - private String unitId; + private Long unitId; @Schema(description = "计算组名称", example = "yudao") private String groupName; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPageReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPageReqVO.java index 146d30c..640eea7 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPageReqVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantPageReqVO.java @@ -14,7 +14,7 @@ public class InstantPageReqVO extends PageParam { private Integer unitId; @Schema(description = "系统id", example = "yudao") - private Integer MODEL_ID; + private Integer modelId; @Schema(description = "模型名称", example = "yudao") private String mpName; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantRespVO.java index ba516c3..9d503f6 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantRespVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantRespVO.java @@ -14,10 +14,10 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ExcelIgnoreUnannotated public class InstantRespVO { @Schema(description = "实例id", example = "id") - private String id; + private Long id; @Schema(description = "模型id", example = "yudao") - private String modelId; + private Long modelId; @Schema(description = "实例名称", example = "yudao") private String mpName; @@ -55,7 +55,7 @@ public class InstantRespVO { private Long calcGroup; @Schema(description = "版本号", example = "1024") - private String modelVersionId; + private Long modelVersionId; private Integer isUpdate; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantSaveReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantSaveReqVO.java index 7ebc7c2..35ad0c2 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantSaveReqVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantSaveReqVO.java @@ -17,33 +17,30 @@ import java.util.List; @Data public class InstantSaveReqVO extends InstantInfoVO { @Schema(description = "实例编号", example = "1") + @NotNull(message = "实例编号不能为空") + private Long id; @Schema(description = "模型编号", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") - @NotNull(message = "模型编号不能为空") @DiffLogField(name = "模型编号") private Long modelId; @Schema(description = "模型实例信息", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") - @NotNull(message = "模型实例信息不能为空") @DiffLogField(name = "模型实例信息") @JsonIgnore private String instantInfo; @Schema(description = "输入点号信息-原始数据", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") - @NotNull(message = "输入点号信息不能为空") @DiffLogField(name = "输入点号信息") private List pointInfo; @Schema(description = "实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotBlank(message = "实例名称不能为空") @Size(max = 30, message = "实例名称长度不能超过 30 个字符") @DiffLogField(name = "实例名称") private String mpName; @Schema(description = "时间间隔", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "时间间隔不能为空") @DiffLogField(name = "时间间隔") private Long intervalTime; @@ -58,20 +55,17 @@ public class InstantSaveReqVO extends InstantInfoVO { @Schema(description = "是否存历史-是(存),否(不存)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "是否存历史不能为空") @DiffLogField(name = "是否存历史") private Long hisSto; @Schema(description = "计算组编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "计算组") @DiffLogField(name = "计算组") private Long calcGroup; @Schema(description = "版本编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "版本编号") @DiffLogField(name = "版本编号") private Long modelVersionId; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnPageReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnPageReqVO.java new file mode 100644 index 0000000..a13ef92 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnPageReqVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.alert.controller.admin.warn.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "运行中心 - 预警分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class WarnPageReqVO extends PageParam { + + @Schema(description = "实例id", example = "id") + private Long mpId; + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnRespVO.java new file mode 100644 index 0000000..338b900 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnRespVO.java @@ -0,0 +1,89 @@ +package cn.iocoder.yudao.module.alert.controller.admin.warn.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "运行中心 - 预警分页 Request VO") +@Data +@ExcelIgnoreUnannotated +public class WarnRespVO { + @Schema(description = "预警id", example = "id") + private Long id; + + @Schema(description = "实例id", example = "id") + + private Long mpId; + @Schema(description = "点号", example = "id") + + private String pointId; + + @Schema(description = "点号描述", example = "id") + + private String pointName; + @Schema(description = "实例名称", example = "id") + + private String mpName; + + + private String unit; + + + + private Long alarmLevel; + + //报警类型 + private String alarmModelRuleName; + + + private String warnConstraint; + private String warnConstraintName; + + + + private String timeDurationThreshold; + + //短信开关 + private Long shortMessageOnOff; + //光字牌 + private Long gzpOnOff; + + private String gzpName; + + //推送诊断 + private Long copyToDiagOnOff; + + //已有实例数量 + private Long number; + + //参与报警 + private Long warnStatus; + + + + private Double uplimit; + + private Double lowlimit; + + private String systemName; + + /** + * 创建者-名称 + * + * + */ + + private String createName; + /** + * 更新者-名称 + * + * + */ + + private String updateName; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnSaveReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnSaveReqVO.java new file mode 100644 index 0000000..a9e2e7b --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/vo/WarnSaveReqVO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.alert.controller.admin.warn.vo; + +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.InstantInfoVO; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.mzt.logapi.starter.annotation.DiffLogField; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; + +import java.util.List; + +@Schema(description = "运行中心 - 预警创建/更新 Request VO") +@Data +public class WarnSaveReqVO { + @Schema(description = "预警编号", example = "1") + @NotNull(message = "预警编号不能为空") + + private Long id; + + + + + @Schema(description = "参与报警", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @DiffLogField(name = "参与报警") + private Long warnStatus; + + private Long timeDurationThreshold; + + private Long alarmLevel; + private String warnConstraint; + private String warnConstraintName; + //短信开关 + private Long shortMessageOnOff; + //光字牌 + private Long gzpOnOff; + + private String gzpName; + //推送诊断 + private Long copyToDiagOnOff; + + //已有实例数量 + private Long number; + + private Double uplimit; + + private Double lowlimit; + + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/warnController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/warnController.java new file mode 100644 index 0000000..a4e5a3d --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/warn/warnController.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.alert.controller.admin.warn; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.InstantPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.InstantRespVO; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.InstantSaveReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.warn.vo.WarnPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.warn.vo.WarnRespVO; +import cn.iocoder.yudao.module.alert.controller.admin.warn.vo.WarnSaveReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.warn.WarnDO; +import cn.iocoder.yudao.module.alert.service.instant.InstantService; +import cn.iocoder.yudao.module.alert.service.warn.WarnService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "运行中心 - 预警") +@RestController +@RequestMapping("/alert/warn") +@Validated +public class warnController { + + + @Resource + private WarnService warnService; + + @GetMapping("/page") + @Operation(summary = "获得预警分页列表") + @PreAuthorize("@ss.hasPermission('run:warn:query')") + public CommonResult> getInstantPage(@Valid WarnPageReqVO pageReqVO) { + PageResult pageResult = warnService.getWarnPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, WarnRespVO.class)); + } + + @GetMapping("/get") + @Operation(summary = "获得预警信息") + @PreAuthorize("@ss.hasPermission('run:warn:query')") + public CommonResult getWarn(@RequestParam("id") Long id) { + WarnDO warn = warnService.getWarn(id); + return success(BeanUtils.toBean(warn, WarnRespVO.class)); + } + + @PutMapping("/update") + @Operation(summary = "修改预警") + @PreAuthorize("@ss.hasPermission('run:warn:update')") + public CommonResult updateInstant(@Valid @RequestBody WarnSaveReqVO updateReqVO) { + warnService.updateWarn(updateReqVO); + return success(true); + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantDO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantDO.java index e14e159..82f1fd0 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantDO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantDO.java @@ -18,7 +18,7 @@ public class InstantDO extends BaseDO { private Long id; - private String modelId; + private Long modelId; private String mpName; @@ -49,7 +49,7 @@ public class InstantDO extends BaseDO { private Long calcGroup; - private String modelVersionId; + private Long modelVersionId; private Long isUpdate; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantTableDO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantTableDO.java index 4283ad5..6902710 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantTableDO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/instant/InstantTableDO.java @@ -15,7 +15,7 @@ import java.time.LocalDateTime; public class InstantTableDO extends BaseDO { private Long id; - private String modelId; + private Long modelId; private String mpName; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/warn/WarnDO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/warn/WarnDO.java new file mode 100644 index 0000000..63e369b --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/warn/WarnDO.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.alert.dal.dataobject.warn; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +@TableName(value = "warn_online_cfg_view", autoResultMap = true) +@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class WarnDO extends BaseDO { + + private Long id; + + private Long mpId; + + private String pointId; + + + private String pointName; + + private String mpName; + + private String formula; + + private String unit; + +//报警类型-id + private Long alarmLevel; + //报警类型 + private String alarmModelRuleName; + + private String warnConstraint; + private String warnConstraintName; + + + + private Long timeDurationThreshold; + + //短信开关 + private Long shortMessageOnOff; + //光字牌 + private Long gzpOnOff; + private String gzpName; + //推送诊断 + private Long copyToDiagOnOff; + + //已有实例数量 + private Long number; + + //参与报警 + private Long warnStatus; + + + + private Double uplimit; + + private Double lowlimit; + + private String systemName; + + private String createName; + private String updateName; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/warn/WarnTableDO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/warn/WarnTableDO.java new file mode 100644 index 0000000..5af27f2 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/warn/WarnTableDO.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.module.alert.dal.dataobject.warn; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +@TableName(value = "warn_online_cfg", autoResultMap = true) +@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class WarnTableDO extends BaseDO { + + private Long id; + + private Long mpId; + + private String pointId; + + + private String pointName; + + private String mpName; + + private String formula; + + private String unit; + + //报警类型 + private String modelOrRule; + + + private String warnConstraint; + private String warnConstraintName; + private Long alarmLevel; + + + private Long timeDurationThreshold; + + //短信开关 + private Long shortMessageOnOff; + //光字牌 + private Long gzpOnOff; + private String gzpName; + //推送诊断 + private Long copyToDiagOnOff; + + //参与报警 + private Long warnStatus; + + + private Double uplimit; + + private Double lowlimit; + + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/warn/WarnMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/warn/WarnMapper.java new file mode 100644 index 0000000..943aa7c --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/warn/WarnMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.alert.dal.mysql.warn; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.InstantPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.warn.vo.WarnPageReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.warn.WarnDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface WarnMapper extends BaseMapperX { + default PageResult selectPage(WarnPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(WarnDO::getMpId, reqVO.getMpId().toString()) + .orderByAsc(WarnDO::getId)); + } + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/warn/WarnTableMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/warn/WarnTableMapper.java new file mode 100644 index 0000000..11d115c --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/warn/WarnTableMapper.java @@ -0,0 +1,9 @@ +package cn.iocoder.yudao.module.alert.dal.mysql.warn; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.alert.dal.dataobject.warn.WarnTableDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface WarnTableMapper extends BaseMapperX { +} \ No newline at end of file diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/warn/WarnService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/warn/WarnService.java new file mode 100644 index 0000000..e91e42a --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/warn/WarnService.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.alert.service.warn; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.InstantSaveReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.warn.vo.WarnPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.warn.vo.WarnSaveReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.warn.WarnDO; +import jakarta.validation.Valid; + +public interface WarnService { + /** + * 获得预警分页 + * + * @param reqVO 预警分页查询 + * @return 预警分页结果 + */ + PageResult getWarnPage(WarnPageReqVO reqVO); + + + WarnDO getWarn(Long id); + + /** + * 更新预警 + * + * @param updateReqVO 更新预警 + */ + void updateWarn(@Valid WarnSaveReqVO updateReqVO); + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/warn/WarnServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/warn/WarnServiceImpl.java new file mode 100644 index 0000000..8d4ad51 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/warn/WarnServiceImpl.java @@ -0,0 +1,81 @@ +package cn.iocoder.yudao.module.alert.service.warn; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.InstantSaveReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.warn.vo.WarnPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.warn.vo.WarnSaveReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.warn.WarnDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.warn.WarnTableDO; +import cn.iocoder.yudao.module.alert.dal.mysql.warn.WarnMapper; +import cn.iocoder.yudao.module.alert.dal.mysql.warn.WarnTableMapper; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import com.google.common.annotations.VisibleForTesting; +import com.mzt.logapi.context.LogRecordContext; +import com.mzt.logapi.service.impl.DiffParseFunction; +import com.mzt.logapi.starter.annotation.LogRecord; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.stereotype.Service; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.WARN_NOT_EXISTS; +import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.*; + +@Service +@Slf4j +public class WarnServiceImpl implements WarnService { + @Resource + private WarnMapper warnMapper; + @Resource + private WarnTableMapper warnTableMapper; + + + @Override + public PageResult getWarnPage(WarnPageReqVO reqVO) { + return warnMapper.selectPage(reqVO); + } + + + @Override + public WarnDO getWarn(Long id) { + return warnMapper.selectById(id); + } + @Override + @CacheEvict(value = RedisKeyConstants.WARN, key = "#updateReqVO.id") + @LogRecord(type = SYSTEM_WARN_TYPE, subType = SYSTEM_WARN_UPDATE_SUB_TYPE, bizNo = "{{#updateReqVO.id}}", + success = SYSTEM_WARN_UPDATE_SUCCESS) + public void updateWarn(WarnSaveReqVO updateReqVO) { + //为简单--省去检验步骤,之后根据情况增加 + // 1.1 校验是否可以更新 + WarnDO warn = validateWarnForUpdate(updateReqVO.getId()); + // 1.2 校验角色的唯一字段是否重复 +// validateRoleDuplicate(updateReqVO.getName(), updateReqVO.getCode(), updateReqVO.getId()); + + // 2. 更新到数据库 + WarnTableDO updateObj = BeanUtils.toBean(updateReqVO, WarnTableDO.class); + warnTableMapper.updateById(updateObj); + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable(DiffParseFunction.OLD_OBJECT, BeanUtils.toBean(warn, WarnSaveReqVO.class)); + LogRecordContext.putVariable("warn", warn); + } + + /** + * 校验预警是否可以被更新 + * + * @param id 编号 + */ + @VisibleForTesting + WarnDO validateWarnForUpdate(Long id) { + WarnDO warn = warnMapper.selectById(id); + if (warn == null) { + throw exception(WARN_NOT_EXISTS); + } + + return warn; + } + +} diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index e1e157f..8ba2a29 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -173,6 +173,8 @@ public interface ErrorCodeConstants { // ========== 模型实例模块 3-001========== ErrorCode INSTANT_NOT_EXISTS = new ErrorCode(3_001_000, "模型实例不存在"); + // ========== 预警模块 4-001========== + ErrorCode WARN_NOT_EXISTS = new ErrorCode(4_001_000, "预警不存在"); } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.java index b537f4d..225050d 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.java @@ -41,6 +41,14 @@ public interface LogRecordConstants { String SYSTEM_INSTANT_DELETE_SUB_TYPE = "删除模型实例"; String SYSTEM_INSTANT_DELETE_SUCCESS = "删除了模型实例【{{#instant.mpName}}】"; - + // =======================warn_online_cfg 预警 ======================= + + String SYSTEM_WARN_TYPE = "预警"; + String SYSTEM_WARN_CREATE_SUB_TYPE = "创建预警"; + String SYSTEM_WARN_CREATE_SUCCESS = "创建了预警【{{#warn.pointName}}】"; + String SYSTEM_WARN_UPDATE_SUB_TYPE = "更新预警"; + String SYSTEM_WARN_UPDATE_SUCCESS = "更新了模预警【{{#warn.pointName}}】: {_DIFF{#updateReqVO}}"; + String SYSTEM_WARN_DELETE_SUB_TYPE = "删除预警"; + String SYSTEM_WARN_DELETE_SUCCESS = "删除了预警【{{#warn.pointName}}】"; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java index b721aac..89b029c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java @@ -32,6 +32,13 @@ public interface RedisKeyConstants { */ String INSTANT = "instant"; + /** + * 预警的缓存 + *

+ * KEY 格式:warn:{id} + * VALUE 数据类型:String 模型实例信息 + */ + String WARN = "warn"; /** * 用户拥有的角色编号的缓存 *

From 04248d7516e3bc0e3f214dce0143669728f4b7ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E6=99=8B=E9=A3=9E?= <378266566@qq.com> Date: Wed, 28 May 2025 08:47:12 +0800 Subject: [PATCH 7/9] =?UTF-8?q?fix:=E8=BF=90=E8=A1=8C=E4=B8=AD=E5=BF=83-?= =?UTF-8?q?=E4=BF=AE=E6=94=B9model=E7=9B=B8=E5=85=B3=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ModelController.java => RunModelController.java} | 10 +++++----- .../controller/admin/model/vo/ModelVersionRespVO.java | 4 ++-- .../model/{ModelService.java => RunModelService.java} | 5 +---- ...{ModelServiceImpl.java => RunModelServiceImpl.java} | 2 +- 4 files changed, 9 insertions(+), 12 deletions(-) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/{ModelController.java => RunModelController.java} (87%) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/{ModelService.java => RunModelService.java} (86%) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/{ModelServiceImpl.java => RunModelServiceImpl.java} (94%) diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/RunModelController.java similarity index 87% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/RunModelController.java index 4172898..bd74afc 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/RunModelController.java @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageR import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionRespVO; import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelDO; import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; -import cn.iocoder.yudao.module.alert.service.model.ModelService; +import cn.iocoder.yudao.module.alert.service.model.RunModelService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; @@ -30,15 +30,15 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @RestController @RequestMapping("/alert/model") @Validated -public class ModelController { +public class RunModelController { @Resource - private ModelService modelService; + private RunModelService runModelService; @GetMapping("/page") @Operation(summary = "获得模型分页列表") @PreAuthorize("@ss.hasPermission('run:model:query')") public CommonResult> getModelPage(@Valid ModelPageReqVO pageReqVO) { - PageResult pageResult = modelService.getModelPage(pageReqVO); + PageResult pageResult = runModelService.getModelPage(pageReqVO); return success(BeanUtils.toBean(pageResult, ModelRespVO.class)); } @@ -46,7 +46,7 @@ public class ModelController { @Operation(summary = "获取模型版本列表", description = "用于前端的下拉选项") public CommonResult> getModelVersionList(ModelVersionPageReqVO versionReqVO) { versionReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = modelService.getModelVersionPage(versionReqVO).getList(); + List list = runModelService.getModelVersionPage(versionReqVO).getList(); list.sort(Comparator.comparing(ModelVersionDO::getVersion)); return success(BeanUtils.toBean(list, ModelVersionRespVO.class)); } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionRespVO.java index 0fd7076..9a2877f 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionRespVO.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelVersionRespVO.java @@ -9,11 +9,11 @@ import lombok.Data; @ExcelIgnoreUnannotated public class ModelVersionRespVO { @Schema(description = "版本id", example = "id") - private String id; + private Long id; @Schema(description = "所属模型id", example = "id") - private String modelId; + private Long modelId; @Schema(description = "模型版本名称", example = "yudao") private String version; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/RunModelService.java similarity index 86% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/RunModelService.java index fd07b47..6a38b57 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/RunModelService.java @@ -3,13 +3,10 @@ package cn.iocoder.yudao.module.alert.service.model; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelPageReqVO; import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionPageReqVO; -import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelVersionRespVO; import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelDO; import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; -import java.util.List; - -public interface ModelService { +public interface RunModelService { /** * 获得模型分页 * diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/RunModelServiceImpl.java similarity index 94% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelServiceImpl.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/RunModelServiceImpl.java index dfae61c..abd417c 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelServiceImpl.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/RunModelServiceImpl.java @@ -13,7 +13,7 @@ import org.springframework.stereotype.Service; @Service @Slf4j -public class ModelServiceImpl implements ModelService { +public class RunModelServiceImpl implements RunModelService { @Resource private ModelMapper modelMapper; @Resource From 5d8a4c282099deee617d7459267ddadac14eae79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E6=99=8B=E9=A3=9E?= <378266566@qq.com> Date: Wed, 28 May 2025 08:55:59 +0800 Subject: [PATCH 8/9] =?UTF-8?q?fix:=E8=BF=90=E8=A1=8C=E4=B8=AD=E5=BF=83-?= =?UTF-8?q?=E4=BF=AE=E6=94=B9model=E7=9B=B8=E5=85=B3=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/vo/{ModelInfoVO.java => RunModelInfoVO.java} | 2 +- .../module/alert/service/instant/InstantServiceImpl.java | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) rename yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/{ModelInfoVO.java => RunModelInfoVO.java} (99%) 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/RunModelInfoVO.java similarity index 99% rename from yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelInfoVO.java rename to yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/RunModelInfoVO.java index abe32b5..92536d2 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/RunModelInfoVO.java @@ -8,7 +8,7 @@ import java.util.List; @Data @NoArgsConstructor -public class ModelInfoVO { +public class RunModelInfoVO { public Para_ch_instant para; diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantServiceImpl.java index d91537d..3dcd609 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantServiceImpl.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantServiceImpl.java @@ -4,10 +4,9 @@ import cn.hutool.core.util.ObjUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.EXAHistoryReqVO; import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.Point; import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.*; -import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelInfoVO; +import cn.iocoder.yudao.module.alert.controller.admin.model.vo.RunModelInfoVO; import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantTableDO; import cn.iocoder.yudao.module.alert.dal.mysql.instant.InstantMapper; @@ -231,8 +230,8 @@ public class InstantServiceImpl implements InstantService { //构造第一个图表数据 //获取数据库modelInfo字段,从而获取Kesi_99值 - ModelInfoVO modelInfoVO = JsonUtils.parseObject(instant.getModelInfo(), ModelInfoVO.class); - Double Kesi_99 = modelInfoVO.getPara().getModel_info().getKesi_99(); + RunModelInfoVO runModelInfoVO = JsonUtils.parseObject(instant.getModelInfo(), RunModelInfoVO.class); + Double Kesi_99 = runModelInfoVO.getPara().getModel_info().getKesi_99(); //获取数据库instantInfo字段 InstantInfoVO instantInfoVO = JsonUtils.parseObject(instant.getInstantInfo(), InstantInfoVO.class); From 7db7e1710d2c39fba60958d4b0785a0223019ccf Mon Sep 17 00:00:00 2001 From: Jiale Date: Wed, 28 May 2025 09:09:31 +0800 Subject: [PATCH 9/9] =?UTF-8?q?feat(module-alert):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=9B=86=E5=9B=A2=E7=AE=A1=E7=90=86=E7=9B=B8=E5=85=B3=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E7=A0=81=E5=B9=B6=E4=BC=98=E5=8C=96=20EXA=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ErrorCodeConstants 中添加了三个新的集团管理相关错误码 - 优化了 EXAHistoryReqVO 类,调整了字段格式并设置了默认间隔时间 - 在 EXAService接口中新增了获取点选项列表的方法 --- .../alert/controller/admin/exa/vo/EXAHistoryReqVO.java | 8 ++++---- .../yudao/module/alert/service/exa/EXAService.java | 3 +++ .../yudao/module/system/enums/ErrorCodeConstants.java | 4 +++- 3 files changed, 10 insertions(+), 5 deletions(-) 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 87b8568..19f8e61 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 @@ -7,12 +7,12 @@ import lombok.Data; public class EXAHistoryReqVO { @Schema(description = "点号") - private String itemName; + private String itemName; @Schema(description = "开始时间") - private String startTime; + private String startTime; @Schema(description = "结束时间") - private String endTime; + private String endTime; @Schema(description = "间隔时间-以秒为单位传入,会自动转为毫秒") - private Long interval; + private Long interval = 300L; } 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 3b971d5..02c465b 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 @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.alert.service.exa; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.module.alert.controller.admin.exa.vo.*; +import cn.iocoder.yudao.module.alert.controller.admin.system.vo.PointOptionItemVO; import java.io.IOException; import java.net.URISyntaxException; @@ -33,4 +34,6 @@ public interface EXAService { public String deletePoint(String ItemName); EXAPointImportRespVO importPointList(List importPoints, boolean isUpdateSupport); + + List getPointOptionList(String search); } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index 8ba2a29..bba7a0b 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -176,5 +176,7 @@ public interface ErrorCodeConstants { // ========== 预警模块 4-001========== ErrorCode WARN_NOT_EXISTS = new ErrorCode(4_001_000, "预警不存在"); - + ErrorCode Company_NOT_EXISTS = new ErrorCode(1_002_30_000,"集团不存在"); + ErrorCode Company_DISABLED = new ErrorCode(1_002_30_001,"集团被禁用"); + ErrorCode Company_NAME_DUPLICATE = new ErrorCode(1_002_31_000,"集团名称已存在"); }