工器具优化

This commit is contained in:
cwchen 2025-11-03 14:08:48 +08:00
parent 1e3173cd6e
commit 001dc22e64
2 changed files with 19 additions and 23 deletions

View File

@ -229,11 +229,10 @@ public class ToolService {
return AjaxResult.error(ErrorMessageEnum.getByCode("EXCEL003").getMessage()); return AjaxResult.error(ErrorMessageEnum.getByCode("EXCEL003").getMessage());
} }
// 1.校验excel数据是否填写校验excel数据是否重复校验excel数据是否与数据库重复 // 1.校验excel数据是否填写校验excel数据是否重复校验excel数据是否与数据库重复
verifyExcelData(toolList);
ValidateResult validateResult = validateToolData(toolList,dto); ValidateResult validateResult = validateToolData(toolList,dto);
if (!validateResult.isSuccess()) { if (!validateResult.isSuccess()) {
// 校验失败抛出异常或返回错误信息 // 校验失败抛出异常或返回错误信息
return AjaxResult.error("数据校验失败: " + validateResult.getMessage()); return AjaxResult.error(formatErrorMessages(validateResult));
} }
// 4.添加工器具数据 // 4.添加工器具数据
imdToolService.batchImportData(dto, toolList); imdToolService.batchImportData(dto, toolList);
@ -254,24 +253,6 @@ public class ToolService {
return AjaxResult.success(); return AjaxResult.success();
} }
/**
* 校验数据是否合法
* @param toolList
* @return List<String>
* @author cwchen
* @date 2025/11/3 11:25
*/
public List<String> verifyExcelData(List<ToolDto> toolList) {
List<String> list = new ArrayList<>();
for (ToolDto toolDto : toolList) {
String validResult = validatorsUtils.valid(toolDto, ToolDto.IMPORT.class);
if (StringUtils.isNotBlank(validResult)) {
list.add(validResult);
}
}
return list;
}
/** /**
* 异步执行所有校验并汇总结果 * 异步执行所有校验并汇总结果
*/ */
@ -326,4 +307,20 @@ public class ToolService {
} }
return summary; return summary;
} }
/**
* 格式化错误信息为前端可显示的格式
*/
private String formatErrorMessages(ValidateResult validateResult) {
StringBuilder sb = new StringBuilder();
sb.append("数据校验失败: ").append(validateResult.getMessage());
if (validateResult.getErrorDetails() != null && !validateResult.getErrorDetails().isEmpty()) {
sb.append("\n详细错误\n");
for (int i = 0; i < validateResult.getErrorDetails().size(); i++) {
sb.append(i + 1).append(". ").append(validateResult.getErrorDetails().get(i)).append("\n");
}
}
return sb.toString();
}
} }

View File

@ -43,9 +43,9 @@ public class ToolValidateService {
for (int i = 0; i < toolList.size(); i++) { for (int i = 0; i < toolList.size(); i++) {
ToolDto tool = toolList.get(i); ToolDto tool = toolList.get(i);
int rowNumber = i + 1; int rowNumber = i + 1;
result.setSuccess(false);
String validResult = validatorsUtils.valid(tool, ToolDto.IMPORT.class); String validResult = validatorsUtils.valid(tool, ToolDto.IMPORT.class);
if (StringUtils.isNotBlank(validResult)) { if (StringUtils.isNotBlank(validResult)) {
result.setSuccess(false);
result.addErrorDetail("" + rowNumber + "行:" + validResult); result.addErrorDetail("" + rowNumber + "行:" + validResult);
} }
@ -104,13 +104,12 @@ public class ToolValidateService {
@Async("taskExecutor") @Async("taskExecutor")
public CompletableFuture<ValidateResult> verifyDatabaseDuplicate(List<ToolDto> toolList,ToolDto dto) { public CompletableFuture<ValidateResult> verifyDatabaseDuplicate(List<ToolDto> toolList,ToolDto dto) {
ValidateResult result = new ValidateResult("数据库重复校验", true, "无数据库重复数据"); ValidateResult result = new ValidateResult("数据库重复校验", true, "无数据库重复数据");
try { try {
// 从数据库查询已存在的工器具 // 从数据库查询已存在的工器具
List<String> existingTools = queryExistingToolsFromDatabase(dto); List<String> existingTools = queryExistingToolsFromDatabase(dto);
for (int i = 0; i < toolList.size(); i++) { for (int i = 0; i < toolList.size(); i++) {
ToolDto tool = toolList.get(i); ToolDto tool = toolList.get(i);
String key = tool.getToolName(); String key = tool.getToolName() + "_" + tool.getModel();
if (existingTools.contains(key)) { if (existingTools.contains(key)) {
result.setSuccess(false); result.setSuccess(false);