sms
parent
ee8d366d51
commit
d68c36ff4c
|
|
@ -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)) {
|
||||||
|
for (EvalProjectFileCO f : files) {
|
||||||
|
List<JSONObject> urlObjects = parseFileUrlObjects(f.getProjectDocUrl());
|
||||||
|
for (JSONObject obj : urlObjects) {
|
||||||
EvalProjectDocMaterialItemCO item = new EvalProjectDocMaterialItemCO();
|
EvalProjectDocMaterialItemCO item = new EvalProjectDocMaterialItemCO();
|
||||||
item.setMaterialName(f.getMaterialName());
|
String name = obj.getStr("name");
|
||||||
item.setProjectDocUrl(f.getProjectDocUrl());
|
item.setMaterialName(StringUtils.hasText(name) ? name : f.getMaterialName());
|
||||||
|
item.setProjectDocUrl(obj.getStr("url"));
|
||||||
item.setMaterialType(MaterialCategory.ARCHIVED.getVal());
|
item.setMaterialType(MaterialCategory.ARCHIVED.getVal());
|
||||||
return item;
|
archivedItems.add(item);
|
||||||
}).collect(Collectors.toList());
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将文件 projectDocUrl(JSON 数组字符串,如 [{"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 已签)。
|
||||||
* 无签字任务或存在未完成/未作废的任务均视为未完成。
|
* 无签字任务或存在未完成/未作废的任务均视为未完成。
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue