fix(ccdi-project): truncate upload error messages
This commit is contained in:
@@ -50,6 +50,8 @@ import java.util.concurrent.RejectedExecutionException;
|
||||
@Service
|
||||
public class CcdiFileUploadServiceImpl implements ICcdiFileUploadService {
|
||||
|
||||
private static final int MAX_ERROR_MESSAGE_LENGTH = 2000;
|
||||
|
||||
@Data
|
||||
private static class FetchBankStatementResult {
|
||||
private boolean success;
|
||||
@@ -330,10 +332,26 @@ public class CcdiFileUploadServiceImpl implements ICcdiFileUploadService {
|
||||
CcdiFileUploadRecord record = new CcdiFileUploadRecord();
|
||||
record.setId(recordId);
|
||||
record.setFileStatus(status);
|
||||
record.setErrorMessage(errorMessage);
|
||||
record.setErrorMessage(normalizeErrorMessage(errorMessage));
|
||||
recordMapper.updateById(record);
|
||||
}
|
||||
|
||||
private void updateFailedRecord(CcdiFileUploadRecord record, String errorMessage) {
|
||||
record.setFileStatus("parsed_failed");
|
||||
record.setErrorMessage(normalizeErrorMessage(errorMessage));
|
||||
recordMapper.updateById(record);
|
||||
}
|
||||
|
||||
private String normalizeErrorMessage(String errorMessage) {
|
||||
if (!StringUtils.hasText(errorMessage)) {
|
||||
return null;
|
||||
}
|
||||
if (errorMessage.length() <= MAX_ERROR_MESSAGE_LENGTH) {
|
||||
return errorMessage;
|
||||
}
|
||||
return errorMessage.substring(0, MAX_ERROR_MESSAGE_LENGTH);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步处理单个文件的完整流程
|
||||
* 包含:上传 → 轮询解析状态 → 获取结果 → 保存流水数据
|
||||
@@ -444,9 +462,7 @@ public class CcdiFileUploadServiceImpl implements ICcdiFileUploadService {
|
||||
FetchBankStatementResult fetchResult =
|
||||
fetchAndSaveBankStatements(projectId, lsfxProjectId, logId);
|
||||
if (!fetchResult.isSuccess()) {
|
||||
record.setFileStatus("parsed_failed");
|
||||
record.setErrorMessage(fetchResult.getErrorMessage());
|
||||
recordMapper.updateById(record);
|
||||
updateFailedRecord(record, fetchResult.getErrorMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -459,9 +475,7 @@ public class CcdiFileUploadServiceImpl implements ICcdiFileUploadService {
|
||||
} else {
|
||||
// 解析失败
|
||||
log.warn("【文件上传】步骤6: 解析失败: status={}, desc={}", status, uploadStatusDesc);
|
||||
record.setFileStatus("parsed_failed");
|
||||
record.setErrorMessage("解析失败: " + uploadStatusDesc);
|
||||
recordMapper.updateById(record);
|
||||
updateFailedRecord(record, "解析失败: " + uploadStatusDesc);
|
||||
}
|
||||
|
||||
log.info("【文件上传】处理完成: fileName={}", record.getFileName());
|
||||
|
||||
Reference in New Issue
Block a user