feat: 获取告警类型对应的要素
This commit is contained in:
parent
0dfd6d04cd
commit
3b10901fda
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.qgc_base.domain.MsWarnRuleB;
|
import com.yfd.platform.qgc_base.domain.MsWarnRuleB;
|
||||||
|
import com.yfd.platform.qgc_sys.warnRule.vo.WarnYsVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -15,4 +16,9 @@ public interface IMsWarnRuleBService extends IService<MsWarnRuleB> {
|
|||||||
boolean add(MsWarnRuleB entity, String source);
|
boolean add(MsWarnRuleB entity, String source);
|
||||||
boolean update(MsWarnRuleB entity, String source);
|
boolean update(MsWarnRuleB entity, String source);
|
||||||
boolean delete(List<String> ids, String source);
|
boolean delete(List<String> ids, String source);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取告警类型对应的要素列表
|
||||||
|
*/
|
||||||
|
List<WarnYsVo> getAllYs(String ruleType);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
|
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
||||||
import com.yfd.platform.qgc_base.domain.MsWarnRuleB;
|
import com.yfd.platform.qgc_base.domain.MsWarnRuleB;
|
||||||
import com.yfd.platform.qgc_base.mapper.MsWarnRuleBMapper;
|
import com.yfd.platform.qgc_base.mapper.MsWarnRuleBMapper;
|
||||||
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
|
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
|
||||||
import com.yfd.platform.qgc_base.service.IMsWarnRuleBService;
|
import com.yfd.platform.qgc_base.service.IMsWarnRuleBService;
|
||||||
|
import com.yfd.platform.qgc_sys.warnRule.vo.WarnYsVo;
|
||||||
import com.yfd.platform.utils.DataSourceRequestUtil;
|
import com.yfd.platform.utils.DataSourceRequestUtil;
|
||||||
import com.yfd.platform.utils.DictCodeToNameConverter;
|
import com.yfd.platform.utils.DictCodeToNameConverter;
|
||||||
import com.yfd.platform.utils.CodeToNameMetadataBo;
|
import com.yfd.platform.utils.CodeToNameMetadataBo;
|
||||||
@ -18,7 +20,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 预警规则配置 Service 实现类
|
* 预警规则配置 Service 实现类
|
||||||
@ -45,6 +49,9 @@ public class MsWarnRuleBServiceImpl extends ServiceImpl<MsWarnRuleBMapper, MsWar
|
|||||||
@Resource
|
@Resource
|
||||||
private DictCodeToNameConverter dictCodeToNameConverter;
|
private DictCodeToNameConverter dictCodeToNameConverter;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MicroservicDynamicSQLMapper microservicDynamicSQLMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<MsWarnRuleB> queryPageList(DataSourceRequest request) {
|
public Page<MsWarnRuleB> queryPageList(DataSourceRequest request) {
|
||||||
Page<MsWarnRuleB> page = DataSourceRequestUtil.executeQuery(request, MsWarnRuleB.class, this);
|
Page<MsWarnRuleB> page = DataSourceRequestUtil.executeQuery(request, MsWarnRuleB.class, this);
|
||||||
@ -92,4 +99,66 @@ public class MsWarnRuleBServiceImpl extends ServiceImpl<MsWarnRuleBMapper, MsWar
|
|||||||
}
|
}
|
||||||
return count > 0;
|
return count > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<WarnYsVo> getAllYs(String ruleType) {
|
||||||
|
String dbRuleType = getOldRuleType(ruleType);
|
||||||
|
String sql = "SELECT t2.TB_ID AS tbId, t2.YS, t3.YS_SHOW_NAME AS ysName\n" +
|
||||||
|
"FROM MS_WARN_RULE_B t1\n" +
|
||||||
|
"INNER JOIN MS_WARN_RULE_DETAIL_B t2 ON t1.ID = t2.RULE_ID\n" +
|
||||||
|
"INNER JOIN ST_YS_B t3 ON t2.YS = t3.YS\n" +
|
||||||
|
"WHERE t1.RULE_TYPE = #{ruleType}\n" +
|
||||||
|
" AND t1.IS_DELETED = 0\n" +
|
||||||
|
" AND t2.IS_DELETED = 0\n" +
|
||||||
|
"GROUP BY t2.TB_ID, t2.YS, t3.YS_SHOW_NAME";
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
paramMap.put("ruleType", dbRuleType);
|
||||||
|
return microservicDynamicSQLMapper.getAllListWithResultType(sql, paramMap, WarnYsVo.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 旧版规则类型枚举映射
|
||||||
|
*/
|
||||||
|
private String getOldRuleType(String ruleType) {
|
||||||
|
if ("WQ".equals(ruleType)) {
|
||||||
|
return "WQLVL";
|
||||||
|
} else if ("WT".equals(ruleType)) {
|
||||||
|
return "WTMN";
|
||||||
|
} else if ("QGC".equals(ruleType)) {
|
||||||
|
return "EQMN";
|
||||||
|
} else if ("RZ".equals(ruleType)) {
|
||||||
|
return "RSVRFSR";
|
||||||
|
}
|
||||||
|
return ruleType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从 DataSourceRequest 过滤条件中提取指定字段的值
|
||||||
|
*/
|
||||||
|
private String getFilterFieldValue(DataSourceRequest request, String fieldName) {
|
||||||
|
if (request == null || request.getFilter() == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return findFilterValue(request.getFilter(), fieldName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String findFilterValue(DataSourceRequest.FilterDescriptor filter, String fieldName) {
|
||||||
|
if (filter == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// 直接匹配
|
||||||
|
if (fieldName.equals(filter.getField()) && filter.getValue() != null) {
|
||||||
|
return filter.getValue().toString();
|
||||||
|
}
|
||||||
|
// 递归子过滤器
|
||||||
|
if (filter.getFilters() != null) {
|
||||||
|
for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) {
|
||||||
|
String value = findFilterValue(child, fieldName);
|
||||||
|
if (value != null) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,6 @@ package com.yfd.platform.qgc_sys.warnRule.controller;
|
|||||||
|
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
import com.yfd.platform.qgc_base.domain.MsWarnRuleB;
|
|
||||||
import com.yfd.platform.qgc_base.service.IMsWarnRuleBService;
|
import com.yfd.platform.qgc_base.service.IMsWarnRuleBService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
@ -30,4 +29,42 @@ public class MsWarnRuleBController {
|
|||||||
public ResponseResult getKendoList(@RequestBody DataSourceRequest dataSourceRequest) {
|
public ResponseResult getKendoList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
return ResponseResult.successData(msWarnRuleBService.queryPageList(dataSourceRequest));
|
return ResponseResult.successData(msWarnRuleBService.queryPageList(dataSourceRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/ysList")
|
||||||
|
@Operation(summary = "获取告警类型对应的要素")
|
||||||
|
public ResponseResult getAllYs(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
String ruleType = getFilterFieldValue(dataSourceRequest, "ruleType");
|
||||||
|
if (ruleType == null || ruleType.isEmpty()) {
|
||||||
|
return ResponseResult.error("ruleType 不能为空");
|
||||||
|
}
|
||||||
|
return ResponseResult.successData(msWarnRuleBService.getAllYs(ruleType));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从 DataSourceRequest 过滤条件中提取指定字段的值
|
||||||
|
*/
|
||||||
|
private String getFilterFieldValue(DataSourceRequest request, String fieldName) {
|
||||||
|
if (request == null || request.getFilter() == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return findFilterValue(request.getFilter(), fieldName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String findFilterValue(DataSourceRequest.FilterDescriptor filter, String fieldName) {
|
||||||
|
if (filter == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (fieldName.equals(filter.getField()) && filter.getValue() != null) {
|
||||||
|
return filter.getValue().toString();
|
||||||
|
}
|
||||||
|
if (filter.getFilters() != null) {
|
||||||
|
for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) {
|
||||||
|
String value = findFilterValue(child, fieldName);
|
||||||
|
if (value != null) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,29 @@
|
|||||||
|
package com.yfd.platform.qgc_sys.warnRule.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 告警类型对应的要素VO
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class WarnYsVo {
|
||||||
|
|
||||||
|
/** 监测表id */
|
||||||
|
private String tbId;
|
||||||
|
|
||||||
|
/** 要素编码 */
|
||||||
|
private String ys;
|
||||||
|
|
||||||
|
/** 要素名称 */
|
||||||
|
private String ysName;
|
||||||
|
|
||||||
|
/** 最小值 */
|
||||||
|
private BigDecimal minVal;
|
||||||
|
|
||||||
|
/** 最大值 */
|
||||||
|
private BigDecimal maxVal;
|
||||||
|
|
||||||
|
/** 描述 */
|
||||||
|
private String mark;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user