diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiModelParamServiceImpl.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiModelParamServiceImpl.java index 90c13cb..1e20bd0 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiModelParamServiceImpl.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiModelParamServiceImpl.java @@ -60,16 +60,38 @@ public class CcdiModelParamServiceImpl implements ICcdiModelParamService { @Override public List selectParamList(ModelParamQueryDTO queryDTO) { + // 1. 参数验证 Long projectId = queryDTO.getProjectId(); if (projectId == null) { projectId = 0L; } + // 2. 如果是项目查询(projectId > 0),需要根据 configType 决定查询哪组参数 + Long effectiveProjectId = projectId; + if (projectId > 0) { + // 查询项目信息 + CcdiProject project = projectMapper.selectById(projectId); + if (project == null) { + throw new ServiceException("项目不存在"); + } + + // 根据 configType 决定查询哪组参数 + if ("default".equals(project.getConfigType())) { + // 使用系统默认参数 + effectiveProjectId = 0L; + } else { + // 使用项目自定义参数 + effectiveProjectId = projectId; + } + } + + // 3. 查询参数列表 List params = modelParamMapper.selectByProjectAndModel( - projectId, + effectiveProjectId, queryDTO.getModelCode() ); + // 4. 转换为 VO List result = new ArrayList<>(); params.forEach(param -> { ModelParamVO vo = new ModelParamVO();