Browse Source

feat(alert): 添加模型删除功能并优化评估报告逻辑

- 在 ModelController 中新增 DELETE /{id} 接口用于删除模型
- 实现 ModelService 的 deleteModel 方法,支持软删除
- 删除 AssessReportServiceImpl 中冗余的覆盖率计算逻辑
- 移除 payload 中不再使用的 coverage、low_f 和 high_f 字段
- 添加 VSCode Java 空值分析配置文件
pull/35/head
chenjiale 1 month ago
parent
commit
8855d6e11a
  1. 3
      .vscode/settings.json
  2. 9
      yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java
  3. 12
      yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/assessreport/impl/AssessReportServiceImpl.java
  4. 8
      yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java
  5. 23
      yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java

3
.vscode/settings.json

@ -0,0 +1,3 @@
{
"java.compile.nullAnalysis.mode": "automatic"
}

9
yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java

@ -38,6 +38,15 @@ public class ModelController {
return CommonResult.success(modelInfo);
}
@DeleteMapping("/{id}")
public CommonResult<Boolean> deleteModel(@PathVariable Integer id) {
try {
return CommonResult.success(modelService.deleteModel(id));
} catch (Exception e) {
return CommonResult.error(INTERNAL_SERVER_ERROR.getCode(), e.getMessage());
}
}
@PostMapping("/")
public CommonResult<Integer> saveModel(@RequestBody ModelInitVO model) {
Integer id = modelService.createModel(model);

12
yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/assessreport/impl/AssessReportServiceImpl.java

@ -193,11 +193,6 @@ public class AssessReportServiceImpl implements AssessReportService {
} else {
throw new RuntimeException(tempAll);
}
Double cov = mt.getCoverage();
if (cov == null) {
cov = fetchCoverage(modelInfo);
}
respVO.setCoverage(cov == null ? 0d : cov);
return respVO;
}
@ -528,7 +523,6 @@ public class AssessReportServiceImpl implements AssessReportService {
payload.setNumber(0);
payload.setK(numberVal(modelInfo, "principal") == null ? 0 : numberVal(modelInfo, "principal").intValue());
payload.setVersion(reqVO.getVersion());
payload.setCoverage(fetchCoverage(modelInfo));
payload.setTest_Data(buildTestData(reqVO, modelInfo, pointRows));
// payload.setLow_f(joinDouble(hi));
// payload.setHigh_f(joinDouble(hi));
@ -701,14 +695,8 @@ class ModelTestNew {
private int number;
@com.fasterxml.jackson.annotation.JsonProperty("version")
private String version;
@com.fasterxml.jackson.annotation.JsonProperty("low_f")
private String low_f;
@com.fasterxml.jackson.annotation.JsonProperty("high_f")
private String high_f;
@com.fasterxml.jackson.annotation.JsonProperty("k")
private Integer k;
@com.fasterxml.jackson.annotation.JsonProperty("coverage")
private Double coverage;
}

8
yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java

@ -45,6 +45,14 @@ public interface ModelService {
*/
Boolean updateModelInfo(ModelInfoVO info);
/**
* 删除模型软删除
*
* @param id 模型id
* @return 是否成功
*/
Boolean deleteModel(Integer id);
TrainInfo trainModel(TrainParam param);
ModelTestData getModelTestData(ModelTestParam param);

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

@ -169,6 +169,29 @@ public class ModelServiceImpl implements ModelService {
return modelCfgService.updateById(modelCfg);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteModel(Integer id) {
ModelCfg modelCfg = modelCfgService.getById(id);
if (Objects.isNull(modelCfg)) {
throw new RuntimeException("模型不存在");
}
ModelCfg update = ModelCfg.builder()
.id(id)
.trash(ModelTrash.TRASH.code)
.visible(ModelVisible.INVISIBLE.code)
.updateTime(new Date())
.build();
boolean result = modelCfgService.updateById(update);
LambdaUpdateWrapper<ModelVersion> wrapper = Wrappers.<ModelVersion>lambdaUpdate()
.eq(ModelVersion::getModelId, id)
.set(ModelVersion::getTrash, ModelTrash.TRASH.code)
.set(ModelVersion::getVisible, ModelVisible.INVISIBLE.code)
.set(ModelVersion::getUpdateTime, new Date());
modelVersionService.update(wrapper);
return result;
}
@Override
public TrainInfo trainModel(TrainParam param) {
String trainBody = HttpUtils.post(algorithmHost + "/api/test/ClearTrain", null, JsonUtils.toJsonString(param));

Loading…
Cancel
Save