Browse Source

fix:回算功能优化

pull/50/head
xjf 4 weeks ago
parent
commit
219b10847f
  1. 30
      yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantCalcResultVO.java
  2. 406
      yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantServiceImpl.java
  3. 2
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java

30
yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/instant/vo/InstantCalcResultVO.java

@ -1,12 +1,38 @@
package cn.iocoder.yudao.module.alert.controller.admin.instant.vo; package cn.iocoder.yudao.module.alert.controller.admin.instant.vo;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data @Data
public class InstantCalcResultVO { public class InstantCalcResultVO {
private String Dimension;
@JsonProperty("Dimension")
private Integer Dimension;
@JsonProperty("CoveredPercent")
private String CoveredPercent; private String CoveredPercent;
private String CalcSeconds;
@JsonProperty("AlarmToatlMinutes")
private String AlarmToatlMinutes; private String AlarmToatlMinutes;
@JsonProperty("AlarmNumber")
private Integer AlarmNumber;
@JsonProperty("CalcSeconds")
private String CalcSeconds;
} }

406
yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/instant/InstantServiceImpl.java

@ -22,6 +22,7 @@ import cn.iocoder.yudao.module.alert.dal.mysql.report.ReportMapper;
import cn.iocoder.yudao.module.alert.dal.mysql.warn.WarnCalcMapper; import cn.iocoder.yudao.module.alert.dal.mysql.warn.WarnCalcMapper;
import cn.iocoder.yudao.module.alert.service.warn.WarnService; import cn.iocoder.yudao.module.alert.service.warn.WarnService;
import cn.iocoder.yudao.module.alert.utils.EXAUtils; import cn.iocoder.yudao.module.alert.utils.EXAUtils;
import com.alibaba.fastjson.JSONObject;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.mzt.logapi.context.LogRecordContext; import com.mzt.logapi.context.LogRecordContext;
import com.mzt.logapi.service.impl.DiffParseFunction; import com.mzt.logapi.service.impl.DiffParseFunction;
@ -74,212 +75,212 @@ public class InstantServiceImpl implements InstantService {
success = SYSTEM_INSTANT_CREATE_SUCCESS) success = SYSTEM_INSTANT_CREATE_SUCCESS)
public List<String> createInstant(InstantSaveReqVO createReqVO, Integer type) throws IOException { public List<String> createInstant(InstantSaveReqVO createReqVO, Integer type) throws IOException {
try{ try {
// 1. 校验角色 // 1. 校验角色
// validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null); // validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null);
//根据modelversionid查询modelversion,录入instantcfg表的modelversion字段 //根据modelversionid查询modelversion,录入instantcfg表的modelversion字段
String modelVersion = versionMapper.selectById(createReqVO.getModelVersionId()).getVersion(); String modelVersion = versionMapper.selectById(createReqVO.getModelVersionId()).getVersion();
createReqVO.setModelVersion(modelVersion); createReqVO.setModelVersion(modelVersion);
//插入除instantInfo外的所有数据,获取到id //插入除instantInfo外的所有数据,获取到id
// 2. 插入到数据库-status、visible默认值 // 2. 插入到数据库-status、visible默认值
InstantTableDO instant = BeanUtils.toBean(createReqVO, InstantTableDO.class) InstantTableDO instant = BeanUtils.toBean(createReqVO, InstantTableDO.class)
.setInstantStatus(ObjUtil.defaultIfNull(createReqVO.getInstantStatus(), 1L)) .setInstantStatus(ObjUtil.defaultIfNull(createReqVO.getInstantStatus(), 1L))
.setVisible(ObjUtil.defaultIfNull(createReqVO.getVisible(), 1L)); .setVisible(ObjUtil.defaultIfNull(createReqVO.getVisible(), 1L));
instantTableMapper.insert(instant); instantTableMapper.insert(instant);
// 3. 记录操作日志上下文 // 3. 记录操作日志上下文
LogRecordContext.putVariable("instant", instant); LogRecordContext.putVariable("instant", instant);
Long insertId = instant.getMpId(); Long insertId = instant.getMpId();
//处理数据 //处理数据
// inputInfo 各种转换 // inputInfo 各种转换
List<pointInfo> pointInfoList = createReqVO.getPointInfo(); List<pointInfo> pointInfoList = createReqVO.getPointInfo();
System.out.println(pointInfoList); System.out.println(pointInfoList);
List<String> inputInfoList = new ArrayList<>(); List<String> inputInfoList = new ArrayList<>();
List<String> inputNameList = new ArrayList<>(); List<String> inputNameList = new ArrayList<>();
List<String> unitList = new ArrayList<>(); List<String> unitList = new ArrayList<>();
List<String> outPointInfoList = new ArrayList<>(); List<String> outPointInfoList = new ArrayList<>();
List<String> timePointInfoList = new ArrayList<>(); List<String> timePointInfoList = new ArrayList<>();
List<String> biasPointInfoList = new ArrayList<>(); List<String> biasPointInfoList = new ArrayList<>();
List<String> faultVariablePointList = new ArrayList<>(); List<String> faultVariablePointList = new ArrayList<>();
List<Point> InstantPointList = new ArrayList<>(); List<Point> InstantPointList = new ArrayList<>();
Point point = new Point(); Point point = new Point();
String outpoint = ""; String outpoint = "";
for (Integer i = 0; i < pointInfoList.size(); i++) { for (Integer i = 0; i < pointInfoList.size(); i++) {
inputInfoList.add(pointInfoList.get(i).getPointId()); inputInfoList.add(pointInfoList.get(i).getPointId());
inputNameList.add(pointInfoList.get(i).getDescription()); inputNameList.add(pointInfoList.get(i).getDescription());
unitList.add(pointInfoList.get(i).getUnit()); unitList.add(pointInfoList.get(i).getUnit());
if (Objects.isNull(pointInfoList.get(i).getType()) || pointInfoList.get(i).getType().equals("1")) { 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"; outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "R";
point = new Point(); point = new Point();
point.setGroupName("WARN"); point.setGroupName("WARN");
outPointInfoList.add(outpoint); outPointInfoList.add(outpoint);
point.setItemName(outpoint); point.setItemName(outpoint);
point.setDescriptor(pointInfoList.get(i).getDescription() + "_重构值"); point.setDescriptor(pointInfoList.get(i).getDescription() + "_重构值");
point.setEngUnits(pointInfoList.get(i).getUnit()); point.setEngUnits(pointInfoList.get(i).getUnit());
point.setItemType(5); point.setItemType(5);
InstantPointList.add(point); InstantPointList.add(point);
//构建时间值对象 //构建时间值对象
outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "T"; outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "T";
point = new Point(); point = new Point();
point.setGroupName("WARN"); point.setGroupName("WARN");
timePointInfoList.add(outpoint); timePointInfoList.add(outpoint);
point.setItemName(outpoint); point.setItemName(outpoint);
point.setDescriptor(pointInfoList.get(i).getDescription() + "_时间值"); point.setDescriptor(pointInfoList.get(i).getDescription() + "_时间值");
point.setEngUnits(pointInfoList.get(i).getUnit()); point.setEngUnits(pointInfoList.get(i).getUnit());
point.setItemType(5); point.setItemType(5);
InstantPointList.add(point); InstantPointList.add(point);
//构建偏差值对象 //构建偏差值对象
outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "B"; outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "B";
point = new Point(); point = new Point();
point.setGroupName("WARN"); point.setGroupName("WARN");
biasPointInfoList.add(outpoint); biasPointInfoList.add(outpoint);
point.setItemName(outpoint); point.setItemName(outpoint);
point.setDescriptor(pointInfoList.get(i).getDescription() + "_偏差值"); point.setDescriptor(pointInfoList.get(i).getDescription() + "_偏差值");
point.setEngUnits(pointInfoList.get(i).getUnit()); point.setEngUnits(pointInfoList.get(i).getUnit());
point.setItemType(5); point.setItemType(5);
InstantPointList.add(point); InstantPointList.add(point);
//构建状态值对象 //构建状态值对象
outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "F"; outpoint = HEAD + "M" + String.format("%04d", insertId) + String.format("%04d", i + 1) + "F";
point = new Point(); point = new Point();
point.setGroupName("WARN"); point.setGroupName("WARN");
faultVariablePointList.add(outpoint); faultVariablePointList.add(outpoint);
point.setItemName(outpoint); point.setItemName(outpoint);
point.setDescriptor(pointInfoList.get(i).getDescription() + "_状态值"); point.setDescriptor(pointInfoList.get(i).getDescription() + "_状态值");
point.setEngUnits(pointInfoList.get(i).getUnit()); point.setEngUnits(pointInfoList.get(i).getUnit());
point.setItemType(5); point.setItemType(5);
InstantPointList.add(point); InstantPointList.add(point);
} else { } else {
outpoint = ""; outpoint = "";
outPointInfoList.add(outpoint); outPointInfoList.add(outpoint);
timePointInfoList.add(outpoint); timePointInfoList.add(outpoint);
biasPointInfoList.add(outpoint); biasPointInfoList.add(outpoint);
faultVariablePointList.add(outpoint); faultVariablePointList.add(outpoint);
} }
} }
createReqVO.setMpId(insertId); createReqVO.setMpId(insertId);
createReqVO.setInstantStatus(instant.getInstantStatus()); createReqVO.setInstantStatus(instant.getInstantStatus());
createReqVO.setVisible(instant.getVisible()); createReqVO.setVisible(instant.getVisible());
createReqVO.setInputInfo(inputInfoList); createReqVO.setInputInfo(inputInfoList);
createReqVO.setInputName(inputNameList); createReqVO.setInputName(inputNameList);
createReqVO.setUnit(unitList); createReqVO.setUnit(unitList);
createReqVO.setOutPointInfo(outPointInfoList); createReqVO.setOutPointInfo(outPointInfoList);
createReqVO.setTimePointInfo(timePointInfoList); createReqVO.setTimePointInfo(timePointInfoList);
createReqVO.setBiasPointInfo(biasPointInfoList); createReqVO.setBiasPointInfo(biasPointInfoList);
createReqVO.setFaultVariablePointInfo(faultVariablePointList); createReqVO.setFaultVariablePointInfo(faultVariablePointList);
//构建模型实例ste值-没有unit参数 //构建模型实例ste值-没有unit参数
outpoint = HEAD + "M" + String.format("%04d", insertId) + "_ste"; outpoint = HEAD + "M" + String.format("%04d", insertId) + "_ste";
//赋值-createReqVO //赋值-createReqVO
createReqVO.setModel_state(outpoint); createReqVO.setModel_state(outpoint);
point = new Point(); point = new Point();
point.setGroupName("WARN"); point.setGroupName("WARN");
point.setItemName(outpoint); point.setItemName(outpoint);
point.setDescriptor(instant.getMpName() + "_残差值"); point.setDescriptor(instant.getMpName() + "_残差值");
point.setItemType(5); point.setItemType(5);
InstantPointList.add(point); InstantPointList.add(point);
//构建模型实例状态值-没有unit参数 //构建模型实例状态值-没有unit参数
outpoint = HEAD + "M" + String.format("%04d", insertId) + "_status"; outpoint = HEAD + "M" + String.format("%04d", insertId) + "_status";
//赋值-createReqVO //赋值-createReqVO
createReqVO.setModel_status(outpoint); createReqVO.setModel_status(outpoint);
point = new Point(); point = new Point();
point.setGroupName("WARN"); point.setGroupName("WARN");
point.setItemName(outpoint); point.setItemName(outpoint);
point.setDescriptor(instant.getMpName() + "_状态值"); point.setDescriptor(instant.getMpName() + "_状态值");
point.setItemType(5); point.setItemType(5);
InstantPointList.add(point); InstantPointList.add(point);
//更新instantInfo字段 //更新instantInfo字段
InstantSaveReqVO updateReqVO = new InstantSaveReqVO(); InstantSaveReqVO updateReqVO = new InstantSaveReqVO();
updateReqVO.setMpId(instant.getMpId()); updateReqVO.setMpId(instant.getMpId());
updateReqVO.setInstantInfo(JsonUtils.toJsonString(createReqVO)); updateReqVO.setInstantInfo(JsonUtils.toJsonString(createReqVO));
updateInstant(updateReqVO); updateInstant(updateReqVO);
List<String> resultList = new ArrayList<String>(); List<String> resultList = new ArrayList<String>();
resultList.add(instant.getMpId().toString()); resultList.add(instant.getMpId().toString());
for (Point item : InstantPointList) { for (Point item : InstantPointList) {
// 每次循环输出list中的元素 // 每次循环输出list中的元素
System.out.println(item.toString()); System.out.println(item.toString());
//循环加点 //循环加点
String ss = exaUtils.setPoint(EXA_IP, item); String ss = exaUtils.setPoint(EXA_IP, item);
resultList.add(ss); resultList.add(ss);
} }
createWarn1(instant, createReqVO); createWarn1(instant, createReqVO);
log.info("模型实例创建成功,实例ID: {}", instant.getMpId()); log.info("模型实例创建成功,实例ID: {}", instant.getMpId());
return resultList; return resultList;
} catch (Exception e) { } catch (Exception e) {
log.error("模型实例创建失败,错误信息: ", e); log.error("模型实例创建失败,错误信息: ", e);
throw exception(CREATE_INSTANT_ERROR,"模型实例创建失败: " + e.getMessage()); throw exception(CREATE_INSTANT_ERROR, "模型实例创建失败: " + e.getMessage());
} }
} }
public void createWarn1(InstantTableDO instant, InstantSaveReqVO createReqVO) { public void createWarn1(InstantTableDO instant, InstantSaveReqVO createReqVO) {
try{ try {
//调用预警表和评估报告表的mapper //调用预警表和评估报告表的mapper
// 从instant对象获取modelid和version字段 // 从instant对象获取modelid和version字段
Long modelId = instant.getModelId(); Long modelId = instant.getModelId();
String version = instant.getModelVersion(); String version = instant.getModelVersion();
// modelId=11L; // modelId=11L;
// version="v-test"; // version="v-test";
// 调用reportMapper获取对应记录(假设存在selectByModelIdAndVersion方法) // 调用reportMapper获取对应记录(假设存在selectByModelIdAndVersion方法)
ReportDO report = reportMapper.selectByModelIdAndVersion(modelId, version); ReportDO report = reportMapper.selectByModelIdAndVersion(modelId, version);
// 如果report不为空且report字段不为空,则解析为Report类 // 如果report不为空且report字段不为空,则解析为Report类
if (report != null && StrUtil.isNotBlank(report.getReport())) { if (report != null && StrUtil.isNotBlank(report.getReport())) {
Report reportObj = JsonUtils.parseObject(report.getReport(), Report.class); Report reportObj = JsonUtils.parseObject(report.getReport(), Report.class);
// 此处可根据业务需求处理解析后的Report对象(如后续预警逻辑) // 此处可根据业务需求处理解析后的Report对象(如后续预警逻辑)
// 循环getInputInfo构建并插入预警记录 // 循环getInputInfo构建并插入预警记录
for (int j = 0; j < reportObj.getAssess().size(); j++) { for (int j = 0; j < reportObj.getAssess().size(); j++) {
WarnSaveReqVO warnSaveReqVO = new WarnSaveReqVO(); WarnSaveReqVO warnSaveReqVO = new WarnSaveReqVO();
// 设置预警ID(假设insertId为当前预警主记录ID) // 设置预警ID(假设insertId为当前预警主记录ID)
// warn.setId(insertId); // warn.setId(insertId);
//设置实例id //设置实例id
warnSaveReqVO.setMpId(instant.getMpId()); warnSaveReqVO.setMpId(instant.getMpId());
warnSaveReqVO.setPointOrModel("model"); warnSaveReqVO.setPointOrModel("point");
warnSaveReqVO.setPointId(createReqVO.getInputInfo().get(reportObj.getAssess().get(j).getIndex())); warnSaveReqVO.setPointId(createReqVO.getInputInfo().get(reportObj.getAssess().get(j).getIndex()));
warnSaveReqVO.setPointName(createReqVO.getInputName().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.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()) + "]<LOWLIMIT"); warnSaveReqVO.setEquation("[" + createReqVO.getBiasPointInfo().get(reportObj.getAssess().get(j).getIndex()) + "]>UPLIMIT or [" + createReqVO.getBiasPointInfo().get(reportObj.getAssess().get(j).getIndex()) + "]<LOWLIMIT");
warnSaveReqVO.setUplimit(reportObj.getAssess().get(j).getAmplitude()); warnSaveReqVO.setUplimit(reportObj.getAssess().get(j).getAmplitude());
warnSaveReqVO.setLowlimit(-reportObj.getAssess().get(j).getAmplitude()); warnSaveReqVO.setLowlimit(-reportObj.getAssess().get(j).getAmplitude());
warnSaveReqVO.setOutputPoint(createReqVO.getOutPointInfo().get(reportObj.getAssess().get(j).getIndex())); warnSaveReqVO.setOutputPoint(createReqVO.getOutPointInfo().get(reportObj.getAssess().get(j).getIndex()));
warnSaveReqVO.setUnit(createReqVO.getUnit().get(reportObj.getAssess().get(j).getIndex())); warnSaveReqVO.setUnit(createReqVO.getUnit().get(reportObj.getAssess().get(j).getIndex()));
// 设置其他必要字段(根据实际业务补充) // 设置其他必要字段(根据实际业务补充)
warnSaveReqVO.setWarnStatus(1L); // 示例:设置初始状态 warnSaveReqVO.setWarnStatus(1L); // 示例:设置初始状态
// 插入数据库 // 插入数据库
warnService.createWarn(warnSaveReqVO); warnService.createWarn(warnSaveReqVO);
}
} }
} catch (Exception e) {
log.error("模型实例创建失败,错误信息: ", e);
throw exception(CREATE_INSTANT_ERROR, "模型实例创建失败: " + e.getMessage());
} }
} catch (Exception e) {
log.error("模型实例创建失败,错误信息: ", e);
throw exception(CREATE_INSTANT_ERROR,"模型实例创建失败: " + e.getMessage());
}
} }
@ -497,8 +498,8 @@ try{
} }
calcReqVO.setExA_IP(EXA_IP); calcReqVO.setExA_IP(EXA_IP);
calcReqVO.setModel(JsonUtils.toJsonString(instant.getModelInfo())); calcReqVO.setModel(instant.getModelInfo());
calcReqVO.setInstantInfo_Str( JsonUtils.toJsonString(instant.getInstantInfo())); calcReqVO.setInstantInfo_Str(instant.getInstantInfo());
InstantInfoVO instantInfoVO = JsonUtils.parseObject(instant.getInstantInfo(), InstantInfoVO.class); InstantInfoVO instantInfoVO = JsonUtils.parseObject(instant.getInstantInfo(), InstantInfoVO.class);
List<String> pointInfoList = instantInfoVO.getInputInfo(); List<String> pointInfoList = instantInfoVO.getInputInfo();
//循环point //循环point
@ -512,8 +513,7 @@ try{
calcInfoMap.put("logic", warnCalc.getLastFormula().replaceAll("UPLIMIT", warnCalc.getUplimit()).replaceAll("LOWLIMIT", warnCalc.getLowlimit())); calcInfoMap.put("logic", warnCalc.getLastFormula().replaceAll("UPLIMIT", warnCalc.getUplimit()).replaceAll("LOWLIMIT", warnCalc.getLowlimit()));
calcInfoMap.put("TimeLong", warnCalc.getTimeDurationThreshold()); calcInfoMap.put("TimeLong", warnCalc.getTimeDurationThreshold());
calcInfoMap.put("Vaild", true); // 注意字段名是否与实体类一致 calcInfoMap.put("Vaild", true); // 注意字段名是否与实体类一致
} } else {
else{
calcInfoMap.put("logic", "1=1"); calcInfoMap.put("logic", "1=1");
calcInfoMap.put("TimeLong", "0"); calcInfoMap.put("TimeLong", "0");
calcInfoMap.put("Vaild", false); // 注意字段名是否与实体类一致 calcInfoMap.put("Vaild", false); // 注意字段名是否与实体类一致
@ -529,18 +529,34 @@ try{
//调用http接口,获取计算结果 http://120.26.116.243:8098/api/PCA/deepTrack //调用http接口,获取计算结果 http://120.26.116.243:8098/api/PCA/deepTrack
String url = "http://120.26.116.243:8098/api/PCA/deepTrack"; String url = "http://120.26.116.243:8098/api/PCA/deepTrack";
String params = JsonUtils.toJsonString(calcReqVO);
// 调用http接口,获取计算结果 // 调用http接口,获取计算结果
String result = HttpUtils.post(url, null, JsonUtils.toJsonString(calcReqVO)); String httpResult = HttpUtils.post(url, null, params);
JSONObject jsonResult = JsonUtils.parseObject(httpResult, JSONObject.class);
try {
String result = jsonResult.getString("result");
if (!"OK".equals(result)) {
throw exception(CALCULATE_ERROR, "计算失败");
}
} catch (Exception e) {
throw exception(CALCULATE_ERROR, "结果有误,返回结果为: " +jsonResult+ ",异常信息为: "+e.getMessage());
}
// 解析返回结果 // 解析返回结果
instantCalcResultVO = JsonUtils.parseObject(result, InstantCalcResultVO.class); String rtn = jsonResult.getString("rtn");
// ... 新增:检查 rtn 是否为空
if (StrUtil.isBlank(rtn)) {
throw exception(CALCULATE_ERROR, "计算结果 rtn 为空");
}
// ... 新增:捕获 JSON 解析异常
try {
instantCalcResultVO = JsonUtils.parseObject(rtn, InstantCalcResultVO.class);
} catch (Exception e) {
throw exception(CALCULATE_ERROR, "解析计算结果失败,rtn: " + rtn + ",异常信息: " + e.getMessage());
}
// 3. 记录操作日志上下文 // 3. 记录操作日志上下文
LogRecordContext.putVariable("instant", calcReqVO); LogRecordContext.putVariable("instant", calcReqVO);
return instantCalcResultVO; return instantCalcResultVO;
} }
} }

2
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java

@ -174,7 +174,7 @@ public interface ErrorCodeConstants {
ErrorCode CREATE_INSTANT_ERROR = new ErrorCode(3_001_001, "模型实例创建失败,失败原因:({})"); ErrorCode CREATE_INSTANT_ERROR = new ErrorCode(3_001_001, "模型实例创建失败,失败原因:({})");
ErrorCode CALCULATE_ERROR = new ErrorCode(3_001_002, "模型实例计算失败,失败原因:({})");
// ========== 预警模块 4-001========== // ========== 预警模块 4-001==========
ErrorCode WARN_NOT_EXISTS = new ErrorCode(4_001_000, "预警不存在"); ErrorCode WARN_NOT_EXISTS = new ErrorCode(4_001_000, "预警不存在");

Loading…
Cancel
Save