Browse Source

feat(alert): 为模型列表添加系统和机组名称显示

- 添加 UnitCfg 相关依赖注入和数据查询
- 实现系统名称和机组名称的关联查询功能
- 重构模型列表构建逻辑,支持批量获取系统和机组信息
- 在 ModelSimpleVO 中新增系统名称和机组名称字段
- 本地配置文件中算法服务地址改为本地地址
- 优化查询性能,避免 N+1 查询问题
pull/58/head
chenjiale 3 weeks ago
parent
commit
aae95b8bc2
  1. 10
      yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSimpleVO.java
  2. 51
      yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java
  3. 2
      yudao-server/src/main/resources/application-local.yaml

10
yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSimpleVO.java

@ -40,6 +40,16 @@ public class ModelSimpleVO {
*/
private String version;
/**
* 系统名称
*/
private String systemName;
/**
* 机组名称
*/
private String unitName;
/**
* 模型状态
*/

51
yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java

@ -18,10 +18,12 @@ import cn.iocoder.yudao.module.alert.dao.domain.AssessReportCfg;
import cn.iocoder.yudao.module.alert.dao.domain.ModelCfg;
import cn.iocoder.yudao.module.alert.dao.domain.ModelVersion;
import cn.iocoder.yudao.module.alert.dao.domain.SystemCfg;
import cn.iocoder.yudao.module.alert.dao.domain.UnitCfg;
import cn.iocoder.yudao.module.alert.dao.mapper.AssessReportCfgMapper;
import cn.iocoder.yudao.module.alert.dao.service.ModelCfgService;
import cn.iocoder.yudao.module.alert.dao.service.ModelVersionService;
import cn.iocoder.yudao.module.alert.dao.service.SystemCfgService;
import cn.iocoder.yudao.module.alert.dao.service.UnitCfgService;
import cn.iocoder.yudao.module.alert.param.AnnTestParam;
import cn.iocoder.yudao.module.alert.param.AnnTrainParam;
import cn.iocoder.yudao.module.alert.param.ModelTestParam;
@ -57,6 +59,8 @@ public class ModelServiceImpl implements ModelService {
private final SystemCfgService systemCfgService;
private final UnitCfgService unitCfgService;
private final ModelVersionService modelVersionService;
private final AssessReportCfgMapper assessReportCfgMapper;
@ -88,21 +92,43 @@ public class ModelServiceImpl implements ModelService {
.like(StringUtils.hasLength(modelName), ModelCfg::getModelName, modelName);
if (Objects.equals(query.getPageSize(), PageParam.PAGE_SIZE_NONE)) {
List<ModelCfg> list = modelCfgService.list(queryWrapper);
List<ModelSimpleVO> records = list.stream().map(modelCfg -> ModelSimpleVO.builder()
.id(modelCfg.getId())
.name(modelCfg.getModelName() == null ? null : modelCfg.getModelName().trim())
.creator(modelCfg.getCreator())
.createTime(modelCfg.getCreateTime())
.version(modelCfg.getCurVersion())
.status(modelCfg.getStatus())
.algorithm(Algorithm.of(modelCfg.getAlgorithmId()).toString())
.build())
.collect(Collectors.toList());
List<ModelSimpleVO> records = buildModelSimpleList(list);
return PagedResponse.of(list.size(), query.getPageNo(), query.getPageSize(), records);
}
Page<ModelCfg> page = modelCfgService.page(new Page<>(query.getPageNo(), query.getPageSize()), queryWrapper);
List<ModelSimpleVO> list = page.getRecords().stream().map(modelCfg -> ModelSimpleVO.builder()
List<ModelSimpleVO> list = buildModelSimpleList(page.getRecords());
return PagedResponse.of(page.getTotal(), query.getPageNo(), query.getPageSize(), list);
}
private List<ModelSimpleVO> buildModelSimpleList(List<ModelCfg> list) {
if (CollUtil.isEmpty(list)) {
return Collections.emptyList();
}
List<Integer> systemIds = list.stream()
.map(ModelCfg::getSystemId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
List<SystemCfg> systemCfgList = systemIds.isEmpty()
? Collections.emptyList()
: systemCfgService.list(Wrappers.<SystemCfg>lambdaQuery().in(SystemCfg::getSystemId, systemIds));
Map<Integer, String> systemNameMap = systemCfgList.stream()
.collect(Collectors.toMap(SystemCfg::getSystemId, SystemCfg::getSystemName, (a, b) -> a));
Map<Integer, Integer> systemUnitMap = systemCfgList.stream()
.collect(Collectors.toMap(SystemCfg::getSystemId, SystemCfg::getUnitId, (a, b) -> a));
List<Integer> unitIds = systemCfgList.stream()
.map(SystemCfg::getUnitId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
Map<Integer, String> unitNameMap = unitIds.isEmpty()
? Collections.emptyMap()
: unitCfgService.list(Wrappers.<UnitCfg>lambdaQuery().in(UnitCfg::getUnitId, unitIds))
.stream()
.collect(Collectors.toMap(UnitCfg::getUnitId, UnitCfg::getUnitName, (a, b) -> a));
return list.stream().map(modelCfg -> ModelSimpleVO.builder()
.id(modelCfg.getId())
.name(modelCfg.getModelName() == null ? null : modelCfg.getModelName().trim())
.creator(modelCfg.getCreator())
@ -110,9 +136,10 @@ public class ModelServiceImpl implements ModelService {
.version(modelCfg.getCurVersion())
.status(modelCfg.getStatus())
.algorithm(Algorithm.of(modelCfg.getAlgorithmId()).toString())
.systemName(systemNameMap.get(modelCfg.getSystemId()))
.unitName(unitNameMap.get(systemUnitMap.get(modelCfg.getSystemId())))
.build())
.collect(Collectors.toList());
return PagedResponse.of(page.getTotal(), query.getPageNo(), query.getPageSize(), list);
}
@Override

2
yudao-server/src/main/resources/application-local.yaml

@ -276,7 +276,7 @@ EXA:
point:
head: XN.
algorithm:
host: 120.26.116.243:8082
host: 127.0.0.1:8082
assess-report:
host: 120.26.116.243:8098
PCA:

Loading…
Cancel
Save