指标库:删除指标

This commit is contained in:
huangge1199 2025-08-08 15:24:07 +08:00
parent e0199799a0
commit 8585429bc5
3 changed files with 52 additions and 0 deletions

View File

@ -82,4 +82,11 @@ public class TargetController {
Page<?> result = targetService.getDataByParam(params);
return R.ok(result);
}
@Operation(summary = "删除指标")
@PostMapping("/deleteTargetById")
public R<?> deleteTargetById(@RequestBody JSONObject params) {
targetService.deleteTargetById(params);
return R.ok();
}
}

View File

@ -26,4 +26,6 @@ public interface TargetService extends IService<Target> {
JSONObject getDetailTarget(JSONObject params);
Page<?> getDataByParam(JSONObject params);
void deleteTargetById(JSONObject params);
}

View File

@ -19,6 +19,7 @@ import iet.ustb.sf.util.CheckUtils;
import jakarta.annotation.Resource;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -59,6 +60,8 @@ public class TargetServiceImpl extends ServiceImpl<TargetMapper, Target>
@Resource
private RuleMapper ruleMapper;
@Autowired
private MonitorMapper monitorMapper;
@Override
public IPage<Target> getTargetsByCategory(JSONObject params) {
@ -405,6 +408,46 @@ public class TargetServiceImpl extends ServiceImpl<TargetMapper, Target>
return SqlRunner.db().selectPage(page, String.valueOf(sql));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteTargetById(JSONObject params) {
String id = params.getString("id").trim();
CheckUtils.checkEmpty(id, "指标ID");
Target target = new Target();
target.setId(id);
long count = targetMapper.selectCount(new QueryWrapper<Target>().eq("parent", id));
ThrowUtils.throwIf(count > 0, ErrorCode.OPERATION_ERROR, "有衍生指标存在,无法删除!");
ThrowUtils.throwIf(
hasTogeth(id),
ErrorCode.OPERATION_ERROR,
"有聚合指标使用了该指标,无法删除!"
);
List<Analysis> analysisList = analysisMapper.selectList(new QueryWrapper<Analysis>().eq("target_id", id));
ThrowUtils.throwIf(
analysisList != null && !analysisList.isEmpty(),
ErrorCode.OPERATION_ERROR,
"当前指标有图表存在,无法删除!"
);
Target oldTarget = targetMapper.selectById(id);
if (!StringUtils.isEmpty(oldTarget.getCategoryId())) {
categoryDeal(oldTarget, null);
}
targetMapper.deleteById(id);
targetOptionMapper.delete(new QueryWrapper<TargetOption>().eq("target_id", id));
ruleMapper.delete(new QueryWrapper<Rule>().eq("target_id", id));
targetDataMapper.delete(new QueryWrapper<TargetData>().eq("target_id", id));
monitorMapper.delete(new QueryWrapper<Monitor>().eq("target_id", id));
}
/**
* 查看指标详情
*
* @param optionList 字段列表
* @param target 指标
* @return 详情
*/
private JSONObject getDetailTarget(List<TargetOption> optionList, Target target) {
List<TargetOption> show = new ArrayList<>();
List<TargetOption> search = new ArrayList<>();