luotaiqian 2026-07-27 18:19:53 +08:00
parent ee8d366d51
commit d68c36ff4c
1 changed files with 36 additions and 9 deletions

View File

@ -502,15 +502,21 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
*/ */
private void upsertArchivedProjectDocs(Long projectId, EvalProjectEntity project) { private void upsertArchivedProjectDocs(Long projectId, EvalProjectEntity project) {
List<EvalProjectFileCO> files = listProjectFiles(projectId).getData(); List<EvalProjectFileCO> files = listProjectFiles(projectId).getData();
List<EvalProjectDocMaterialItemCO> archivedItems = CollectionUtils.isEmpty(files) // 将每个文件 projectDocUrl 中的 JSON 数组扁平化:数组内每个文件对象拆分为独立的资料条目
? new ArrayList<>() List<EvalProjectDocMaterialItemCO> archivedItems = new ArrayList<>();
: files.stream().map(f -> { if (!CollectionUtils.isEmpty(files)) {
EvalProjectDocMaterialItemCO item = new EvalProjectDocMaterialItemCO(); for (EvalProjectFileCO f : files) {
item.setMaterialName(f.getMaterialName()); List<JSONObject> urlObjects = parseFileUrlObjects(f.getProjectDocUrl());
item.setProjectDocUrl(f.getProjectDocUrl()); for (JSONObject obj : urlObjects) {
item.setMaterialType(MaterialCategory.ARCHIVED.getVal()); EvalProjectDocMaterialItemCO item = new EvalProjectDocMaterialItemCO();
return item; String name = obj.getStr("name");
}).collect(Collectors.toList()); item.setMaterialName(StringUtils.hasText(name) ? name : f.getMaterialName());
item.setProjectDocUrl(obj.getStr("url"));
item.setMaterialType(MaterialCategory.ARCHIVED.getVal());
archivedItems.add(item);
}
}
}
EvalProjectDocDO docDO = evalProjectDocMapper.selectOne(new LambdaQueryWrapper<EvalProjectDocDO>() EvalProjectDocDO docDO = evalProjectDocMapper.selectOne(new LambdaQueryWrapper<EvalProjectDocDO>()
.select(EvalProjectDocDO::getId, EvalProjectDocDO::getProjectDocUrl) .select(EvalProjectDocDO::getId, EvalProjectDocDO::getProjectDocUrl)
@ -547,6 +553,27 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
} }
} }
/**
* projectDocUrlJSON [{"url":"...","name":"..."}]
*
*/
private List<JSONObject> parseFileUrlObjects(String projectDocUrl) {
List<JSONObject> result = new ArrayList<>();
if (!StringUtils.hasText(projectDocUrl)) {
return result;
}
try {
JSONArray array = JSONUtil.parseArray(projectDocUrl);
for (Object obj : array) {
if (obj instanceof JSONObject) {
result.add((JSONObject) obj);
}
}
} catch (Exception ignored) {
}
return result;
}
/** /**
* taskStatusCode=2 * taskStatusCode=2
* / * /