diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/Point.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/Point.java index 5cd03a6..cb0df87 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/Point.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/exa/vo/Point.java @@ -27,29 +27,29 @@ public class Point { public String GroupName; @ExcelProperty("数据类型") - public Integer ItemType; + public Integer ItemType=5; @ExcelProperty("描述") @Schema(description = "描述", example = "芋道") - public String Descriptor; + public String Descriptor=""; @ExcelProperty("单位") @Schema(description = "单位", example = "芋道") - public String EngUnits; + public String EngUnits=""; @ExcelProperty("数据来源") - public String Source; + public String Source="EXA"; @ExcelProperty("自动保存") - public Boolean AutoSave; - public Double UpperBound; - public Double LowerBound; - public Double UpperLimit; - public Double LowerLimit; - public Double UpperUpperLimit; - public Double LowerLowerLimit; - public String Comment; - public String Note; + public Boolean AutoSave=true; + public Double UpperBound=9999999.0; + public Double LowerBound=-9999999.0; + public Double UpperLimit=9999999.0; + public Double LowerLimit=-9999999.0; + public Double UpperUpperLimit=9999999.0; + public Double LowerLowerLimit=-9999999.0; + public String Comment=""; + public String Note=""; } 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 index 6ebbf00..22ab714 100644 --- 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 @@ -8,6 +8,7 @@ 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.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; @@ -101,6 +102,13 @@ public class InstantController { return success(instantService.createInstant(createReqVO, null)); } - + @DeleteMapping("/delete") + @Operation(summary = "删除模型实例") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('run:instant:delete')") + public CommonResult deleteInstant(@RequestParam("id") Long id) { + instantService.deleteInstant(id); + return success(true); + } } 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 9d503f6..9e489d3 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 @@ -57,6 +57,9 @@ public class InstantRespVO { @Schema(description = "版本号", example = "1024") private Long modelVersionId; + @Schema(description = "版本名称", example = "1024") + private String modelVersion; + 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 35ad0c2..c7d54b3 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 @@ -69,6 +69,8 @@ public class InstantSaveReqVO extends InstantInfoVO { @DiffLogField(name = "版本编号") private Long modelVersionId; - + @Schema(description = "版本编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @DiffLogField(name = "版本编号") + private String modelVersion; } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/RunModelController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/RunModelController.java index bd74afc..3c7fe7c 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/RunModelController.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/RunModelController.java @@ -42,6 +42,14 @@ public class RunModelController { return success(BeanUtils.toBean(pageResult, ModelRespVO.class)); } + @GetMapping("/version/page") + @Operation(summary = "获得模型版本分页列表") + @PreAuthorize("@ss.hasPermission('run:model:query')") + public CommonResult> getModelVersionPage(@Valid ModelVersionPageReqVO pageReqVO) { + PageResult pageResult = runModelService.getModelVersionPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ModelVersionRespVO.class)); + } + @GetMapping("/version/list") @Operation(summary = "获取模型版本列表", description = "用于前端的下拉选项") public CommonResult> getModelVersionList(ModelVersionPageReqVO versionReqVO) { 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 index 7ee3f1d..cd120fd 100644 --- 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 @@ -11,6 +11,7 @@ import lombok.EqualsAndHashCode; public class ModelVersionPageReqVO extends PageParam { @Schema(description = "模型id", example = "modelId") private String modelId; - + @Schema(description = "模型名称", example = "modelName") + 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/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 9a2877f..b1756c5 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 @@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.time.LocalDateTime; + @Schema(description = "运行中心 - 模型分页 Request VO") @Data @ExcelIgnoreUnannotated @@ -17,6 +19,20 @@ public class ModelVersionRespVO { @Schema(description = "模型版本名称", example = "yudao") private String version; + @Schema(description = "版本名称", example = "yudao") + private String conditionName; + /** + * 模型名称 + */ + private String modelName; + + /** + * 模型信息 + */ + private String modelInfo; + private String algorithmName; + private String unitName; + private LocalDateTime updateTime; } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/report/ReportController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/report/ReportController.java new file mode 100644 index 0000000..7a9e8d1 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/report/ReportController.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.alert.controller.admin.report; + +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.report.vo.ReportPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.report.vo.ReportRespVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.instant.InstantDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.report.ReportDO; +import cn.iocoder.yudao.module.alert.service.instant.InstantService; +import cn.iocoder.yudao.module.alert.service.report.ReportService; +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.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "运行中心 - 模型评估报告") +@RestController +@RequestMapping("/alert/assess") +@Validated +public class ReportController { + + @Resource + private ReportService reportService; + + @GetMapping("/page") + @Operation(summary = "获得评估报告列表") + @PreAuthorize("@ss.hasPermission('run:instant:query')") + public CommonResult> getReportPage(@Valid ReportPageReqVO pageReqVO) { + PageResult pageResult = reportService.getReportPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ReportRespVO.class)); + } + + @GetMapping("/list") + @Operation(summary = "获得评估报告列表--不分页") + @PreAuthorize("@ss.hasPermission('run:instant:query')") + public CommonResult> getReportList(@Valid ReportPageReqVO pageReqVO) { + List listResult = reportService.getReportList(pageReqVO); + return success(BeanUtils.toBean(listResult, ReportRespVO.class)); + } + + + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/report/vo/ReportPageReqVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/report/vo/ReportPageReqVO.java new file mode 100644 index 0000000..6872413 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/report/vo/ReportPageReqVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.alert.controller.admin.report.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 ReportPageReqVO extends PageParam { + + private String id; + + /** + * 模型id + */ + private String modelId; + + + private String version; + + /** + * 分数 + */ + private String score; +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/report/vo/ReportRespVO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/report/vo/ReportRespVO.java new file mode 100644 index 0000000..ea121ed --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/report/vo/ReportRespVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.alert.controller.admin.report.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "运行中心 - 评估报告 Response VO") +@Data +public class ReportRespVO { + + private String id; + + /** + * 模型id + */ + private String modelId; + + + private String version; + + /** + * 报告长字符串 + */ + private String report; + /** + * 分数 + */ + private String score; +} 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 index a9e2e7b..f3627c4 100644 --- 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 @@ -15,13 +15,37 @@ import java.util.List; public class WarnSaveReqVO { @Schema(description = "预警编号", example = "1") @NotNull(message = "预警编号不能为空") - private Long id; + @Schema(description = "实例编号", example = "1") + @NotNull(message = "实例编号不能为空") + private Long mpId; + + @Schema(description = "点号", example = "1") + @NotNull(message = "点号不能为空") + private String pointId; + + @Schema(description = "点号", example = "1") + @NotNull(message = "点号不能为空") + private String pointName; + + @Schema(description = "光子牌", example = "1") + @NotNull(message = "光子牌不能为空") + private String gzpName; + + @Schema(description = "报警表达式", example = "1") + @NotNull(message = "报警表达式不能为空") + private String equation; + @Schema(description = "输出点号", example = "1") + @NotNull(message = "输出点号不能为空") + private String outputPoint; + @Schema(description = "单位", example = "1") + @NotNull(message = "单位不能为空") + private String unit; - @Schema(description = "参与报警", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @Schema(description = "参与报警", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @DiffLogField(name = "参与报警") private Long warnStatus; @@ -33,17 +57,23 @@ public class WarnSaveReqVO { //短信开关 private Long shortMessageOnOff; //光字牌 - private Long gzpOnOff; + private Long gzpOnOff=1L; + + private Long warnKey=1L; + private Long warnId=1L; - private String gzpName; //推送诊断 private Long copyToDiagOnOff; //已有实例数量 private Long number; + @Schema(description = "上限", example = "1") + @NotNull(message = "上限不能为空") private Double uplimit; + @Schema(description = "下限", example = "1") + @NotNull(message = "下限不能为空") private Double lowlimit; 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 82f1fd0..ee1886b 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 @@ -80,4 +80,7 @@ public class InstantDO extends BaseDO { private String conditionName; private String createName; private String updateName; + +private String modelVersion; + } 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 6902710..eacea32 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 @@ -48,6 +48,8 @@ public class InstantTableDO extends BaseDO { private String modelVersionId; + private String modelVersion; + private Long isUpdate; //所用模型的信息-json字符串 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 index ddfbb4d..d7c54d9 100644 --- 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 @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.alert.dal.dataobject.model; +import cn.hutool.core.date.DateTime; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableName; @@ -7,7 +8,9 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; -@TableName(value = "model_version", autoResultMap = true) +import java.time.LocalDateTime; + +@TableName(value = "model_version_view", autoResultMap = true) @KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) @@ -16,6 +19,29 @@ public class ModelVersionDO extends BaseDO { private String modelId; + /** + * 版本号 + */ private String version; + /** + * 版本名称 + */ + private String conditionName; + + /** + * 模型名称 + */ + private String modelName; + + /** + * 模型信息 + */ + private String modelInfo; + + private String algorithmName; + private String unitName; + private LocalDateTime updateTime; + + } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/report/Report.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/report/Report.java new file mode 100644 index 0000000..81ca84b --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/report/Report.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.alert.dal.dataobject.report; + +import lombok.Data; + +import java.util.List; + +@Data +public class Report { + + public List assess; + + @Data + public static class point + { + public String PointId; + public double amplitude; + public int index; + } + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/report/ReportDO.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/report/ReportDO.java new file mode 100644 index 0000000..687f266 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/dataobject/report/ReportDO.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.alert.dal.dataobject.report; + +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; + +/** + * 评估报告 DO + * + * @author 芋道源码 + */ + +@TableName(value = "assess_report_cfg", autoResultMap = true) +@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@EqualsAndHashCode(callSuper = true) +@Data +public class ReportDO extends BaseDO { + + + private String id; + + /** + * 模型id + */ + private String modelId; + + + private String version; + + /** + * 报告长字符串 + */ + private String report; + /** + * 分数 + */ + private String score; + +} 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 index 5af27f2..8e5a42a 100644 --- 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 @@ -24,11 +24,12 @@ public class WarnTableDO extends BaseDO { private String pointName; private String mpName; - + private String outputPoint; private String formula; private String unit; + private String equation; //报警类型 private String modelOrRule; @@ -52,6 +53,9 @@ public class WarnTableDO extends BaseDO { private Long warnStatus; + private Long warnKey; + private Long warnId; + 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/model/ModelMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/ModelMapper.java index 8a7e99d..cad9a1d 100644 --- 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 @@ -17,4 +17,7 @@ public interface ModelMapper extends BaseMapperX { .orderByAsc(ModelDO::getId)); } + + + } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/VersionMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/VersionMapper.java new file mode 100644 index 0000000..798eb57 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/model/VersionMapper.java @@ -0,0 +1,33 @@ +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.ModelVersionPageReqVO; +import cn.iocoder.yudao.module.alert.dal.dataobject.model.ModelVersionDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface VersionMapper extends BaseMapperX { + /** + * 获取模型版本列表 + * + * @param reqVO 请求参数 + * @return 模型版本列表 + */ + default PageResult selectPage(ModelVersionPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ModelVersionDO::getModelId, reqVO.getModelId()) + .likeIfPresent(ModelVersionDO::getModelName, reqVO.getModelName()) + .orderByAsc(ModelVersionDO::getUpdateTime) + .orderByAsc(ModelVersionDO::getId)); + } + default ModelVersionDO selectByModelId(ModelVersionPageReqVO reqVO) { + + //根据modelid查询modelversion + ModelVersionDO modelVersionDO = selectOne(new LambdaQueryWrapperX() + .eq(ModelVersionDO::getModelId, reqVO.getModelId())); + return modelVersionDO; + } + +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/report/ReportMapper.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/report/ReportMapper.java new file mode 100644 index 0000000..cf3c0d5 --- /dev/null +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/dal/mysql/report/ReportMapper.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.alert.dal.mysql.report; + +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.ModelVersionPageReqVO; +import cn.iocoder.yudao.module.alert.controller.admin.report.vo.ReportPageReqVO; +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.dataobject.report.ReportDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface ReportMapper extends BaseMapperX { + /** + * 获取评估报告列表 + * + * @param reqVO 请求参数 + * @return 评估报告列表 + */ + default PageResult selectPage(ReportPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ReportDO::getModelId, reqVO.getModelId()) + .eqIfPresent(ReportDO::getVersion, reqVO.getVersion()) + .orderByAsc(ReportDO::getId)); + } + + /** + * 获取评估报告列表 + * + * @param reqVO 请求参数 + * @return 评估报告列表 + */ + default List selectList(ReportPageReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ReportDO::getModelId, reqVO.getModelId()) + .eqIfPresent(ReportDO::getVersion, reqVO.getVersion()) + .orderByAsc(ReportDO::getId)); + } + + + /** + * 根据模型ID和版本获取评估报告 + * + * @param modelId 模型ID + * @param version 版本号 + * @return 评估报告 + */ + default ReportDO selectByModelIdAndVersion(Long modelId, String version) { + return selectOne(new LambdaQueryWrapperX() + .eq(ReportDO::getModelId, modelId) + .eq(ReportDO::getVersion, version)); + } +} 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 index ad4665f..782a664 100644 --- 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 @@ -53,5 +53,11 @@ public interface InstantService { * @return 实例编号 */ List createInstant(@Valid InstantSaveReqVO createReqVO, Integer type) throws IOException; + /** + * 删除实例 + * + * @param id 实例编号 + */ + void deleteInstant(Long id); } 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 3dcd609..b0f7c11 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 @@ -1,17 +1,28 @@ package cn.iocoder.yudao.module.alert.service.instant; import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; 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.Point; import cn.iocoder.yudao.module.alert.controller.admin.instant.vo.*; import cn.iocoder.yudao.module.alert.controller.admin.model.vo.RunModelInfoVO; +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.instant.InstantTableDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.report.Report; +import cn.iocoder.yudao.module.alert.dal.dataobject.report.ReportDO; +import cn.iocoder.yudao.module.alert.dal.dataobject.warn.WarnTableDO; 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.dal.mysql.model.VersionMapper; +import cn.iocoder.yudao.module.alert.dal.mysql.report.ReportMapper; +import cn.iocoder.yudao.module.alert.dal.mysql.warn.WarnTableMapper; +import cn.iocoder.yudao.module.alert.service.warn.WarnService; import cn.iocoder.yudao.module.alert.utils.EXAUtils; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.google.common.annotations.VisibleForTesting; import com.mzt.logapi.context.LogRecordContext; import com.mzt.logapi.service.impl.DiffParseFunction; @@ -25,6 +36,7 @@ import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; import org.springframework.transaction.annotation.Transactional; import java.io.IOException; +import java.time.Instant; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -41,6 +53,15 @@ public class InstantServiceImpl implements InstantService { private InstantMapper instantMapper; @Resource private InstantTableMapper instantTableMapper; + + @Resource + private ReportMapper reportMapper; + @Resource + private VersionMapper versionMapper; + @Resource + + private WarnService warnService; + EXAUtils exaUtils = new EXAUtils(); @Value("${point.head}") private String HEAD; @@ -55,6 +76,12 @@ public class InstantServiceImpl implements InstantService { // 1. 校验角色 // validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null); + + + //根据modelversionid查询modelversion,录入instantcfg表的modelversion字段 + String modelVersion = versionMapper.selectById(createReqVO.getModelVersionId()).getVersion(); + createReqVO.setModelVersion(modelVersion); + //插入除instantInfo外的所有数据,获取到id // 2. 插入到数据库-status、visible默认值 InstantTableDO instant = BeanUtils.toBean(createReqVO, InstantTableDO.class) @@ -92,7 +119,7 @@ public class InstantServiceImpl implements InstantService { //构建重构值对象 outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "R"; point = new Point(); - point.setGroupName("warn"); + point.setGroupName("WARN"); outPointInfoList.add(outpoint); point.setItemName(outpoint); point.setDescriptor(pointInfoList.get(i).getDescription() + "_重构值"); @@ -103,7 +130,7 @@ public class InstantServiceImpl implements InstantService { //构建时间值对象 outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "T"; point = new Point(); - point.setGroupName("warn"); + point.setGroupName("WARN"); timePointInfoList.add(outpoint); point.setItemName(outpoint); point.setDescriptor(pointInfoList.get(i).getDescription() + "_时间值"); @@ -114,7 +141,7 @@ public class InstantServiceImpl implements InstantService { //构建偏差值对象 outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "B"; point = new Point(); - point.setGroupName("warn"); + point.setGroupName("WARN"); biasPointInfoList.add(outpoint); point.setItemName(outpoint); point.setDescriptor(pointInfoList.get(i).getDescription() + "_偏差值"); @@ -125,7 +152,7 @@ public class InstantServiceImpl implements InstantService { //构建状态值对象 outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "F"; point = new Point(); - point.setGroupName("warn"); + point.setGroupName("WARN"); faultVariablePointList.add(outpoint); point.setItemName(outpoint); point.setDescriptor(pointInfoList.get(i).getDescription() + "_状态值"); @@ -159,7 +186,7 @@ public class InstantServiceImpl implements InstantService { //赋值-createReqVO createReqVO.setModel_state(outpoint); point = new Point(); - point.setGroupName("warn"); + point.setGroupName("WARN"); point.setItemName(outpoint); point.setDescriptor(instant.getMpName() + "_残差值"); point.setItemType(5); @@ -170,7 +197,7 @@ public class InstantServiceImpl implements InstantService { //赋值-createReqVO createReqVO.setModel_status(outpoint); point = new Point(); - point.setGroupName("warn"); + point.setGroupName("WARN"); point.setItemName(outpoint); point.setDescriptor(instant.getMpName() + "_状态值"); point.setItemType(5); @@ -195,10 +222,55 @@ public class InstantServiceImpl implements InstantService { String ss = exaUtils.setPoint(EXA_IP, item); resultList.add(ss); } + createWarn1(instant, createReqVO); return resultList; } + public void createWarn1(InstantTableDO instant, InstantSaveReqVO createReqVO) { + //调用预警表和评估报告表的mapper + // 从instant对象获取modelid和version字段 + Long modelId = instant.getModelId(); + String version = instant.getModelVersion(); + +// modelId=11L; +// version="v-test"; + + // 调用reportMapper获取对应记录(假设存在selectByModelIdAndVersion方法) + ReportDO report = reportMapper.selectByModelIdAndVersion(modelId, version); + + // 如果report不为空且report字段不为空,则解析为Report类 + if (report != null && StrUtil.isNotBlank(report.getReport())) { + Report reportObj = JsonUtils.parseObject(report.getReport(), Report.class); + // 此处可根据业务需求处理解析后的Report对象(如后续预警逻辑) + // 循环getInputInfo构建并插入预警记录 + for (int j = 0; j < reportObj.getAssess().size(); j++) { + + + WarnSaveReqVO warnSaveReqVO = new WarnSaveReqVO(); + // 设置预警ID(假设insertId为当前预警主记录ID) + // warn.setId(insertId); + //设置实例id + warnSaveReqVO.setMpId(instant.getId()); + warnSaveReqVO.setPointId(createReqVO.getInputInfo().get(reportObj.getAssess().get(j).getIndex())); + warnSaveReqVO.setPointName(createReqVO.getInputName().get(reportObj.getAssess().get(j).getIndex())); + warnSaveReqVO.setGzpName(createReqVO.getInputName().get(reportObj.getAssess().get(j).getIndex())); + warnSaveReqVO.setEquation("[" + createReqVO.getBiasPointInfo().get(reportObj.getAssess().get(j).getIndex()) + "]>UPLIMIT or [" + createReqVO.getBiasPointInfo().get(reportObj.getAssess().get(j).getIndex()) + "] getInstantPoint(Long id) { List instantPointList = new ArrayList<>(); @@ -369,4 +441,37 @@ public class InstantServiceImpl implements InstantService { // } // } + + @Override + @Transactional(rollbackFor = Exception.class) + @LogRecord(type = SYSTEM_INSTANT_TYPE, subType = SYSTEM_INSTANT_DELETE_SUB_TYPE, bizNo = "{{#id}}", + success = SYSTEM_INSTANT_DELETE_SUCCESS) + public void deleteInstant(Long id) { + // 1. 校验用户存在 + InstantDO instant = validateInstantExists(id); + + // 2.1 删除用户 + instantTableMapper.deleteById(id); +// // 2.2 删除用户关联数据 +// permissionService.processUserDeleted(id); +// // 2.2 删除用户岗位 +// userPostMapper.deleteByUserId(id); + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable("instant", instant); + } + + @VisibleForTesting + InstantDO validateInstantExists(Long id) { + if (id == null) { + return null; + } + InstantDO instant = instantMapper.selectById(id); + if (instant == null) { + throw exception(INSTANT_NOT_EXISTS); + } + return instant; + } + + } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/RunModelServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/RunModelServiceImpl.java index d2b634c..02a8dab 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/RunModelServiceImpl.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/RunModelServiceImpl.java @@ -1,16 +1,13 @@ package cn.iocoder.yudao.module.alert.service.model; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -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.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.dao.domain.ModelVersion; +import cn.iocoder.yudao.module.alert.dal.mysql.model.VersionMapper; import cn.iocoder.yudao.module.alert.dao.service.ModelVersionService; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -22,24 +19,33 @@ import org.springframework.stereotype.Service; public class RunModelServiceImpl implements RunModelService { private final ModelVersionService modelVersionService; + + @Resource + private ModelMapper modelMapper; + @Resource + private VersionMapper versionMapper; @Override public PageResult getModelPage(ModelPageReqVO reqVO) { - Page page = modelVersionService.page(new Page<>(reqVO.getPageNo(), reqVO.getPageSize()), - new LambdaQueryWrapperX() - .likeIfPresent(ModelVersion::getModelName, reqVO.getModelName()) - .orderByAsc(ModelVersion::getId)); - return new PageResult<>(BeanUtils.toBean(page.getRecords(), ModelDO.class), - page.getTotal()); +// Page page = modelVersionService.page(new Page<>(reqVO.getPageNo(), reqVO.getPageSize()), +// new LambdaQueryWrapperX() +// .likeIfPresent(ModelVersion::getModelName, reqVO.getModelName()) +// .orderByAsc(ModelVersion::getId)); +// return new PageResult<>(BeanUtils.toBean(page.getRecords(), ModelDO.class), +// page.getTotal()); + return modelMapper.selectPage(reqVO); } @Override - public PageResult getModelVersionPage (ModelVersionPageReqVO reqVO) { - Page page = modelVersionService.page(new Page<>(reqVO.getPageNo(), reqVO.getPageSize()), - new LambdaQueryWrapperX() - .eqIfPresent(ModelVersion::getModelId, reqVO.getModelId()) - .orderByAsc(ModelVersion::getId)); - return new PageResult<>(BeanUtils.toBean(page.getRecords(), ModelVersionDO.class), - page.getTotal()); + public PageResult getModelVersionPage(ModelVersionPageReqVO reqVO) { +// Page page = modelVersionService.page(new Page<>(reqVO.getPageNo(), reqVO.getPageSize()), +// new LambdaQueryWrapperX() +// .eqIfPresent(ModelVersion::getModelId, reqVO.getModelId()) +// .orderByAsc(ModelVersion::getId)); +// return new PageResult<>(BeanUtils.toBean(page.getRecords(), ModelVersionDO.class), +// page.getTotal()); + return versionMapper.selectPage(reqVO); + + } 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 index e91e42a..35294c2 100644 --- 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 @@ -20,6 +20,14 @@ public interface WarnService { WarnDO getWarn(Long id); + /** + * 创建预警 + * + * @param createReqVO 创建预警 + * @return 预警编号 + */ + Long createWarn(@Valid WarnSaveReqVO createReqVO); + /** * 更新预警 * 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 index 8d4ad51..0ec9f7a 100644 --- 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 @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.alert.service.warn; +import cn.hutool.core.collection.CollectionUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 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; @@ -10,6 +12,9 @@ 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.controller.admin.user.vo.user.UserSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; import com.google.common.annotations.VisibleForTesting; import com.mzt.logapi.context.LogRecordContext; @@ -19,8 +24,10 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.WARN_NOT_EXISTS; import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.*; @@ -39,6 +46,34 @@ public class WarnServiceImpl implements WarnService { } + @Override + @Transactional(rollbackFor = Exception.class) + @LogRecord(type = SYSTEM_WARN_TYPE, subType = SYSTEM_WARN_CREATE_SUB_TYPE, bizNo = "{{#warn.id}}", + success = SYSTEM_WARN_CREATE_SUCCESS) + public Long createWarn(WarnSaveReqVO createReqVO) { + // 1.1 校验账户配合 +// tenantService.handleTenantInfo(tenant -> { +// long count = userMapper.selectCount(); +// if (count >= tenant.getAccountCount()) { +// throw exception(USER_COUNT_MAX, tenant.getAccountCount()); +// } +// }); + // 1.2 校验正确性 +// validateUserForCreateOrUpdate(null, createReqVO.getUsername(), +// createReqVO.getMobile(), createReqVO.getEmail(), createReqVO.getDeptId(), createReqVO.getPostIds()); + // 2.1 插入用户 + WarnTableDO warn = BeanUtils.toBean(createReqVO, WarnTableDO.class); + warnTableMapper.insert(warn); + + + // 3. 记录操作日志上下文 + LogRecordContext.putVariable("warn", warn); + return warn.getId(); + } + + + + @Override public WarnDO getWarn(Long id) { return warnMapper.selectById(id); 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 328b1ce..2c573a8 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 @@ -241,7 +241,7 @@ public class EXAUtils { //写入点号 public String setPoint(String EXA_IP, Point point) throws IOException { - String requestPathAddItem = "http://" + EXA_IP + ":9000/exawebapi/exaitem/AddItem"; + String requestPathAddItem = "http://" + EXA_IP + ":9000/exawebapi/EXAItem/AddItemStd"; String param = JSON.toJSONString(point); String result = Request.Post(requestPathAddItem) .addHeader("Content-type", "application/json")