|
@@ -155,7 +155,8 @@ public class ParseTaskCenterService {
|
|
|
ParseTaskCenterVO vo = new ParseTaskCenterVO();
|
|
ParseTaskCenterVO vo = new ParseTaskCenterVO();
|
|
|
vo.setId(task.getId());
|
|
vo.setId(task.getId());
|
|
|
vo.setDocumentId(task.getDocumentId());
|
|
vo.setDocumentId(task.getDocumentId());
|
|
|
- vo.setStatus(task.getStatus());
|
|
|
|
|
|
|
+ // 根据各阶段状态重新计算整体状态,确保状态正确
|
|
|
|
|
+ vo.setStatus(computeOverallStatus(task));
|
|
|
vo.setProgress(task.getProgress());
|
|
vo.setProgress(task.getProgress());
|
|
|
vo.setCurrentStep(task.getCurrentStep());
|
|
vo.setCurrentStep(task.getCurrentStep());
|
|
|
vo.setErrorMessage(task.getErrorMessage());
|
|
vo.setErrorMessage(task.getErrorMessage());
|
|
@@ -167,6 +168,50 @@ public class ParseTaskCenterService {
|
|
|
vo.setStages(buildStages(task));
|
|
vo.setStages(buildStages(task));
|
|
|
return vo;
|
|
return vo;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 根据各阶段状态计算整体任务状态
|
|
|
|
|
+ */
|
|
|
|
|
+ private String computeOverallStatus(ParseTask task) {
|
|
|
|
|
+ // 如果任何阶段失败,整体状态为失败
|
|
|
|
|
+ if (isAnyFailed(task)) {
|
|
|
|
|
+ return "failed";
|
|
|
|
|
+ }
|
|
|
|
|
+ // 如果所有阶段完成,整体状态为完成
|
|
|
|
|
+ if (isAllCompleted(task)) {
|
|
|
|
|
+ return "completed";
|
|
|
|
|
+ }
|
|
|
|
|
+ // 如果有阶段正在进行,整体状态为处理中
|
|
|
|
|
+ if (isAnyProcessing(task)) {
|
|
|
|
|
+ return "processing";
|
|
|
|
|
+ }
|
|
|
|
|
+ // 否则为等待中
|
|
|
|
|
+ return task.getStatus() != null ? task.getStatus() : "pending";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private boolean isAnyFailed(ParseTask task) {
|
|
|
|
|
+ return "failed".equals(task.getParseStatus()) ||
|
|
|
|
|
+ "failed".equals(task.getRagStatus()) ||
|
|
|
|
|
+ "failed".equals(task.getStructuredStatus()) ||
|
|
|
|
|
+ "failed".equals(task.getNerStatus()) ||
|
|
|
|
|
+ "failed".equals(task.getGraphStatus());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private boolean isAllCompleted(ParseTask task) {
|
|
|
|
|
+ return "completed".equals(task.getParseStatus()) &&
|
|
|
|
|
+ "completed".equals(task.getRagStatus()) &&
|
|
|
|
|
+ "completed".equals(task.getStructuredStatus()) &&
|
|
|
|
|
+ "completed".equals(task.getNerStatus()) &&
|
|
|
|
|
+ "completed".equals(task.getGraphStatus());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private boolean isAnyProcessing(ParseTask task) {
|
|
|
|
|
+ return "processing".equals(task.getParseStatus()) ||
|
|
|
|
|
+ "processing".equals(task.getRagStatus()) ||
|
|
|
|
|
+ "processing".equals(task.getStructuredStatus()) ||
|
|
|
|
|
+ "processing".equals(task.getNerStatus()) ||
|
|
|
|
|
+ "processing".equals(task.getGraphStatus());
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 构建阶段列表:上传、解析、RAG、结构化、NER、图构建
|
|
* 构建阶段列表:上传、解析、RAG、结构化、NER、图构建
|