fix(ccdi-project): 修复批量保存时复制所有模型参数的逻辑
This commit is contained in:
@@ -309,10 +309,33 @@ public class CcdiModelParamServiceImpl implements ICcdiModelParamService {
|
||||
|
||||
// 如果是首次保存(configType=default),需要复制所有模型的系统默认参数
|
||||
if ("default".equals(project.getConfigType())) {
|
||||
for (ModelParamGroupDTO modelGroup : saveAllDTO.getModels()) {
|
||||
copyDefaultParamsToProject(projectId, modelGroup.getModelCode());
|
||||
// 1. 查询所有系统默认参数(所有模型的所有参数)
|
||||
List<CcdiModelParam> allDefaultParams = modelParamMapper.selectByProjectId(0L);
|
||||
if (allDefaultParams.isEmpty()) {
|
||||
log.warn("系统默认参数为空");
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. 批量复制所有默认参数到项目
|
||||
List<CcdiModelParam> projectParams = new ArrayList<>();
|
||||
for (CcdiModelParam param : allDefaultParams) {
|
||||
CcdiModelParam newParam = new CcdiModelParam();
|
||||
BeanUtils.copyProperties(param, newParam);
|
||||
newParam.setProjectId(projectId);
|
||||
// 清空审计字段,让 MyBatis Plus 自动填充
|
||||
newParam.setCreateBy(null);
|
||||
newParam.setCreateTime(null);
|
||||
newParam.setUpdateBy(null);
|
||||
newParam.setUpdateTime(null);
|
||||
projectParams.add(newParam);
|
||||
}
|
||||
|
||||
// 3. 批量插入
|
||||
modelParamMapper.insertBatch(projectParams);
|
||||
|
||||
log.info("复制所有系统默认参数到项目成功, projectId={}, count={}",
|
||||
projectId, projectParams.size());
|
||||
|
||||
// 更新项目配置类型为 custom
|
||||
project.setConfigType("custom");
|
||||
projectMapper.updateById(project);
|
||||
|
||||
Reference in New Issue
Block a user